ESP32 S3 - Bouton LED

Ce tutoriel vous montre comment utiliser l'ESP32 S3 avec un bouton pour contrôler une LED. Vous apprendrez deux méthodes de contrôle pratiques — synchroniser la LED directement avec l'état du bouton, et la basculer à chaque pression — toutes deux implémentées avec un code clair et bien commenté.

Ce que vous allez construire :

  1. Un circuit ESP32 S3 avec un bouton et une LED câblés à la carte
  2. Application 1 : la LED s'allume tant que le bouton est maintenu et s'éteint à sa libération
  3. Application 2 : la LED bascule d'état à chaque pression du bouton (sans anti-rebond, puis avec)
  4. Un basculement fiable et sans rebond grâce à la bibliothèque ezButton
ESP32 S3 - Button LED

Nous allons couvrir deux cas d'usage distincts pour le contrôle d'une LED par bouton avec l'ESP32 S3 :

Cas d'usage 1 - États de la LED et du bouton synchronisés :

Cas d'usage 2 - Basculer l'état de la LED avec les pressions du bouton :

Dans le cas d'usage 2, l'anti-rebond du bouton est essentiel. Nous allons montrer la différence entre le code ESP32 S3 avec et sans anti-rebond afin que vous puissiez voir pourquoi cela compte.

Matériel requis

1×ESP32 S3 WROOM N16R8
1×Alternativement: ESP32 S3 SuperMini Dev Module
1×Alternativement: ESP32 S3 Uno-form Board
1×Alternativement: ESP32 S3 Camera Board
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Bouton avec capuchon pour plaque d'essai
1×Kit bouton pour plaque d'essai
1×Bouton poussoir pour montage sur panneau
1×Module bouton poussoir
1×LED Kit
1×LED (red)
1×LED Module
1×Alternativement: Button and LED Kit
1×220Ω Resistor
1×Plaque d'essai
1×Fils de connexion
1×Optionnel: 5V Power Adapter for ESP32 S3
1×Recommandé: Screw Terminal Expansion Board for ESP32 S3
1×Recommandé: Breakout Expansion Board for ESP32 S3
1×Recommandé: Power Splitter for ESP32 S3

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus)
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 de la LED et du bouton

Les LED et les boutons sont deux des éléments de base les plus essentiels pour les projets interactifs ESP32 S3. Un bouton fournit une entrée numérique que le microcontrôleur lit, tandis qu'une LED donne un retour visuel instantané basé sur la logique du programme. Les combiner sur l'ESP32 S3 vous enseigne le flux de travail entrée/sortie fondamental utilisé dans pratiquement tous les projets embarqués.

Caractéristiques principales

Pour un contexte complet sur chaque composant, consultez ces tutoriels dédiés :

Quelques points importants à garder à l'esprit. Les LED nécessitent une résistance de limitation de courant (220 ohms recommandée) pour éviter tout dommage. Les boutons peuvent s'appuyer sur les résistances de tirage internes intégrées de l'ESP32 S3, éliminant le besoin de composants externes. L'ESP32 S3 gère simultanément l'entrée numérique (bouton) et la sortie numérique (LED), ce qui rend simple la construction de circuits interactifs même pour un débutant.

Schéma de câblage

Connectez le bouton et la LED à votre ESP32 S3 en suivant le schéma ci-dessous. Vérifiez bien chaque connexion avant de mettre la carte sous tension pour éviter tout court-circuit accidentel.

ESP32 S3 Button LED wiring diagram

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Notes de sécurité

Connectez toujours la LED via la résistance de 220 ohms pour limiter le courant et protéger à la fois la LED et la broche GPIO de l'ESP32 S3. Le bouton est câblé à GND sur une borne et à la broche GPIO sur l'autre ; le sketch active la résistance de tirage interne, donc aucune résistance externe n'est nécessaire pour le bouton.

Composant Broche Broche ESP32 S3
Bouton Une borne GPIO21
Bouton Autre borne GND
LED Anode (patte longue) GPIO1
LED Cathode (patte courte) résistance 220Ω vers GND

Application 1 - L'état de la LED est synchronisé avec l'état du bouton

