#include ///////////////////////////// KEYS ///////////////////////////// #define FWD_KEY 'W' #define BWD_KEY 'S' #define QUICK_L_KEY 'Q' #define QUICK_R_KEY 'E' #define TRNL_L_KEY 'A' #define TRNL_R_KEY 'D' #define STOP_KEY ' ' #define KEY_DLY 200 /////////////////////////////////////////////////////////////////// #define STOP_L 95 #define STOP_R 95 #define FWD_L 0 #define FWD_R 360 #define BWD_L 180 #define BWD_R 0 #define QTRNL_L STOP_L+5 #define QTRNL_R FWD_R #define QTRNR_L FWD_L #define QTRNR_R STOP_R-5 #define TRNL_L STOP_L #define TRNL_R FWD_R #define TRNR_L FWD_L #define TRNR_R STOP_R ///////////////////////////////////////////////////////////////////// Servo left_servo,right_servo; // create servo object to control a servo unsigned char incomingByte=0; unsigned int count=0; int potpin = 0; // analog pin used to connect the potentiometer int val; // variable to read the value from the analog pin void setup() { Serial.begin(9600); left_servo.attach(2); // attaches the servo on pin 9 to the servo object right_servo.attach(3); // attaches the servo on pin 10 to the servo object left_servo.write(STOP_L); right_servo.write(STOP_R); } void loop() { if(Serial.available() > 0) { incomingByte =Serial.read(); } if(incomingByte==FWD_KEY) { left_servo.write(FWD_L); right_servo.write(FWD_R); incomingByte='X'; count=0; } else if(incomingByte==BWD_KEY) { left_servo.write(BWD_L); right_servo.write(BWD_R); incomingByte='X'; count=0; } else if(incomingByte==QUICK_L_KEY) { left_servo.write(QTRNL_L); right_servo.write(QTRNL_R); incomingByte='X'; count=0; } else if(incomingByte==QUICK_R_KEY) { left_servo.write(QTRNR_L); right_servo.write(QTRNR_L); incomingByte='X'; count=0; } else if(incomingByte==TRNL_L_KEY) { left_servo.write(TRNL_L); right_servo.write(TRNL_R); incomingByte='X'; count=0; } else if(incomingByte==TRNL_R_KEY) { left_servo.write(TRNR_L); right_servo.write(TRNR_R); incomingByte='X'; count=0; } else if(incomingByte==STOP_KEY) { left_servo.write(STOP_L); right_servo.write(STOP_R); incomingByte=0; count=0; } else if(incomingByte=='X') { if(++count>KEY_DLY) { left_servo.write(STOP_L); right_servo.write(STOP_R); count=0; incomingByte=0; } delay(1); } } /* void serialEvent() { incomingByte = Serial.read(); }*/