/* Claude EMERY - 10/06/2026 - Feux Tricolore + Fleche pietons*/
// Feu voitures
const int voitureVert = 8;
const int voitureOrange = 9;
const int voitureRouge = 10;
// Feu piétons
const int pietonRouge = 11;
const int pietonVert = 12;
// Bouton piéton
const int bouton = 2;
bool demandePieton = false;
void setup() {
pinMode(voitureVert, OUTPUT);
pinMode(voitureOrange, OUTPUT);
pinMode(voitureRouge, OUTPUT);
pinMode(pietonRouge, OUTPUT);
pinMode(pietonVert, OUTPUT);
pinMode(bouton, INPUT_PULLUP);
// Etat initial
digitalWrite(voitureVert, HIGH);
digitalWrite(voitureOrange, LOW);
digitalWrite(voitureRouge, LOW);
digitalWrite(pietonRouge, HIGH);
digitalWrite(pietonVert, LOW);
}
void loop() {
// Lecture du bouton
if (digitalRead(bouton) == LOW) {
demandePieton = true;
}
// Si une demande piéton existe
if (demandePieton) {
// Feu voiture : vert -> orange
digitalWrite(voitureVert, LOW);
digitalWrite(voitureOrange, HIGH);
delay(2000);
// Feu voiture : rouge
digitalWrite(voitureOrange, LOW);
digitalWrite(voitureRouge, HIGH);
// Feu piéton : vert
digitalWrite(pietonRouge, LOW);
digitalWrite(pietonVert, HIGH);
delay(5000);
// Fin traversée
digitalWrite(pietonVert, LOW);
digitalWrite(pietonRouge, HIGH);
// Retour circulation voitures
digitalWrite(voitureRouge, LOW);
digitalWrite(voitureVert, HIGH);
demandePieton = false;
// Anti-rebond simple
delay(500);
}
}