#10Débutant

Led brûlante avec bouton (marche-arrêt)

4.8(100)
157 terminé
Led brûlante avec bouton (marche-arrêt)
Un projet de bascule qui change l'état de la LED (on/off) à chaque pression sur un bouton. Enseigne les variables d'état et la logique de rebond.

Vidéo

Schéma du circuit

Led brûlante avec bouton (marche-arrêt) - Circuit

Code source

Arduino (C++)
1int ledState = 0;
2
3void setup() {
4  pinMode(13, INPUT);
5  pinMode(7, OUTPUT);
6}
7
8void loop() {  
9  if (digitalRead(13) == 1) {
10    ledState = !ledState;
11    digitalWrite(7, ledState);
12    delay(300);
13  }   
14}

FAQ

Qu'est-ce que le « debounce » et pourquoi est-il nécessaire ?▾

Lorsqu'on appuie sur un bouton mécanique, celui-ci s'ouvre et se referme plusieurs fois en l'espace de quelques millisecondes (rebond). L'Arduino peut interpréter cela comme plusieurs pressions successives et la LED reste alors dans un état aléatoire. Le débounce ignore ces rebonds en attendant un court laps de temps (par exemple 50 ms) après le changement d'état.

Parfois, la LED ne change pas ou change deux fois, pourquoi ?▾

En général, le délai anti-rebond est absent ou trop court. De plus, il suffit de détecter le moment où le bouton est « enfoncé » (état précédent : LOW, nouvel état : HIGH) ; si l'état change à chaque cycle tant que le bouton reste enfoncé, la LED clignote de manière aléatoire.

À quoi sert la variable d'état ?▾

Elle conserve en mémoire si la LED est allumée ou éteinte. À chaque pression valide, la variable est inversée (ledDurum = !ledDurum) et la LED est activée ou désactivée en fonction de cette valeur.

Puis-je contrôler différentes LED à l'aide de plusieurs boutons ?▾

Oui, il suffit de définir une broche distincte, un état précédent distinct et une variable d'état de la LED distincte pour chaque bouton. Si tu utilises beaucoup de boutons, il est préférable d'utiliser des tableaux et un code de débouncing basé sur la fonction `millis()` pour plus de clarté.

Led brûlante avec bouton (marche-arrêt) | BlueGrays