Cette application ESP32 S3 démontre la forme la plus simple de contrôle bouton-vers-LED : la LED reflète l'état du bouton en temps réel. Lorsque vous appuyez et maintenez le bouton, la LED s'allume immédiatement ; lorsque vous relâchez, elle s'éteint. Ce sketch lit la broche GPIO connectée au bouton à chaque itération de la boucle et écrit l'état inversé directement sur la broche de la LED, créant une boucle de rétroaction réactive et précise sans logique supplémentaire nécessaire.

Code ESP32 S3

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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-s3/esp32-s3-button-led */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-button-led */ #define BUTTON_PIN 21 // ESP32-S3 pin GPIO21, which connected to button #define LED_PIN 1 // ESP32-S3 pin GPIO1, which connected to led // variables will change: int button_state = 0; // variable for reading the button status void setup() { // initialize the LED pin as an output: pinMode(LED_PIN, OUTPUT); // initialize the button pin as an pull-up input: // the pull-up input pin will be HIGH when the button is open and LOW when the button is pressed. pinMode(BUTTON_PIN, INPUT_PULLUP); } void loop() { // read the state of the button value: button_state = digitalRead(BUTTON_PIN); // control LED according to the state of button if (button_state == LOW) // if button is pressed digitalWrite(LED_PIN, HIGH); // turn on LED else // otherwise, button is not pressing digitalWrite(LED_PIN, LOW); // turn off LED }

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Câblez les composants : Suivez le schéma de câblage présenté ci-dessus.
  3. Connectez l'ESP32 S3 : Utilisez un câble USB Type-C pour vous connecter à votre ordinateur.
  4. Configurez l'Arduino IDE : Si c'est la première fois que vous utilisez l'ESP32 S3, consultez comment configurer l'environnement pour l'ESP32 S3 sur Arduino IDE.
  5. Sélectionnez votre carte : Choisissez la carte ESP32 S3 et son port COM dans l'Arduino IDE.
  6. Téléversez le code : Copiez le code ci-dessus et téléversez-le sur votre ESP32 S3.
Arduino IDE Upload Code
  1. Testez le bouton : Appuyez et maintenez le bouton pendant quelques secondes.
  2. Observez la LED : Regardez la LED s'allumer et s'éteindre avec les pressions du bouton.
  3. Astuce pro : Si le comportement de la LED semble inversé, vérifiez que vous avez correctement identifié l'état de pression du bouton.

Vous verrez que l'état de la LED est synchronisé avec l'état du bouton sur votre ESP32 S3.

Explication du code

Consultez l'explication ligne par ligne contenue dans les commentaires du code source !

Application 2 - Le bouton bascule la LED

Cette application ESP32 S3 démontre un comportement de bascule : chaque pression du bouton fait basculer la LED entre ON et OFF plutôt que de la maintenir dans un état pendant que le bouton est maintenu. La première pression allume la LED ; la deuxième pression l'éteint ; et ainsi de suite indéfiniment. Comme l'état de la LED est stocké dans une variable et ne change que sur un front LOW-vers-HIGH du bouton, relâcher le bouton n'a aucun effet sur la LED.

Comportement de bascule sur ESP32 S3 :

  • La première pression du bouton allume la LED
  • La deuxième pression du bouton éteint la LED
  • Chaque pression passe à l'état opposé
  • Nécessite un anti-rebond pour un fonctionnement fiable

Code ESP32 S3 - Le bouton bascule la LED sans anti-rebond

Ce premier exemple démontre le problème de bascule de bouton sur ESP32 S3 sans anti-rebond.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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-s3/esp32-s3-button-led */

Explication du code

Vous pouvez trouver l'explication dans les lignes de commentaire du code ESP32 S3 ci-dessus.

Comprendre la logique de bascule :

Dans le code, l'expression led_state = !led_state équivaut au code suivant :

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

L'opérateur ! inverse la valeur booléenne en une seule expression compacte. C'est un motif courant dans les applications de bascule ESP32 S3 et il est équivalent au bloc if/else plus long montré ci-dessus — les deux produisent un comportement identique.

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Téléversez le code : Copiez le code ci-dessus et téléversez-le sur votre ESP32 S3.
  3. Testez plusieurs pressions : Appuyez et relâchez le bouton plusieurs fois.
  4. Observez un comportement erratique : Remarquez que la LED peut basculer de manière incohérente.
  5. Comprenez le problème : Des pressions simples peuvent basculer la LED plusieurs fois ou pas du tout.
  6. Astuce pro : Cette incohérence se produit car les boutons « rebondissent » électriquement lorsqu'ils sont pressés, créant plusieurs signaux.

