Étape 5: programme
///////////////////////////// KEYS /////////////////////////////
#define FWD_KEY « W »
de #define BWD_KEY »
#define QUICK_L_KEY « Q »
#define QUICK_R_KEY « E »
#define TRNL_L_KEY « A »
#define TRNL_R_KEY serait "
#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 ; Créez l’objet servo pour contrôler un servo
unsigned char incomingByte = 0 ;
unsigned int count = 0 ;
int potpin = 0 ; broche analogique utilisé pour connecter le potentiomètre
int val ; variable pour lire la valeur de l’axe de l’analogique
void setup()
{
Serial.Begin(9600) ;
left_servo.Attach(2) ; attache le servo sur la broche 9 à l’objet de servo
right_servo.Attach(3) ; s’adapte sur le servo sur la broche 10 l’objet de 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 » ;
Count = 0 ;
}
d’autre if(incomingByte==BWD_KEY)
{
left_servo.Write(BWD_L) ;
right_servo.Write(BWD_R) ;
incomingByte = « X » ;
Count = 0 ;
}
d’autre if(incomingByte==QUICK_L_KEY)
{
left_servo.Write(QTRNL_L) ;
right_servo.Write(QTRNL_R) ;
incomingByte = « X » ;
Count = 0 ;
}
d’autre if(incomingByte==QUICK_R_KEY)
{
left_servo.Write(QTRNR_L) ;
right_servo.Write(QTRNR_L) ;
incomingByte = « X » ;
Count = 0 ;
}
d’autre if(incomingByte==TRNL_L_KEY)
{
left_servo.Write(TRNL_L) ;
right_servo.Write(TRNL_R) ;
incomingByte = « X » ;
Count = 0 ;
}
d’autre if(incomingByte==TRNL_R_KEY)
{
left_servo.Write(TRNR_L) ;
right_servo.Write(TRNR_R) ;
incomingByte = « X » ;
Count = 0 ;
}
d’autre if(incomingByte==STOP_KEY)
{
left_servo.Write(STOP_L) ;
right_servo.Write(STOP_R) ;
incomingByte = 0 ;
Count = 0 ;
}
d’autre if(incomingByte=='X')
{
Si (++ comte > KEY_DLY)
{
left_servo.Write(STOP_L) ;
right_servo.Write(STOP_R) ;
Count = 0 ; incomingByte = 0 ;
}
Delay(1) ;
}
}