Gérer Un Bouton Poussoir On / Off Sur Arduino - BeanyOverTech
Maybe your like
Publié 20 mai 2021 · Mis à jour 25 mai 2021
Dans cet article je vais présenter la manière de gérer un bouton pousssoir avec une action ON – OFF en prenant l’exemple d’une LED mais qui sera adaptable pour n’importe quelle autre projet plus avancé type :
- faire tourner un servo moteur ou l’arrêter
- action de changement d’affichage sur un écran
- etc (Voir mes autres articles)
Quand on débute sur Arduino, notre premier réflexe est souvent de vouloir allumer et éteindre une LED grâce à un bouton poussoir. Mais dans la plupart des tutoriels voici ce qui se passe : Lorsqu’on appuie sur le bouton la LED s’allume mais lorsqu’on le relâche, la LED s’éteint.
Avec cet exemple de LED on veut donc :
- Que la LED s’allume lorsqu’on appuie sur le bouton poussoir et qu’elle reste allumée tant qu’on a pas de nouveau appuyé sur le bouton.
- Que la LED s’éteigne lorsqu’on appuie de nouveau sur le bouton poussoir
- et ainsi de suite.
Le montage electronique
Pour réaliser ce montage il vous faut :
- 2 résistances de 220ohm
- Un bouton poussoir
- Une LED
- Des fils de connexion
- une breadboard (planche à pain).
- Un Arduino ( oui oui ).

Ici, rien d’exotique et de compliqué, le but étant de comprendre le code qui suit. Notons simplement que notre LED est reliée au pin 8 de notre Arduino Uno et que le bouton poussoir est relié au pin 4.
Le code pour manager le boutton on / off
// *** affectation des variables *** int ledPin = 8; // ma led = pin 8 du arduino int buttonPin = 4; // le bouton = pin 4 int timeDelay = 500; // mon temps de delai // L'état initial de mon bouton poussoir (ici éteint) bool buttonState = false; void setup() { pinMode(ledPin, OUTPUT); // init de ma led pinMode(buttonPin, INPUT); // init de mon bouton } void loop() { // condition 1 : bouton appuyé ET état actuel du bouton éteint if (digitalRead(buttonPin) == HIGH && !buttonState) { digitalWrite(ledPin, HIGH); // j'allume ma led buttonState = !buttonState; // je change l'état de false à true delay(timeDelay); // je mets un temps de delai } // condition 2 : bouton appuyé ET état actuel du bouton allumé if (digitalRead(buttonPin) == HIGH && buttonState) { digitalWrite(ledPin, LOW); // j'éteins ma led buttonState = !buttonState; // je change l'état du bouton à false delay(timeDelay); // je mets un temps de delai } }Retrouvez le code et le montage en ligne
Vous pouvez retrouver le code et le montage en ligne :
- Ici > lien vers Tinkercad si vous voulez simuler le comportement sur ce logiciel gratuit en ligne.
- Ici > lien vers Youtube si vous voulez retrouver les explications en vidéo
- et lire la suite si vous voulez des explications complémentaires.
Explications du code
Il faut noter l’importance de la variable buttonState puisque c’est elle qui va définir si la LED doit s’allumer ou s’éteindre lorsque j’appuie sur mon bouton poussoir. De base, on initialise cette variable à false ce qui signifie que lorsqu’on va lancer notre programme, on va vouloir que notre LED soit éteinte. Et dans le loop() on exécutera en continue 2 conditions :
Condition 1 : Dès que l’on detecte que le bouton est enfoncé (via le digitalRead(buttonPin) == HIGH ) ET QUE l’état actuel de notre bouton est à false (éteinte), ALORS ce n’est que dans ce cas que l’on doit allumer notre LED. Et c’est ce que l’on fait dans cette condition :
- On allume notre LED via digitalWrite(ledPin, HIGH);
- On change l’état de notre bouton de false à true puisque désormais notre LED est allumée.
- On laisse un petit temps de delai qui sert vulgairement à laisser le temps au arduino d’allumer la LED et sortir de la condition
Condition 2 : Ici, c’est l’inverse de la première condition. Dès que l’on détecte que le bouton est enfoncé ET QUE cette fois, l’état actuel du bouton est à true (actuellement allumée) ALORS ce n’est que dans ce cas que l’on va devoir éteindre notre LED.
Et c’est tout ! Bon courage pour le montage et le code !
Étiquettes : allumerarduinoboutonbouton poussoirC++éteindreledon off
- Article suivant Debugger sa Skill Alexa en local avec Visual Studio Code
- Article précédent Vérifier les numéros de carte bancaire, Siret … avec l’Algorithme de LUHN
Vous aimerez aussi...
-
Contrôler un Ecran LCD 16*2 sur Arduino en affichant différents messages avec appui bouton poussoir.
2 mai 2022
Tag » Arduino Compter Le Temps D Appui D Un Bouton
-
Calcul Temps Entre Chaque Appuie De Bouton - Arduino Forum
-
---Appui Long Sur Bouton--- - Français - Arduino Forum
-
Exécution De Fonctions Selon Nombre Appui Sur Bouton Poussoir
-
Calculer Le Temps Entre Deux états - Français - Arduino Forum
-
[Arduino] Calcul Du Temps Qu'un Bp Est Appuyé - OpenClassrooms
-
Arduino : Comment Gérer Le Temps
-
Un Simple Bouton - Arduino : Premiers Pas En Informatique ...
-
Arduino UNO Etc : Réagir à L'appui Sur Un Bouton Poussoir (front ...
-
[Arduino] Compter Combien De Fois On A Appuyé Sur Une Suite Boutons
-
Arduino Cours Sur Le Temps Avec Delay Et Millis - Oui Are Makers
-
Compter Le Nombre D'appuis Sur Un Bouton Poussoir - Mon Club Elec
-
Tout Faire Avec Seulement Deux B.P. - Robot Maker
-
Comment Gérer Les Boutons - DIego Yourself
-
Arduino : Gestion De Bouton Pour Un Compteur