Bonjour à tous,
Je débute la programmation et j'ai un petit soucis.
J'ai un circuit qui inclue des relais mais on va dire que c'est des Leds, ce sera plus simple pour régler le problème.
Je veux que quand j'appuie sur un petit bouton elle s'allume toutes, très rapidement, les unes après les autres et ce, une seule fois.
C'est à dire:
J'appuie sur le bouton.
La première s'allume puis s'éteint.
La deuxième s'allume puis s'éteint.
etc...
Fin de la boucle et rien ne se passe jusqu'à ce j'appuie de nouveau sur le bouton.
Apparemment il faut utiliser un bouléen.
Mais ça ne marche pas, elle clignote toutes, successivement tant que j'ai le doigt sur le bouton.
Voici mon code:
int tps = 50; // Délais entre chaque Flash
int bouttonstate = 0; // État du bouton
boolean running = false;
const int flash1 = 5; // DigitOut 1
const int flash2 = 6; // DigitOut 2
const int flash3 = 7; // DigitOut 3
const int led = 13; // Led de vérification
const int boutton = 2; // Bouton déclencheur
void setup() {
Serial.begin(9600);
pinMode(boutton, INPUT);
pinMode(led, OUTPUT);
pinMode(flash1, OUTPUT);
pinMode(flash2, OUTPUT);
pinMode(flash3, OUTPUT);
}
void loop() {
bouttonstate = digitalRead(boutton);
if (bouttonstate == HIGH && running == false)
{
delay (100); // Pause anti rebond
digitalWrite (led, HIGH);
digitalWrite (flash1, HIGH);
delay (tps);
digitalWrite (flash1, LOW);
digitalWrite (flash2, HIGH);
delay (tps);
digitalWrite (flash2, LOW);
digitalWrite (flash3, HIGH);
delay (tps);
digitalWrite (flash3, LOW);
digitalWrite (led, LOW);
running = true;
}
else {
digitalWrite (led, LOW);
digitalWrite (flash1, LOW);
digitalWrite (flash2, LOW);
digitalWrite (flash3, LOW);
running = false;
}
}
Merci!!!