ESP32 S3 - Bouton - Appui long et appui court
Ce tutoriel vous apprend à programmer votre ESP32 S3 pour détecter à la fois les appuis longs et les appuis courts sur un bouton. Vous apprendrez tout, du câblage de base et des techniques d'anti-rebond à la combinaison de plusieurs types d'appui sur un seul bouton pour une gestion des entrées plus avancée.
Ce que vous allez construire :
- Un détecteur d'appui court qui mesure une durée d'appui inférieure à un seuil
- Un détecteur d'appui long déclenché au relâchement ou pendant l'appui
- Un bouton à double mode qui distingue l'appui court et l'appui long sur la même broche
- Une version avec anti-rebond utilisant la bibliothèque ezButton pour une fiabilité prête pour la production

Matériel nécessaire
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
Un bouton-poussoir est un dispositif d'entrée simple qui ferme un circuit électrique lorsqu'il est pressé. Lorsqu'il est connecté à l'ESP32 S3 avec la résistance de tirage interne (pull-up) activée, la broche lit HIGH à l'état relâché et LOW lorsque le bouton est pressé. Cela permet de détecter précisément et facilement les événements de pression et de relâchement.
Spécifications clés
Les boutons-poussoirs utilisés avec l'ESP32 S3 prennent en charge plusieurs types d'interaction : appui court, appui long et double-clic. Ils fonctionnent directement avec les résistances de tirage internes de l'ESP32 S3, éliminant le besoin de résistances externes. Comme les boutons physiques produisent du bruit mécanique (rebond), un anti-rebond est nécessaire pour une détection fiable dans les projets réels.
Ressources supplémentaires sur les boutons :
Schéma de câblage
Connectez votre bouton à l'ESP32 S3 en câblant une borne à une broche GPIO et l'autre borne à GND. La résistance de tirage interne est activée par logiciel, aucune résistance externe n'est donc nécessaire.
Consignes de sécurité
Vérifiez toujours votre câblage avant d'alimenter la carte. L'utilisation d'une breadboard facilite les modifications sans soudure. Comme ce tutoriel utilise la résistance de tirage interne, l'état du bouton lit HIGH au relâchement et LOW à la pression - gardez cela à l'esprit en lisant le code.
| Broche du composant | Broche ESP32 S3 |
|---|---|
| Borne 1 du bouton | GPIO 9 |
| Borne 2 du bouton | GND |

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Comment détecter un appui court
Détecter un appui court sur l'ESP32 S3 consiste à mesurer la durée entre l'événement de pression du bouton et l'événement de relâchement. Si cette durée est inférieure à un seuil défini, l'appui court est confirmé.
Méthode de détection de l'appui court :
- Mesurer le temps entre les événements de pression et de relâchement
- Si la durée est plus courte qu'un temps prédéfini, l'événement d'appui court est détecté
- Comparer la durée d'appui à votre seuil SHORT_PRESS_TIME
Mise en œuvre étape par étape :
- Définir la durée maximale d'un appui court
- Détecter que le bouton est pressé et enregistrer l'heure de pression
- Détecter que le bouton est relâché et enregistrer l'heure de relâchement
- Calculer la durée d'appui et
- Déterminer l'appui court en comparant la durée d'appui avec le temps d'appui court défini
Code ESP32 S3 pour détecter l'appui court
Le sketch suivant lit l'état du bouton à l'aide de la résistance de tirage interne de l'ESP32 S3, calcule la durée entre la pression et le relâchement, et affiche un message dans le Serial Monitor lorsqu'un appui court est détecté. Le seuil est fixé à 500 ms par défaut, que vous pouvez ajuster selon votre application.
Étapes rapides
- Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- Configurer l'IDE : consultez comment configurer l'environnement pour l'ESP32 S3 sur l'Arduino IDE
- Téléverser le code : copiez le code ci-dessus et téléversez-le sur votre ESP32 S3 via l'Arduino IDE
- Câbler le matériel : connectez le bouton à votre ESP32 S3 en suivant le schéma de câblage
- Tester le bouton : appuyez brièvement sur le bouton plusieurs fois
- Vérifier les résultats : ouvrez le Serial Monitor (115200 bauds) pour voir les résultats de la détection
- Astuce : ajustez la valeur SHORT_PRESS_TIME pour rendre la détection de l'appui court plus rapide ou plus lente
※ Note:
Le Serial Monitor peut afficher plusieurs appuis courts pour une seule pression. C'est un comportement normal du bouton. Ce comportement est appelé le « phénomène de rebond ». Nous apprendrons à éliminer ce problème plus loin dans ce tutoriel.
Comment détecter un appui long
Il existe deux méthodes pour détecter les événements d'appui long sur un bouton avec l'ESP32 S3, chacune adaptée à des besoins différents. La première méthode détecte l'appui long après le relâchement du bouton, tandis que la seconde le détecte en temps réel pendant que le bouton est maintenu enfoncé.
Deux cas d'usage pour la détection de l'appui long :
- L'événement d'appui long est détecté juste après le relâchement du bouton
- L'événement d'appui long est détecté pendant que le bouton est pressé
Première méthode (détection au relâchement) :
- Mesurer la durée entre l'événement de pression et l'événement de relâchement
- Si la durée est plus longue qu'un temps prédéfini, l'événement d'appui long est détecté
Seconde méthode (détection pendant l'appui) :
- Mesurer en continu le temps de pression tant que le bouton est maintenu
- Si la durée dépasse le temps prédéfini, détecter immédiatement l'appui long
- Continuer à vérifier jusqu'à ce que le bouton soit relâché
Code ESP32 S3 pour détecter l'appui long au relâchement
Ce sketch mesure la durée totale de pression depuis le moment où le bouton est pressé jusqu'à ce qu'il soit relâché. Si la durée dépasse LONG_PRESS_TIME (1000 ms), l'événement d'appui long est signalé via le Serial Monitor. Cette méthode est idéale lorsque vous voulez confirmer que l'utilisateur a maintenu le bouton pendant toute la durée avant d'agir.
Étapes rapides
- Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- Configurer l'IDE : consultez comment configurer l'environnement pour l'ESP32 S3 sur l'Arduino IDE
- Téléverser le code : copiez et téléversez le code ci-dessus sur l'ESP32 S3 via l'Arduino IDE
- Tester l'appui long : maintenez le bouton enfoncé pendant plus d'une seconde, puis relâchez
- Vérifier le Serial Monitor : ouvrez le Serial Monitor à 115200 bauds pour voir les résultats
- Astuce : cette méthode est idéale lorsque vous avez besoin que l'action se produise après le relâchement du bouton, pas pendant l'appui
Code ESP32 S3 pour détecter l'appui long pendant la pression
Ce sketch vérifie en continu la durée de pression pendant que le bouton est maintenu et déclenche la détection de l'appui long dès que le seuil est dépassé, sans attendre le relâchement du bouton. Ceci est idéal pour les applications nécessitant un retour immédiat, comme le déclenchement d'une réinitialisation d'usine pendant que le bouton est encore maintenu.
Étapes rapides
- Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- Configurer l'IDE : consultez comment configurer l'environnement pour l'ESP32 S3 sur l'Arduino IDE
- Téléverser le code : téléversez le code ci-dessus sur votre ESP32 S3 via l'Arduino IDE
- Tester pendant la pression : maintenez le bouton enfoncé pendant plusieurs secondes (ne relâchez pas immédiatement)
- Observer le timing : remarquez que la détection se produit pendant que vous appuyez encore
- Astuce : cette méthode fournit un retour instantané et convient mieux aux applications sensibles au temps comme les fonctions de réinitialisation d'usine
Comment détecter à la fois l'appui long et l'appui court
En combinant les deux vérifications de durée d'appui dans un seul sketch, un seul bouton sur votre ESP32 S3 peut contrôler deux fonctions entièrement indépendantes. Cela réduit le nombre de composants et simplifie votre circuit sans sacrifier la facilité d'utilisation.
Appui court et appui long après relâchement
Ce sketch distingue les événements d'appui court et d'appui long selon la durée pendant laquelle le bouton a été maintenu, en ne faisant la détermination qu'après le relâchement du bouton. Un seul seuil LONG_PRESS_TIME sépare les deux comportements, permettant deux actions différentes à partir d'un seul bouton sans matériel supplémentaire.
Étapes rapides
- Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- Configurer l'IDE : consultez comment configurer l'environnement pour l'ESP32 S3 sur l'Arduino IDE
- Téléverser le code : téléversez le code ci-dessus sur l'ESP32 S3 via l'Arduino IDE
- Tester les deux types : essayez à la fois l'appui long (maintenir >1 seconde) et l'appui court (pression rapide)
- Vérifier le Serial Monitor : ouvrez le Serial Monitor pour voir quel type d'appui est détecté
- Astuce : réglez LONG_PRESS_TIME selon le comportement attendu de vos utilisateurs (généralement 500-1500 ms fonctionne bien)
※ Note:
Le Serial Monitor peut afficher plusieurs détections d'appui court lors d'un appui long. C'est un comportement normal du bouton. Ce comportement est appelé le « phénomène de rebond ». Le problème sera résolu dans la dernière partie de ce tutoriel.
Appui court et appui long pendant la pression
Ce sketch détecte l'appui long immédiatement lorsque le seuil est atteint, tout en permettant toujours la détection de l'appui court au relâchement si le seuil n'a jamais été atteint. Cela offre la réponse la plus rapide possible aux actions d'appui long tout en gardant la détection de l'appui court pleinement fonctionnelle.
Étapes rapides
- Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- Configurer l'IDE : consultez comment configurer l'environnement pour l'ESP32 S3 sur l'Arduino IDE
- Téléverser le code : téléversez le code sur votre ESP32 S3 via l'Arduino IDE
- Tester le timing : essayez des pressions rapides et des maintiens longs pour voir les différents comportements
- Observer la réponse : remarquez que l'appui long se déclenche immédiatement, pas au relâchement
- Astuce : cette méthode évite les déclenchements accidentels d'appui long puisque les utilisateurs obtiennent un retour instantané
Appui long et appui court avec anti-rebond
Les boutons mécaniques génèrent du bruit électrique lorsque leurs contacts s'ouvrent et se ferment, ce qui fait que le microcontrôleur lit plusieurs transitions pour une seule pression physique. L'anti-rebond filtre ce bruit et est essentiel pour une détection fiable de l'appui long et de l'appui court sur l'ESP32 S3.
La bibliothèque ezButton gère automatiquement toute la logique d'anti-rebond, ce qui en fait l'approche recommandée aussi bien pour les débutants que pour les projets en production. Elle fonctionne de manière fiable avec plusieurs boutons et s'intègre proprement avec la logique de mesure de durée d'appui utilisée dans les sections précédentes.
Appui court et appui long avec anti-rebond après relâchement
Ce sketch combine l'anti-rebond de la bibliothèque ezButton avec la détection du type d'appui après relâchement. Il élimine les fausses détections dues au rebond du bouton tout en distinguant précisément les appuis courts et longs, vous offrant un gestionnaire d'entrée prêt pour la production pour votre projet ESP32 S3.
Étapes rapides
- Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- Configurer l'IDE : consultez comment configurer l'environnement pour l'ESP32 S3 sur l'Arduino IDE
- Installer la bibliothèque : installez la bibliothèque ezButton - voir How To
- Téléverser le code : téléversez le code ci-dessus sur l'ESP32 S3 via l'Arduino IDE
- Tester une détection propre : essayez à la fois les appuis longs et courts - plus de détections en double
- Vérifier les résultats : ouvrez le Serial Monitor pour voir une détection de pression de bouton propre et précise
- Astuce : la bibliothèque ezButton élimine automatiquement tous les problèmes de rebond - utilisez-la pour tous les projets en production
Appui court et appui long avec anti-rebond pendant la pression
Ce sketch ajoute l'anti-rebond ezButton à l'approche de détection de l'appui long en temps réel, combinant une réponse instantanée à l'appui long avec un filtrage propre du bruit. C'est la méthode la plus fiable pour les projets ESP32 S3 où la précision et la réactivité sont toutes deux nécessaires.
Étapes rapides
- Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- Configurer l'IDE : consultez comment configurer l'environnement pour l'ESP32 S3 sur l'Arduino IDE
- Installer la bibliothèque : installez la bibliothèque ezButton - voir How To
- Téléverser le code : téléversez le code sur votre ESP32 S3 via l'Arduino IDE
- Tester la fiabilité : appuyez sur le bouton plusieurs fois - remarquez qu'il n'y a plus de lectures en double
- Comparer les méthodes : c'est la méthode la plus fiable pour les projets ESP32 S3 en production
- Astuce : utilisez cette méthode pour les applications critiques comme les réinitialisations d'appareil ou les contrôles importants où la précision est essentielle
Pourquoi avoir besoin de l'appui long et de l'appui court
Ajouter la détection multi-appui à vos projets ESP32 S3 débloque davantage de fonctionnalités à partir d'un seul bouton sans augmenter la complexité matérielle.
- Économiser des broches : un seul bouton peut contrôler deux fonctions ou plus (appui court pour la lumière, appui long pour le ventilateur)
- Prévenir les accidents : utilisez l'appui long pour les fonctions critiques comme la réinitialisation d'usine afin d'éviter une activation accidentelle
- Meilleure expérience utilisateur : les utilisateurs peuvent effectuer plusieurs actions sans matériel supplémentaire
- Économies de coûts : moins de boutons signifie des circuits plus simples et des coûts de composants réduits
- Efficacité d'espace : idéal pour les projets ESP32 S3 compacts avec un espace limité
- Conception professionnelle : les boutons multifonctions sont la norme dans l'électronique grand public
Idées d'applications
La détection de l'appui long et de l'appui court ouvre un large éventail de cas d'usage pratiques pour vos projets ESP32 S3.
- Contrôleur d'éclairage domotique : appui court pour allumer/éteindre, appui long pour le mode de gradation
- Système d'alarme : appui court pour armer/désarmer, appui long pour le mode panique
- Minuterie : appui court pour démarrer/arrêter, appui long pour réinitialiser
- Thermostat multifonction : l'appui court ajuste la température, l'appui long change le mode chauffage/climatisation
- Serrure de porte IoT : appui court pour déverrouiller temporairement, appui long pour un déverrouillage permanent
- Capteur alimenté par batterie : appui court pour vérifier l'état, appui long pour entrer en mode veille profonde
Section vidéo
Regardez le tutoriel vidéo étape par étape pour ce projet ESP32 S3 ci-dessous.