enfin le programme, comme vous le voyez c'est simple, le robot avance, si le switch est actionné par un obstacle, il recule, il fait un quart de tour à droite et il repart.
le programme:
int m1 = 4;
int m2 = 5;
int m3 = 6;
int m4 = 7;
int led = 13;
int obstacle = 3;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(m1, OUTPUT);
pinMode(m2, OUTPUT);
pinMode(m3, OUTPUT);
pinMode(m4, OUTPUT);
pinMode(led, OUTPUT);
pinMode(obstacle,INPUT);
digitalWrite(m1, HIGH); //moteur gauche stop
digitalWrite(m2, HIGH); //moteur gauche en position avant
digitalWrite(m3, HIGH); //moteur droit stop
digitalWrite(m4, HIGH); //moteur droit en position avant
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
// Phase de test des moteurs
delay(2000);
//Mise en route des deux moteurs
digitalWrite(m2, HIGH); //moteur gauche en position avant
digitalWrite(m3, HIGH); //moteur droit en position avant
digitalWrite(m1, LOW); //moteur gauche marche
digitalWrite(m4, LOW); //moteur droit marche
}
// the loop routine runs over and over again forever:
void loop() {
//lecture capteur
int val = digitalRead(obstacle);
if (val > 0)
{
digitalWrite(m1, HIGH); //moteur gauche stop
digitalWrite(m4, HIGH); //moteur droit stop
digitalWrite(m2, LOW); //moteur gauche en position arrière
digitalWrite(m3, LOW); //moteur droit en position arrière
digitalWrite(m1, LOW); //moteur gauche marche
digitalWrite(m4, LOW); //moteur droit marche
delay(5000);
digitalWrite(m1, HIGH); //moteur gauche stop
digitalWrite(m4, HIGH); //moteur droit stop
digitalWrite(m2, HIGH); //moteur gauche en position avant
digitalWrite(m3, HIGH); //moteur droit en position avant
digitalWrite(m1, LOW); //moteur gauche marche
digitalWrite(m4, HIGH); //moteur droit stop
delay(23500);
digitalWrite(m1, HIGH); //moteur gauche stop
digitalWrite(m4, HIGH); //moteur droit stop
digitalWrite(m2, HIGH); //moteur gauche en position avant
digitalWrite(m3, HIGH); //moteur droit en position avant
digitalWrite(m1, LOW); //moteur gauche marche
digitalWrite(m4, LOW); //moteur droit marche
}
}
amitié à tous
Olivier