// Pinout pour le module L293D
int motorPin1 = 2; // Pin 1 pour le moteur A
int motorPin2 = 3; // Pin 2 pour le moteur A
int motorPin3 = 4; // Pin 1 pour le moteur B
int motorPin4 = 5; // Pin 2 pour le moteur B
// Pin pour le capteur d'obstacle
int obstaclePin = 6;
void setup() {
// Configuration des pins en sortie
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
// Configuration du pin de capteur d'obstacle en entrée
pinMode(obstaclePin, INPUT);
}
void loop() {
// Avancer tant qu'aucun obstacle n'est détecté
while (digitalRead(obstaclePin) == LOW) {
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
}
// Si un obstacle est détecté, reculer et tourner à gauche
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(1000);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(1000);
}
Dans cet exemple, nous utilisons un capteur d'obstacle infrarouge connecté au pin 6 de la carte Arduino. La voiture avance tant que le capteur ne détecte aucun obstacle, puis recule et tourne à gauche pendant une seconde pour éviter l'obstacle. Vous pouvez ajuster la durée de recul et de tourner à gauche en modifiant les valeurs de la fonction delay().