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
Post a Comment