Using Serial Monitor to Control Servo Motor



In this project, you can learn how to control the servo motor using the serial monitor.



Story
One of the things people want to do with Arduino is controlling things with the serial monitors. Here are some command project uses:
myservo.write(); - Sends a piece of position information to the servo
if(Serial.availiable()) - If the serial monitor is available, then continues the loop between { and }
intstate=Serial.parseInt(); - sets "state" to number, that has been sent to the serial monitor
More aboutparseInt - reads every number, sent to the serial monitor. It can read only numbers, not letters, etc.
Important - Servo coding in this project is a bit different:
10 degrees = 0 degrees
90 degrees = 90 degrees
169 degrees = 180 degrees
I am not sure, why it is like that, but you can type any number from 10 to 169 to the serial monitor.

Schematics

Servo schematics

Code:
#include <Servo.h>
Servo myservo;
int pos = 0;

void setup()
{

Serial.begin(9600);
while (!Serial);
Serial.println("-------------------------");
Serial.println("ARos is loading....");
delay(1000);
Serial.println("ARos loaded succesfully");
Serial.println("-------------------------");
myservo.attach(9);
Serial.println("calibrating servo...");
for(pos = 0; pos <= 180; pos += 1)
myservo.write(0);
delay(1000);
myservo.write(180);
delay(1000);
myservo.write(90);
delay(1000);
Serial.println("servo calibrated");
Serial.println("-------------------------");
Serial.println("Comand input online, write command to perform action");
Serial.println("-------------------------");

}

void loop() {
  
for(pos = 0; pos <= 180; pos += 1)
if (Serial.available())
{
  int state = Serial.parseInt();
    
if (state < 10)
{
Serial.print(">");
Serial.println(state);
Serial.println("cannost execute command, too low number");

}

if (state >= 10 && state < 170)
{
  Serial.print(">");
  Serial.println(state);
  Serial.print("turning servo to ");
  Serial.print(state);
  Serial.println(" degrees");
  myservo.write(state);
  
}
}
}


Comments