ESP32 S3 - Boutons Multiples
Ce tutoriel vous guide dans la programmation d'un ESP32 S3 pour utiliser plusieurs boutons simultanément sans s'appuyer sur la fonction delay(). À la fin de ce tutoriel, vous comprendrez deux approches éprouvées pour lire plusieurs boutons proprement et efficacement sur la plateforme ESP32 S3.
Ce que vous allez construire :
- Un circuit multi-boutons câblé à l'ESP32 S3 en utilisant une breadboard
- Un code qui détecte les événements de pression et de relâchement pour chaque bouton indépendamment
- Une version avec anti-rebond qui élimine les lectures de bouton erronées
- Une version basée sur un tableau qui s'adapte proprement à n'importe quel nombre de boutons
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) |
À propos du Bouton
L'ESP32 S3 gère les entrées numériques des boutons en utilisant ses broches GPIO avec des résistances de pull-up intégrées, ce qui rend le câblage simple. Nous avons des tutoriels spécifiques sur les boutons qui contiennent 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 S3, et le code ESP32 S3. En savoir plus sur eux aux liens suivants :
- Tutoriel ESP32 S3 - Bouton
- Tutoriel ESP32 S3 - Bouton - Anti-rebond
Spécifications Clés
Les boutons utilisés dans ce tutoriel sont des interrupteurs tactiles momentanés standard compatibles avec les breadboards. Ils fonctionnent à des niveaux logiques de 3,3 V, ce qui correspond à la tension GPIO de l'ESP32 S3, et consomment un courant négligeable en utilisant les résistances de pull-up intégrées.
Schéma de Câblage
Connectez chaque bouton entre une broche GPIO et GND sur votre breadboard, en vous appuyant sur les résistances de pull-up internes de l'ESP32 S3 pour maintenir la broche à HIGH quand le bouton n'est pas pressé.
Notes de Sécurité
Câblez toujours les boutons à GND et activez les pull-ups internes dans le code plutôt que de connecter directement à 3,3 V, ce qui évite les courts-circuits accidentels. Vérifiez deux fois que chaque bouton partage un rail GND commun sur la breadboard avant d'alimenter l'ESP32 S3.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Code ESP32 S3 - Boutons Multiples avec Anti-rebond
Quand on traite plusieurs boutons, une complexité peut apparaître dans des situations spécifiques où des pressions simultanées, du bruit de rebond, ou une détection de changement d'état sont nécessaires. Le code suivant utilise la bibliothèque ezButton pour gérer l'anti-rebond et les événements de bouton en interne, vous évitant de gérer manuellement des horodatages et des variables d'état pour chaque bouton.
Étapes Rapides
- Nouveau sur ESP32 S3 ? Terminez d'abord notre guide ESP32 S3 - Premiers pas.
- Faites le câblage comme montré dans le schéma ci-dessus.
- Connectez la carte ESP32 S3 à votre PC via un câble USB Type-C.
- Ouvrez l'Arduino IDE sur votre PC.
- Sélectionnez la bonne carte ESP32 S3 et le bon port COM.
- Cliquez sur l'icône Libraries sur la barre de gauche de l'Arduino IDE.
- Cherchez "ezButton", puis trouvez la bibliothèque de bouton par ArduinoGetStarted.
- Cliquez sur le bouton Install pour installer la bibliothèque ezButton.
- Search for ezButton created by ArduinoGetStarted.com and click the Install button.
- Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
- Compilez et téléversez le code sur la carte ESP32 S3 en cliquant sur le bouton Upload sur l'Arduino IDE.

- Ouvrez le Serial Monitor sur l'Arduino IDE.
- Appuyez et relâchez chaque bouton un par un pour observer la sortie.
Astuce : Si un bouton enregistre plusieurs pressions avec un seul clic, augmentez le temps d'anti-rebond dans les réglages ezButton pour filtrer le bruit de rebond mécanique de vos boutons spécifiques.
Code ESP32 S3 - Boutons Multiples Utilisant un Tableau
Nous pouvons améliorer le code fourni en utilisant un tableau de boutons, ce qui rend l'ajout ou la suppression de boutons aussi simple que de changer une seule constante. Le code suivant montre comment ce tableau gère les objets de bouton et boucle à travers eux de façon uniforme à chaque itération.
Applications
Gérer plusieurs boutons simultanément sur l'ESP32 S3 ouvre une large gamme de cas d'utilisation pratiques, des simples contrôles d'interface aux systèmes de navigation de menu complexes. Voici quelques applications courantes :
- Navigation de Menu : Utilisez quatre boutons pour les actions haut, bas, sélection, et retour dans un menu d'affichage OLED.
- Contrôleur de Jeu : Associez des boutons à des entrées directionnelles ou d'action pour des jeux embarqués simples.
- Remplacement de Clavier : Remplacez un clavier matériel par des boutons discrets pour des dispositions de panneau personnalisées.
- Sélecteur Multi-mode : Basculez entre des modes opérationnels dans un appareil en utilisant des boutons de mode dédiés.
- Arrêts d'Urgence : Câblez plusieurs boutons d'arrêt de sécurité à travers une machine pour un contrôle de coupure redondant.
Vidéo
Regardez la vidéo étape par étape pour ce projet ESP32 S3 ci-dessous.
Défis
Expérimenter au-delà du tutoriel de base est la meilleure façon d'approfondir votre compréhension de la gestion multi-boutons sur l'ESP32 S3. Essayez ces défis pour développer votre confiance avec des techniques plus avancées :
- Débutant : Modifiez le code pour contrôler quatre LED individuelles, chacune basculée par son propre bouton.
- Intermédiaire : Implémentez une serrure à combinaison qui se déverrouille seulement quand les boutons sont pressés dans une séquence spécifique.
- Avancé : Créez une interface de style encodeur rotatif utilisant deux boutons pour l'incrémentation et la décrémentation, avec une détection d'appui long pour l'accélération.