#define LEFT_WHEEL_FORWARD 3 #define LEFT_WHEEL_REVERSE 2 #define RIGHT_WHEEL_FORWARD 4 #define RIGHT_WHEEL_REVERSE 5 void drive(char dir, int dist, int spacing) { pinMode(LEFT_WHEEL_FORWARD,OUTPUT); pinMode(LEFT_WHEEL_REVERSE,OUTPUT); pinMode(RIGHT_WHEEL_FORWARD,OUTPUT); pinMode(RIGHT_WHEEL_REVERSE,OUTPUT); switch(dir) { case 'f': digitalWrite(LEFT_WHEEL_FORWARD,1); digitalWrite(RIGHT_WHEEL_FORWARD,1); break; case 'b': digitalWrite(LEFT_WHEEL_REVERSE,1); digitalWrite(RIGHT_WHEEL_REVERSE,1); break; case 'l': digitalWrite(LEFT_WHEEL_FORWARD,1); break; case 'r': digitalWrite(RIGHT_WHEEL_FORWARD,1); break; case 'L': digitalWrite(LEFT_WHEEL_FORWARD,1); digitalWrite(RIGHT_WHEEL_REVERSE,1); break; case 'R': digitalWrite(RIGHT_WHEEL_FORWARD,1); digitalWrite(LEFT_WHEEL_REVERSE,1); break; } delay(dist*1000); digitalWrite(LEFT_WHEEL_FORWARD,0); digitalWrite(LEFT_WHEEL_REVERSE,0); digitalWrite(RIGHT_WHEEL_FORWARD,0); digitalWrite(RIGHT_WHEEL_REVERSE,0); delay(spacing*1000); } void setup() { delay(2000); drive('f',2,1); drive('b',1,1); drive('L',3,1); drive('r',1,1); drive('f',3,0); } void loop() { }