I have been trying to control my 2 servo motors trought serial monitor. When i enter number 1-5 to serial monitor it follows the command as told in code. I write in the numbers 1-5 a couple of times and servos suddenly stop and i cant enter anything in serial monitor anymore. It worked fine when i only had the moving forward part of the code.
#include <Servo.h>
Servo servo1;
Servo servo2;
int servodata;
void setup()
{
Serial.begin(9600);
Serial.println("Redy");
Serial.println("1 stop ");
Serial.println("2 forward");
Serial.println("3 backward");
Serial.println("4 Turn left");
Serial.println("5 Turn right");
servo1.attach(D7) ;
pinMode(D7, OUTPUT);
servo2.attach(D8) ;
pinMode(D8, OUTPUT);
}
void loop()
{
if (Serial.available() > 0)
{
servodata = Serial.read();
if(servodata == '1') // Single Quote! This is a character.
{
Serial.println("Stop");
{
servo1.write(90); //stop
servo2.write(90);
delay(3000);
}
}
if(servodata == '4')
{
Serial.println("Turn left");
{
servo1.write(0); //Turn left
servo2.write(0);
delay(3000);
}
}
if(servodata == '5')
{
Serial.println("Turn right");
{
servo1.write(180); //Turn right
servo2.write(180);
delay(3000);
}
}
if(servodata == '2')
{
Serial.println("Forward");
{
servo1.write(0); //Forward
servo2.write(180);
delay(3000);
}
}
if(servodata == '3')
{
Serial.println("Backward");
{
servo1.write(180); //Backward
servo2.write(0);
delay(3000);
}
}
Serial.println(" "); // End the line
}
}