bonjour , voila j'ai un programme avec un while ,il compte 5 fois et reste allumé si je reste appuyé sur le bouton poussoir et si je relâche il s'éteint , or si je réappuie sur le bouton poussoir le programme ne recommence pas a clignoter aucune led s'allume
pouvez vous me mettre sur la piste s'il vous plait ?
Voici le code ::
int i=0;
int led=13;
int bouton = 2;
int etatbouton=0;
void setup() {
pinMode(bouton, INPUT);
pinMode(13, OUTPUT);
}
void loop() {
etatbouton = digitalRead (bouton);
{
if
(digitalRead(bouton) == HIGH)
while(i<5){
i++;
digitalWrite(led, LOW);
delay(200);
digitalWrite(led, HIGH);
delay(200);
}
else
{
digitalWrite(led,LOW);
}
}
}
Merci d’éditer votre post pour rajouter les balises de code
sélectionner la partie du texte qui correspond au code
appuyez sur l’icône </> dans la barre d’outils pour indiquer que c’est du code
(Assurez vous aussi d’indenter le code correctement dans l’IDE avant de le copier pour le coller ici. Cela se fait en pressant ctrlT sur PC ou cmdT sur un Mac)
je vois pas pourquoi le programme ne redémarre pas quand le bouton est au repos parce qu'a mon niveau je pense avoir réussi à sortir de while vue que les leds s'éteint ! quand je relâche le bouton je n'ai pas une connaissance poussé
Donc il faut le remettre à 0 si tu veux pouvoir utiliser l e bouton plus d'une fois.
De plus, tu affectes l'état du bouton à ta variable etatbouton mais tu ne t'en sers pas.
Tu peux faire : if (etatbouton == HIGH)
et déclarer etatbouton comme un booléen (avant le setup) bool etatbouton = LOW;
A priori ton bouton est câble en pull-down :
De même tu définis : int led=13;
mais tu ne t'en sers pas ensuite. Fais plutôt : pinMode(led, OUTPUT);
@J-M-L t'a mis sur la voie au post #2, @lesept t'a donné la solution au post #8. Il faut mettre i à 0 avant le while (ne pas oublier les {} après le if).
Remarques:
le
if
(etatbouton == HIGH)
ne sert à rien puisque etatbouton est toujours HIGH
le while serait avantageusement remplacé par un for
indente ton code comme @J-M-L te l'a préconisé au post #2, tel quel on ne voit pas la structure.