Bonjour moi c'est Thomas je suis un "nul" d'arduino je ne sais pas si je poste ma question au bon endroit mais bon...
J'essaie d'occuper le garçon de ma compagne avec Arduino nous essayons de créer un feu tricolore avec feu piéton et bouton poussoir "piéton" cela fonctionne bien avec ce code trouvé sur le net un peu modifié mais il faut rester appuyer sur le BP jusqu'à ce que la boucle soit terminée pour quelle prenne en compte l'appui. Nous souhaiterions pouvoir faire une simple impulsion sur ce dernier et qu le programme passe directement au "feu orange" puis "feu rouge" et ensuite reprenne le fonctionnement normal.
merci pour votre aide.
// Constantes et variables pour le feu tricolore
const int ledRouge = 12;
const int ledOrange = 11;
const int ledVerte = 10;
// Constantes et variables pour le feu piéton
const int ledRouge_pieton = 9;
const int ledVerte_pieton = 8;
// Constante et variables pour le bouton poussoir
const int bouton = 2;
int etatBouton = 0;
void setup() {
pinMode (ledRouge, OUTPUT);
pinMode (ledOrange, OUTPUT);
pinMode (ledVerte, OUTPUT);
pinMode (ledRouge_pieton, OUTPUT);
pinMode (ledVerte_pieton, OUTPUT);
pinMode (bouton, INPUT);
}
void loop() {
etatBouton = digitalRead (bouton);
delay(100);
if (etatBouton == HIGH) {
digitalWrite (ledRouge, LOW);
digitalWrite (ledOrange, HIGH);
digitalWrite (ledVerte, LOW);
delay(3000);
digitalWrite (ledRouge, HIGH);
digitalWrite (ledOrange, LOW);
digitalWrite (ledRouge_pieton, LOW);
digitalWrite (ledVerte_pieton, HIGH);
delay(15000);
digitalWrite (ledRouge_pieton, HIGH);
digitalWrite (ledVerte_pieton, LOW);
digitalWrite (ledRouge, LOW);
digitalWrite (ledVerte, HIGH);
delay(10000);
digitalWrite (ledVerte, LOW);
}
else {
digitalWrite (ledRouge_pieton, HIGH);
digitalWrite (ledVerte_pieton, LOW);
digitalWrite (ledOrange, HIGH);
delay(3000);
digitalWrite (ledOrange, LOW);
digitalWrite (ledRouge, HIGH);
digitalWrite (ledRouge_pieton, LOW);
digitalWrite (ledVerte_pieton, HIGH);
delay(10000);
digitalWrite (ledRouge_pieton, HIGH);
digitalWrite (ledVerte_pieton, LOW);
delay(5000);
digitalWrite (ledRouge, LOW);
digitalWrite (ledVerte, HIGH);
delay(10000);
digitalWrite (ledVerte, LOW);
}
}
Auriez-vous une solution ?
Thomas et Mylan