ESP32 - Bouton bascule LED

Ce tutoriel vous explique comment utiliser l'ESP32 pour basculer l'état d'une LED entre ON et OFF lorsque vous appuyez sur un bouton. Plus précisément :

Le code ESP32 contient du code pour un bouton qui bascule une LED sans et avec anti-rebond.

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×Push Button
1×(Optional) Panel-mount Push Button
1×LED
1×220 ohm resistor
1×Breadboard
1×Jumper Wires
1×(Optional) DC Power Jack
1×(Recommended) ESP32 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
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.

#À propos des LED et des boutons

Nous disposons de tutoriels spécifiques sur les LED et les boutons. Chaque tutoriel contient des informations détaillées et des instructions étape par étape sur le brochage du matériel, le principe de fonctionnement, la connexion de câblage à l'ESP32, le code ESP32... Pour en savoir plus, consultez les liens suivants :

Diagramme de câblage

Schéma de câblage du bouton LED ESP32

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

Code ESP32 - Bouton bascule LED sans anti-rebond

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/esp32/esp32-button-toggle-led */ #define BUTTON_PIN 18 // ESP32 pin GPIO18, which connected to button #define LED_PIN 21 // ESP32 pin GPIO21, which connected to led // variables will change: int led_state = LOW; // the current state of LED int button_state; // the current state of button int last_button_state; // the previous state of button void setup() { Serial.begin(9600); // initialize serial pinMode(BUTTON_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode pinMode(LED_PIN, OUTPUT); // set ESP32 pin to output mode button_state = digitalRead(BUTTON_PIN); } void loop() { last_button_state = button_state; // save the last state button_state = digitalRead(BUTTON_PIN); // read new state if (last_button_state == HIGH && button_state == LOW) { Serial.println("The button is pressed"); // toggle state of LED led_state = !led_state; // control LED arccoding to the toggled state digitalWrite(LED_PIN, led_state); } }

Étapes rapides

  • Si c'est la première fois que vous utilisez un ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
  • Effectuez le câblage comme sur l'image ci-dessus.
  • Connectez la carte ESP32 à votre PC via un câble micro USB.
  • Ouvrez Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 (par exemple ESP32 Dev Module) et le port COM.
  • Copiez le code ci-dessus et collez-le dans Arduino IDE.
  • Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload dans Arduino IDE.
  • Continuez à appuyer sur le bouton plusieurs secondes puis relâchez-le.
  • Observez le changement d'état de la LED.

Explication du code ligne par ligne

Le code ESP32 ci-dessus contient des explications ligne par ligne. Veuillez lire les commentaires dans le code !

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

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

※ NOTE THAT:

Le code ci-dessus ne contient pas le code de debounce pour le bouton. Sans debounce pour le bouton, des comportements inattendus peuvent se produire. Voir Pourquoi utiliser un debounce pour le bouton. La mise en place du debounce pour le bouton est compliquée pour les débutants. Heureusement, la bibliothèque ezButton gère le debounce du bouton pour nous.

Code ESP32 - Bouton bascule LED avec anti-rebond

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/esp32/esp32-button-toggle-led */ #include <ezButton.h> #define BUTTON_PIN 18 // ESP32 pin GPIO18, which connected to button #define LED_PIN 21 // ESP32 pin GPIO21, which connected to led ezButton button(BUTTON_PIN); // create ezButton object that attach to pin 7; // variables will change: int led_state = LOW; // the current state of LED void setup() { Serial.begin(9600); // initialize serial pinMode(LED_PIN, OUTPUT); // set ESP32 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 led_state = !led_state; // control LED arccoding to the toggleed sate digitalWrite(LED_PIN, led_state); } }

Étapes rapides

  • Si c'est la première fois que vous utilisez ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
  • Installez la bibliothèque ezButton. Voir Comment faire
  • Copiez le code ci-dessus et collez-le dans Arduino IDE.
  • Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload dans Arduino IDE
  • Pressez le bouton plusieurs fois
  • 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!