Vous pouvez observer que l'état de la LED bascule à chaque pression du bouton. Cependant, ce comportement peut ne pas être toujours cohérent. Parfois, l'état de la LED peut basculer rapidement plusieurs fois lors d'une seule pression du bouton, ou il peut ne pas basculer du tout (basculant deux fois en succession rapide, ce qui peut être difficile à voir à l'œil nu).

⇒ Pour résoudre ce problème, nous devons ESP32 S3 - Bouton - Anti-rebond.

Code ESP32 S3 - Le bouton bascule la LED avec anti-rebond

Maintenant nous allons utiliser un anti-rebond approprié pour rendre le basculement de la LED par bouton fiable sur l'ESP32 S3. La bibliothèque ezButton gère tout l'anti-rebond en interne, ainsi votre sketch reste concis pendant que la bibliothèque filtre le bruit électrique des contacts du bouton. Cela produit un comportement de basculement unique et cohérent à chaque pression — une amélioration notable par rapport à la version sans anti-rebond.

L'anti-rebond d'un bouton peut être difficile pour les débutants. Heureusement, la bibliothèque ezButton rend cela facile.

Pourquoi l'anti-rebond est-il nécessaire ? Consultez le ESP32 S3 - Bouton - Anti-rebond pour plus d'informations.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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-s3/esp32-s3-button-led */

Étapes rapides

  1. Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Installez la bibliothèque ezButton : Installez la bibliothèque ezButton. Référez-vous au Comment faire pour les instructions.
  3. Téléversez le code avec anti-rebond : Copiez le code ci-dessus et téléversez-le sur votre ESP32 S3.
  4. Testez les pressions du bouton : Appuyez et relâchez le bouton plusieurs fois.
  5. Observez un basculement fiable : Remarquez que la LED bascule exactement une fois par pression.
  6. Comparez les comportements : Remarquez à quel point c'est plus fiable comparé à la version sans anti-rebond.
  7. Astuce pro : La bibliothèque ezButton fonctionne avec tous les projets ESP32 S3 nécessitant une entrée par bouton.

Vous verrez que l'état de la LED bascule exactement une fois à chaque pression du bouton sur votre ESP32 S3.

Idées d'applications

La combinaison bouton-LED de l'ESP32 S3 est une base que vous pouvez étendre en de nombreux projets pratiques et créatifs. Voici quelques idées pour stimuler votre imagination :

  1. Contrôle de lampe de bureau : Construisez une lampe de bureau ESP32 S3 simple avec un contrôle manuel de bascule ON/OFF.
  2. Indicateur de sonnette : Créez un indicateur de sonnette qui s'allume lorsque le bouton est pressé.
  3. Buzzer de jeu : Concevez un système de buzzer de jeu avec retour visuel par LED utilisant l'ESP32 S3.
  4. Indicateur d'état : Fabriquez un indicateur d'état pour un équipement (état ON/OFF) avec l'ESP32 S3.
  5. Indicateur de verrou : Construisez un simple indicateur de verrou montrant l'état verrouillé/déverrouillé avec contrôle par bouton.
  6. Jeu de temps de réaction : Créez un jeu de temps de réaction mesurant la vitesse à laquelle vous pouvez basculer la LED.

Section vidéo

Regardez le tutoriel vidéo étape par étape pour ce projet ESP32 S3 ci-dessous.

Défiez-vous

Maintenant que vous avez un circuit bouton-LED ESP32 S3 fonctionnel, poussez vos compétences plus loin avec ces défis classés par difficulté :

  1. Débutant : Modifiez le code pour contrôler deux LED avec un seul bouton (une ON lorsqu'il est pressé, une OFF).
  2. Débutant : Changez la LED pour qu'elle clignote trois fois lorsque le bouton est pressé au lieu de rester allumée fixement.
  3. Intermédiaire : Ajoutez un second bouton à votre ESP32 S3 pour contrôler la luminosité de la LED (bascule faible/forte).
  4. Intermédiaire : Créez une séquence de feu de circulation qui avance à l'état suivant à chaque pression du bouton.
  5. Avancé : Implémentez une détection d'appui long qui se comporte différemment d'un appui court sur ESP32 S3.
  6. Avancé : Construisez un cadenas à combinaison utilisant plusieurs boutons où la LED ne s'allume qu'avec la bonne séquence.

Commentaires

※ 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 !