Bonjour,
Voici mon code loop() qui fonctionne, il permet a mon robot d'etre piloté via la liaison série :
void loop()
{
// Si le port série reçoit une valeur
if (Serial.available())
{
// Mise a jour de la variable 'ValeurSerial'
int ValeurSerial = Serial.read();
// Si obstacle --> procédure d'évitement
// *------------------* DEBUT DU PILOTAGE A DISTANCE *------------------*
switch (ValeurSerial) {
case 'Z':
LedState = 'HIGH';
MotorState = 'Forward';
break;
case 'S':
LedState = 'LOW';
MotorState = 'Back';
break;
case 'Q':
LedState = 'CLIGNOL';
MotorState = 'Left';
break;
case 'D':
LedState = 'CLIGNOL';
MotorState = 'Right';
break;
case 'G':
LedState = 'LOW';
MotorState = 'Stop';
break;
}
// *------------------* FIN DU PILOTAGE A DISTANCE *------------------*
switch (LedState) {
case 'HIGH':
break;
case 'LOW':
break;
case 'CLIGNOL':
break;
}
switch (MotorState) {
case 'Forward':
GoForward();
break;
case 'Back':
GoBackward();
break;
case 'Left':
GoLeft();
break;
case 'Right':
GoRight();
break;
case 'Stop':
GoStop();
break;
}
} // FIN LIAISON SERIE
} // FIN LOOP
Le problème, c'est que je n'arrive pas a y "caser" le code ci-dessous qui me permettrait de lui faire éviter des obstacles :
int ProxM = ProximSensorM();
int ProxL = ProximSensorL();
int ProxR = ProximSensorR();
if (ProxM == 0){
GoBackward();
delay(500);
GoRight();
delay(1000);
}else if (ProxL == 0) {
GoBackward();
delay(500);
GoRight();
delay(1000);
}else if (ProxR == 0) {
GoBackward();
delay(500);
GoLeft();
delay(1000);
} else {
// ACTION DE PILOTAGE A DISTANCE
}
J'ai essayé de l'introduire partout : en début de loop, juste avant "GoForward()"... partout ! Mais ça ne fonctionne pas, quand je l'insère le robot n'avance plus du tout
Comment y remédier ? Ma procédure d'évitement d'obstacle avec 3 capteurs IR est elle correcte ?
Merci