const int feu1_rougePin = 2;
const int feu1_orangePin = 3;
const int feu1_vertPin = 4;
const int feu2_rougePin = 5;
const int feu2_orangePin = 6;
const int feu2_vertPin = 7;
const int feu3_rougePin = 8;
const int feu3_orangePin = 9;
const int feu3_vertPin = 10;
const int feu4_rougePin = 11;
const int feu4_orangePin =12;
const int feu4_vertPin = 13;
const int trigPin1 = 14;
const int echoPin1 = 15;
const int trigPin2 = 16;
const int echoPin2 = 17;
const int trigPin3 = 18;
const int echoPin3 = 19;
const int trigPin4 = 20;
const int echoPin4 = 21;
const int ledPin = 22;
void setup() {
// Définir les broches comme sorties
pinMode(feu1_rougePin, OUTPUT);
pinMode(feu1_orangePin, OUTPUT);
pinMode(feu1_vertPin, OUTPUT);
pinMode(feu2_rougePin, OUTPUT);
pinMode(feu2_orangePin, OUTPUT);
pinMode(feu2_vertPin, OUTPUT);
pinMode(feu3_rougePin, OUTPUT);
pinMode(feu3_orangePin, OUTPUT);
pinMode(feu3_vertPin, OUTPUT);
pinMode(feu4_rougePin, OUTPUT);
pinMode(feu4_orangePin, OUTPUT);
pinMode(feu4_vertPin, OUTPUT);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin3, INPUT);
pinMode(trigPin4, OUTPUT);
pinMode(echoPin4, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
// Feu 1 & 2 - Vert, Feu 3 & 4 - Rouge
allumerFeuVert(feu1_rougePin, feu1_orangePin, feu1_vertPin);
allumerFeuVert(feu2_rougePin, feu2_orangePin, feu2_vertPin);
allumerFeuRouge(feu3_rougePin, feu3_orangePin, feu3_vertPin);
allumerFeuRouge(feu4_rougePin, feu4_orangePin, feu4_vertPin);
// Attendre 5 secondes
delay(5000);
// Feu 1 & 2 - Orange, Feu 3 & 4 - Rouge
allumerFeuOrange(feu1_rougePin, feu1_orangePin, feu1_vertPin);
allumerFeuOrange(feu2_rougePin, feu2_orangePin, feu2_vertPin);
// Vérifier si le feu rouge de la voie 1 est allumé
if (detectObject(trigPin1, echoPin1) < 50) {
// Allumer la LED pendant 0.5 seconde
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
}
// Attendre 2 secondes
delay(2000);
// Feu 1 & 2 - Rouge, Feu 3 & 4 - Vert
allumerFeuRouge(feu1_rougePin, feu1_orangePin, feu1_vertPin);
allumerFeuRouge(feu2_rougePin, feu2_orangePin, feu2_vertPin);
allumerFeuVert(feu3_rougePin, feu3_orangePin, feu3_vertPin);
allumerFeuVert(feu4_rougePin, feu4_orangePin, feu4_vertPin);
// Attendre 5 secondes
delay(5000);
// Feu 3 & 4 - Orange, Feu 1 & 2 - Vert
allumerFeuOrange(feu3_rougePin, feu3_orangePin, feu3_vertPin);
allumerFeuOrange(feu4_rougePin, feu4_orangePin, feu4_vertPin);
// Vérifier si le feu rouge de la voie 2 est allumé
if (detectObject(trigPin2, echoPin2) < 50) {
// Allumer la LED pendant 0.5 seconde
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
}
// Attendre 2 secondes
delay(2000);
// Feu 1 & 2 - Vert, Feu 3 & 4 - Rouge
allumerFeuVert(feu1_rougePin, feu1_orangePin, feu1_vertPin);
allumerFeuVert(feu2_rougePin, feu2_orangePin, feu2_vertPin);
allumerFeuRouge(feu3_rougePin, feu3_orangePin, feu3_vertPin);
allumerFeuRouge(feu4_rougePin, feu4_orangePin, feu4_vertPin);
// Attendre 5 secondes
delay(5000);
// Feu 1 & 2 - Rouge, Feu 3 & 4 - Vert
allumerFeuRouge(feu1_rougePin, feu1_orangePin, feu1_vertPin);
allumerFeuRouge(feu2_rougePin, feu2_orangePin, feu2_vertPin);
allumerFeuVert(feu3_rougePin, feu3_orangePin, feu3_vertPin);
allumerFeuVert(feu4_rougePin, feu4_orangePin, feu4_vertPin);
// Attendre 5 secondes
delay(5000);
// Feu 3 & 4 - Orange, Feu 1 & 2 - Vert
allumerFeuOrange(feu3_rougePin, feu3_orangePin, feu3_vertPin);
allumerFeuOrange(feu4_rougePin, feu4_orangePin, feu4_vertPin);
// Vérifier si le feu rouge de la voie 3 est allumé
if (detectObject(trigPin3, echoPin3) < 50) {
// Allumer la LED pendant 0.5 seconde
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
}
// Attendre 2 secondes
delay(2000);
// Feu 1 & 2 - Vert, Feu 3 & 4 - Rouge
allumerFeuVert(feu1_rougePin, feu1_orangePin, feu1_vertPin);
allumerFeuVert(feu2_rougePin, feu2_orangePin, feu2_vertPin);
allumerFeuRouge(feu3_rougePin, feu3_orangePin, feu3_vertPin);
allumerFeuRouge(feu4_rougePin, feu4_orangePin