Arduino - Bouton basculer LED

Dans Arduino - Bouton - LED., nous avons appris à allumer la LED lorsque le bouton est pressé, et à éteindre la LED lorsque le bouton est relâché. Dans ce tutoriel, nous allons apprendre à basculer l'état de la LED à chaque pression sur le bouton.

Le tutoriel comprend deux parties principales :

À propos des LED et des boutons

Si vous ne connaissez pas les LED et les boutons (brochage, fonctionnement, programmation...), renseignez-vous dans les tutoriels suivants :

Diagramme de câblage

Schéma de câblage d'un bouton LED Arduino

This image is created using Fritzing. Click to enlarge image

Code Arduino - Bouton bascule la LED sans anti-rebond

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-button-toggle-led */ // constants won't change const int BUTTON_PIN = 7; // Arduino pin connected to button's pin const int LED_PIN = 3; // Arduino pin connected to LED's pin // variables will change: int ledState = LOW; // the current state of LED int lastButtonState; // the previous state of button int currentButtonState; // the current state of button void setup() { Serial.begin(9600); // initialize serial pinMode(BUTTON_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode currentButtonState = digitalRead(BUTTON_PIN); } void loop() { lastButtonState = currentButtonState; // save the last state currentButtonState = digitalRead(BUTTON_PIN); // read new state if(lastButtonState == HIGH && currentButtonState == LOW) { Serial.println("The button is pressed"); // toggle state of LED ledState = !ledState; // control LED arccoding to the toggled state digitalWrite(LED_PIN, ledState); } }

Étapes rapides

  • Connectez l'Arduino au PC via le câble USB
  • Ouvrez l'IDE Arduino, sélectionnez la bonne carte et le bon port
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload de l'IDE Arduino pour charger le code sur l'Arduino
  • Maintenez le bouton enfoncé plusieurs secondes puis relâchez-le.
  • Observez le changement d'état de la LED

Explication du code

Vous pouvez trouver l'explication dans la ligne de commentaires du code Arduino ci-dessus.

Dans le code, ledState = !ledState est équivalent au code suivant :

if(ledState == LOW) ledState = HIGH; else ledState = LOW;

※ Note:

En pratique, le code ci-dessus ne fonctionne pas correctement parfois. Pour qu'il fonctionne toujours correctement, nous devons Arduino - Bouton - Anti-rebond.. Le debouncing pour le bouton n'est pas facile pour les débutants. Heureusement, grâce à la bibliothèque ezButton, nous pouvons le faire facilement.

Code Arduino - Bouton Bascule LED avec Anti-rebond

Pourquoi avons-nous besoin de la suppression des rebonds ? ⇒ voir Arduino - Bouton - Anti-rebond.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-button-toggle-led */ #include <ezButton.h> /// constants won't change const int BUTTON_PIN = 7; // the number of the pushbutton pin const int LED_PIN = 3; // the number of the LED pin ezButton button(BUTTON_PIN); // create ezButton object that attach to pin 7; // variables will change: int ledState = LOW; // the current state of LED void setup() { Serial.begin(9600); // initialize serial pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode button.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { button.loop(); // MUST call the loop() function first if(button.isPressed()) { Serial.println("The button is pressed"); // toggle state of LED ledState = !ledState; // control LED arccoding to the toggleed sate digitalWrite(LED_PIN, ledState); } }

Étapes rapides

  • Installez la bibliothèque ezButton. Voir Comment faire
  • Copiez le code ci-dessus et ouvrez-le avec Arduino IDE
  • Cliquez sur le bouton Upload dans Arduino IDE pour charger le code sur Arduino
  • Appuyez plusieurs fois sur le bouton
  • Observez le changement d'état de la LED

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!