// Feu_carrefour_5_sorties_ATtiny // // Feux de carrefour routier n utilisant que 5 sorties // Montage special des LED, pas de feux du commerce // // Vert feu 1 ==> S1 HIGH // Orange feu 1 ==> S3 HIGH ET S4 LOW // Rouge feu 1 ==> S4 HIGH // Vert feu 2 ==> S2 HIGH // Orange feu 2 ==> S3 HIGH ET S5 LOW // Rouge feu 2 ==> S5 HIGH // Declaration de constantes const byte S1 = 0; const byte S2 = 1; const byte S3 = 2; const byte S4 = 3; const byte S5 = 4; const int temps_vert = 10000; const int temps_orange = 3000; const int temps_chauffard = 2000; void setup() { // Initialisation des sorties pinMode(S1, OUTPUT); pinMode(S2, OUTPUT); pinMode(S3, OUTPUT); pinMode(S4, OUTPUT); pinMode(S5, OUTPUT); digitalWrite(S1, LOW); digitalWrite(S2, LOW); digitalWrite(S3, LOW); digitalWrite(S4, LOW); digitalWrite(S5, LOW); } void loop() { // Debut du sequenceur // Feu 1 vert, feu 2 rouge digitalWrite(S3, LOW); // eteint orange feux 1 et 2 digitalWrite(S4, LOW); // eteint rouge feu 1 digitalWrite(S1, HIGH); // allume vert feu 1 digitalWrite(S5, HIGH); // allume rouge feu 2 delay(temps_vert); // Feu 1 orange, feu 2 rouge digitalWrite(S1, LOW); // eteint vert feu 1 digitalWrite(S4, LOW); digitalWrite(S3, HIGH); // allume orange feu 1 delay(temps_orange); // Feu 1 rouge, feu 2 rouge (tempo chauffard) digitalWrite(S4, HIGH); // eteint orange feu 1, allume rouge feu 1 delay(temps_chauffard); // Feu 1 rouge, feu 2 vert digitalWrite(S3, LOW); // eteint orange feux 1 et 2 digitalWrite(S5, LOW); // eteint rouge feu 2 digitalWrite(S2, HIGH); // allume vert feu 2 delay(temps_vert); // Feu 1 rouge, feu 2 orange digitalWrite(S2, LOW); // eteint vert feu 2 digitalWrite(S5, LOW); digitalWrite(S3, HIGH); // allume orange feu 2 delay(temps_orange); // Feu 1 rouge, feu 2 rouge digitalWrite(S3, LOW); // eteint orange feu 2 digitalWrite(S5, HIGH); // allume rouge feu 2 delay(temps_chauffard); // Cycle peut recommencer }