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 :

Préparation du matériel

1×Arduino Uno R3
1×Câble USB 2.0 type A/B (pour PC USB-A)
1×Câble USB 2.0 type C/B (pour PC USB-C)
1×Push Button
1×Optionnel: Bouton poussoir pour montage sur panneau
1×Module bouton poussoir
1×LED Kit
1×LED (red)
1×LED Module
1×220Ω Resistor
1×Plaque d'essai
1×Fils de connexion
1×Optionnel: 9V Power Adapter for Arduino
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables STEM V3 (Arduino inclus)
1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

Note d'achat: Pour simplifier le processus de câblage, nous recommandons d'utiliser le LED Module, qui est livré avec une résistance intégrée.

À 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

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'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

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !