Paso 5: programa
///////////////////////////// KEYS /////////////////////////////
#define FWD_KEY 'W'
#define BWD_KEY'
#define QUICK_L_KEY 'Q'
#define QUICK_R_KEY 'E'
#define TRNL_L_KEY 'A'
#define TRNL_R_KEY le '
#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; crear objeto servo para controlar un servo
unsigned char incomingByte = 0;
unsigned int cuenta = 0;
int potpin = 0; pin analógico utilizado para conectar el potenciómetro
int val; variable para leer el valor del pin analógico
void setup()
{
Serial.Begin(9600);
left_servo.Attach(2); se fija el servo en el pin 9 al objeto servo
right_servo.Attach(3); se fija el servo en el pin 10 al objeto servo
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';
cuenta = 0;
}
if(incomingByte==BWD_KEY) más
{
left_servo.Write(BWD_L);
right_servo.Write(BWD_R);
incomingByte = 'X';
cuenta = 0;
}
if(incomingByte==QUICK_L_KEY) más
{
left_servo.Write(QTRNL_L);
right_servo.Write(QTRNL_R);
incomingByte = 'X';
cuenta = 0;
}
if(incomingByte==QUICK_R_KEY) más
{
left_servo.Write(QTRNR_L);
right_servo.Write(QTRNR_L);
incomingByte = 'X';
cuenta = 0;
}
if(incomingByte==TRNL_L_KEY) más
{
left_servo.Write(TRNL_L);
right_servo.Write(TRNL_R);
incomingByte = 'X';
cuenta = 0;
}
if(incomingByte==TRNL_R_KEY) más
{
left_servo.Write(TRNR_L);
right_servo.Write(TRNR_R);
incomingByte = 'X';
cuenta = 0;
}
if(incomingByte==STOP_KEY) más
{
left_servo.Write(STOP_L);
right_servo.Write(STOP_R);
incomingByte = 0;
cuenta = 0;
}
if(incomingByte=='X') más
{
Si (++ cuenta > KEY_DLY)
{
left_servo.Write(STOP_L);
right_servo.Write(STOP_R);
cuenta = 0; incomingByte = 0;
}
Delay(1);
}
}