// Définition des pins pour la voie A–D (feu 1)
#define AD_VERT 2 // PD2
#define AD_JAUNE 3 // PD3
#define AD_ROUGE 4 // PD4
// Définition des pins pour la voie B–C (feu 2)
#define BC_VERT 10 // PB2
#define BC_JAUNE 11 // PB3
#define BC_ROUGE 12 // PB4
void setup() {
// Initialisation des pins A–D comme sorties
pinMode(AD_VERT, OUTPUT);
pinMode(AD_JAUNE, OUTPUT);
pinMode(AD_ROUGE, OUTPUT);
// Initialisation des pins B–C comme sorties
pinMode(BC_VERT, OUTPUT);
pinMode(BC_JAUNE, OUTPUT);
pinMode(BC_ROUGE, OUTPUT);
// Initialiser tout à LOW
digitalWrite(AD_VERT, LOW);
digitalWrite(AD_JAUNE, LOW);
digitalWrite(AD_ROUGE, LOW);
digitalWrite(BC_VERT, LOW);
digitalWrite(BC_JAUNE, LOW);
digitalWrite(BC_ROUGE, LOW);
void loop() {
// Phase 1 : Voie A–D Vert, Voie B–C Rouge
digitalWrite(AD_VERT, HIGH);
digitalWrite(AD_JAUNE, LOW);
digitalWrite(AD_ROUGE, LOW);
digitalWrite(BC_VERT, LOW);
digitalWrite(BC_JAUNE, LOW);
digitalWrite(BC_ROUGE, HIGH);
delay(5000); // 5 secondes vert A–D
// Phase 2 : Voie A–D Jaune, Voie B–C Rouge
digitalWrite(AD_VERT, LOW);
digitalWrite(AD_JAUNE, HIGH);
digitalWrite(AD_ROUGE, LOW);
// B–C reste rouge
delay(2000); // 2 secondes jaune A–D
// Phase 3 : Voie A–D Rouge, Voie B–C Vert
digitalWrite(AD_VERT, LOW);
digitalWrite(AD_JAUNE, LOW);
digitalWrite(AD_ROUGE, HIGH);
digitalWrite(BC_VERT, HIGH);
digitalWrite(BC_JAUNE, LOW);
digitalWrite(BC_ROUGE, LOW);
delay(5000); // 5 secondes vert B–C
// Phase 4 : Voie A–D Rouge, Voie B–C Jaune
digitalWrite(BC_VERT, LOW);
digitalWrite(BC_JAUNE, HIGH);
digitalWrite(BC_ROUGE, LOW);
// A–D reste rouge
delay(2000); // 2 secondes jaune B–C
// Retour au début du cycle