Reformulation tout à fait pertinente
Merci !
Eureka, ça fonctionne!!!!!
Merci à tous et merci pour vos précieux conseils.
Mazette ça m'aura occupé 5 minutes
Encore un grand merci
// déclaration des constantes
const int BP = 2; // bouton poussoir en sortie 2
const int LED = 13; // LED en sortie 13
// déclaration des variables
int etatbouton = 0; // variable pour lire le status du BP
int etatled = 0; // variable pour lire le status de la sortie 13
void setup() {
// on initialise la LED comme une sortie:
pinMode(LED, OUTPUT);
// on initialise le bouton poussoir comme une entrée:
pinMode(BP, INPUT);
}
void loop() {
// on lit la valeur du status du Bouton poussoir BP:
etatbouton = digitalRead(BP);
// on lit la valeur du status du la sortie 13:
etatled = digitalRead(LED);
// vérifier si le bouton est appuyé et si la sortie 13 est alimentée.
// si c'est le cas le status de etatbouton est LOW:
if ((etatbouton == LOW) && (etatled == HIGH)) {
// on éteint la LED:
digitalWrite(LED, LOW);
delay(500);
}
// vérifier si le bouton est appuyé et si la sortie 13 est éteinte.
// si c'est le cas le status de etatbouton est LOW:
if ((etatbouton == LOW) && (etatled == LOW)) {
// on allume la LED:
digitalWrite(LED, HIGH);
delay(500);
}
}
Juste une petite question au hasard (ou presque...)
Que se passe t'il si tu maintiens le bouton enfoncé pendant plusieurs secondes ?
La question qui tue
ça clignote avec une fréquence de 0,5 secondes... Il existe certainement une solution pour éviter ce phénomène mais alors là, c'est une autre histoire.... Après si quelqu'un sait....
Ben regarde ton code et essaye de l'imaginer tourner.
De la même manière, il est évident que lors de deux appuis rapides, espacés de moins de 0,5 seconde, seul le premier est pris en compte.
Donc le double-clic fonctionnera, mais seulement avec les personnes lentes
Comme quoi, un simple bouton poussoir n'est pas forcément aussi simple à gérer qu'il n'y paraît.
Il n'est toujours pas trop tard pour adopter la lib simpleBouton...