/*
* Programme pour arduino nano
* idée originale C. Bézanger Octobre 2013
* https://www.locoduino.org/spip.php?article3
* Licence GNU GPLv3
*
* Ce programme fait fonctionner des feux tricolores.
* Six LED (vertes, oranges et rouge) sont reliées aux sorties 4 à 9
* Les sorties 4 à 6 forment le feu F1
* Les sorties 7 à 9 forment le feu F2
*/
// Initialisation des variables
const byte FeuVert1 = 4 ;
const byte FeuOrange1 = 5 ;
const byte FeuRouge1 = 6 ;
const byte FeuVert2 = 7 ;
const byte FeuOrange2 = 8 ;
const byte FeuRouge2 = 9 ;
//Délai des différents temps mis en const pour changer facilement
// si le délai imparti ne vous satisfait pas. Il s'agit de millisecondes
const long TempsAttenteFeuRouge = 2000;
const long TempsAttenteFeuVert = 30000;
const long TempsAttenteFeuOrange= 5000;
// Initialisation des lignes 4 à 9 en sortie
void setup () {
pinMode (FeuVert1, OUTPUT) ;
pinMode (FeuOrange1, OUTPUT) ;
pinMode (FeuRouge1, OUTPUT) ;
pinMode (FeuVert2, OUTPUT) ;
pinMode (FeuOrange2, OUTPUT) ;
pinMode (FeuRouge2, OUTPUT) ;
}
// Fonction loop
void loop () {
// Extinction de toutes les LED au départ
digitalWrite (FeuVert1, LOW) ;
digitalWrite (FeuOrange1, LOW) ;
digitalWrite (FeuRouge1, LOW) ;
digitalWrite (FeuVert2, LOW) ;
digitalWrite (FeuOrange2, LOW) ;
digitalWrite (FeuRouge2, LOW) ;
// Allumage du feuVert1 et FeuRouge2
digitalWrite (FeuVert1, HIGH) ; // Allumage du feu vert F1
digitalWrite (FeuRouge2, HIGH) ; // Allumage du feu rouge F2
// Début de cycle
// Concerne le feu F1
delay (TempsAttenteFeuVert) ; // Feu vert F1 pendant 30 secondes
digitalWrite (FeuVert1, LOW) ; // Extinction du feu vert F1
digitalWrite (FeuOrange1, HIGH) ; // Allumage du feu orange F1
delay (TempsAttenteFeuOrange) ; // Temporisation du feu orange F1
digitalWrite (FeuOrange1, LOW) ; // Extinction du feu orange F1
digitalWrite (FeuRouge1, HIGH) ; // Allumage du feu Rouge F1
delay (TempsAttenteFeuRouge) ; // Temporisation du feu Rouge F1
// Concerne l'autre feu F2
digitalWrite (FeuRouge2, LOW) ; // Extinction du feu Rouge F2
digitalWrite (FeuVert2, HIGH) ; // Allumage du feu vert F2
delay (TempsAttenteFeuVert) ; // Feu vert F2 pendant 30 secondes
digitalWrite (FeuVert2, LOW) ; // Extinction du feu vert F2
digitalWrite (FeuOrange2, HIGH) ; // Allumage du feu orange F2
delay (TempsAttenteFeuOrange) ; // Temporisation feu orange F2
digitalWrite (FeuOrange2, LOW) ; // Extinction du feu orange F2
digitalWrite (FeuRouge2, HIGH) ; // Allumage du feu Rouge F2
delay (TempsAttenteFeuRouge) ; // Temporisation du feu Rouge F2
digitalWrite (FeuVert1, HIGH) ; // On est revenu au point de départ
// Feu vert sur F1 et feu rouge sur F2 : le cycle peut recommencer
}Feux tricolores
F2
F1