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

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 :
- L'ESP32 S3 allume la LED lorsque le bouton est pressé
- L'ESP32 S3 éteint la LED lorsque le bouton est relâché
- L'état de la LED reflète directement l'état du bouton en temps réel
Cas d'usage 2 - Basculer l'état de la LED avec les pressions du bouton :
- L'ESP32 S3 détecte la pression du bouton (transition de HIGH à LOW)
- La LED bascule vers ON si elle est actuellement OFF, ou vers OFF si elle est actuellement ON
- Relâcher le bouton ne change pas l'état de la LED
- Nécessite un anti-rebond pour un fonctionnement fiable
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
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) |
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 :
- ESP32 S3 - LED - Clignotement - Apprenez les bases des LED et du clignotement
- ESP32 S3 - Bouton - Comprenez la lecture du bouton
- ESP32 S3 - Bouton - Anti-rebond - Maîtrisez la détection fiable des boutons
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.

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
Étapes rapides
- Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
- Câblez les composants : Suivez le schéma de câblage présenté ci-dessus.
- Connectez l'ESP32 S3 : Utilisez un câble USB Type-C pour vous connecter à votre ordinateur.
- 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.
- Sélectionnez votre carte : Choisissez la carte ESP32 S3 et son port COM dans l'Arduino IDE.
- Téléversez le code : Copiez le code ci-dessus et téléversez-le sur votre ESP32 S3.

- Testez le bouton : Appuyez et maintenez le bouton pendant quelques secondes.
- Observez la LED : Regardez la LED s'allumer et s'éteindre avec les pressions du bouton.
- 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.
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 :
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
- Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
- Téléversez le code : Copiez le code ci-dessus et téléversez-le sur votre ESP32 S3.
- Testez plusieurs pressions : Appuyez et relâchez le bouton plusieurs fois.
- Observez un comportement erratique : Remarquez que la LED peut basculer de manière incohérente.
- Comprenez le problème : Des pressions simples peuvent basculer la LED plusieurs fois ou pas du tout.
- 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.
Étapes rapides
- Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
- Installez la bibliothèque ezButton : Installez la bibliothèque ezButton. Référez-vous au Comment faire pour les instructions.
- Téléversez le code avec anti-rebond : Copiez le code ci-dessus et téléversez-le sur votre ESP32 S3.
- Testez les pressions du bouton : Appuyez et relâchez le bouton plusieurs fois.
- Observez un basculement fiable : Remarquez que la LED bascule exactement une fois par pression.
- Comparez les comportements : Remarquez à quel point c'est plus fiable comparé à la version sans anti-rebond.
- 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 :
- Contrôle de lampe de bureau : Construisez une lampe de bureau ESP32 S3 simple avec un contrôle manuel de bascule ON/OFF.
- Indicateur de sonnette : Créez un indicateur de sonnette qui s'allume lorsque le bouton est pressé.
- Buzzer de jeu : Concevez un système de buzzer de jeu avec retour visuel par LED utilisant l'ESP32 S3.
- Indicateur d'état : Fabriquez un indicateur d'état pour un équipement (état ON/OFF) avec l'ESP32 S3.
- Indicateur de verrou : Construisez un simple indicateur de verrou montrant l'état verrouillé/déverrouillé avec contrôle par bouton.
- 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é :
- Débutant : Modifiez le code pour contrôler deux LED avec un seul bouton (une ON lorsqu'il est pressé, une OFF).
- Débutant : Changez la LED pour qu'elle clignote trois fois lorsque le bouton est pressé au lieu de rester allumée fixement.
- Intermédiaire : Ajoutez un second bouton à votre ESP32 S3 pour contrôler la luminosité de la LED (bascule faible/forte).
- Intermédiaire : Créez une séquence de feu de circulation qui avance à l'état suivant à chaque pression du bouton.
- Avancé : Implémentez une détection d'appui long qui se comporte différemment d'un appui court sur ESP32 S3.
- Avancé : Construisez un cadenas à combinaison utilisant plusieurs boutons où la LED ne s'allume qu'avec la bonne séquence.