Stap 5: programma
///////////////////////////// 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 zou '
#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; maken van servo-object om te bepalen van een servo
unsigned char incomingByte = 0;
unsigned int count = 0;
int potpin = 0; analoge pin gebruikt voor het aansluiten van de potentiometer
int val; variabele te lezen van de waarde van de analoge pin
VOID Setup
{
Serial.begin(9600);
left_servo.attach(2); de servo op pin 9 hecht aan de servo-object
right_servo.attach(3); de servo op pin 10 hecht aan de 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';
Graaf = 0;
}
anders if(incomingByte==BWD_KEY)
{
left_servo.write(BWD_L);
right_servo.write(BWD_R);
incomingByte = 'X';
Graaf = 0;
}
anders if(incomingByte==QUICK_L_KEY)
{
left_servo.write(QTRNL_L);
right_servo.write(QTRNL_R);
incomingByte = 'X';
Graaf = 0;
}
anders if(incomingByte==QUICK_R_KEY)
{
left_servo.write(QTRNR_L);
right_servo.write(QTRNR_L);
incomingByte = 'X';
Graaf = 0;
}
anders if(incomingByte==TRNL_L_KEY)
{
left_servo.write(TRNL_L);
right_servo.write(TRNL_R);
incomingByte = 'X';
Graaf = 0;
}
anders if(incomingByte==TRNL_R_KEY)
{
left_servo.write(TRNR_L);
right_servo.write(TRNR_R);
incomingByte = 'X';
Graaf = 0;
}
anders if(incomingByte==STOP_KEY)
{
left_servo.write(STOP_L);
right_servo.write(STOP_R);
incomingByte = 0;
Graaf = 0;
}
anders if(incomingByte=='X')
{
Als (++ graaf > KEY_DLY)
{
left_servo.write(STOP_L);
right_servo.write(STOP_R);
Graaf = 0; incomingByte = 0;
}
delay(1);
}
}