Arduino Nano ESP32 - Bouton - Pression Longue Pression Courte
Ce tutoriel fournit des instructions sur comment utiliser l'Arduino Nano ESP32 pour détecter les appuis longs et courts. En détail, nous apprendrons :
- Comment détecter l'appui court sur le bouton
- Comment détecter l'appui long sur le bouton
- Comment détecter à la fois l'appui long et l'appui court
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos du bouton
Nous disposons de tutoriels spécifiques sur le bouton. 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 Arduino Nano ESP32... Pour en savoir plus, consultez les liens suivants :
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Ce tutoriel utilisera la résistance de pull-up interne. L'état du bouton est HIGH lorsqu'il est en position normale et LOW lorsqu'il est pressé.
Comment détecter une pression courte
- Mesurez le temps entre les événements appuyé et relâché.
- Si la durée est plus courte qu'un temps prédéfini, l'événement de pression courte est détecté.
Voyons étape par étape :
- Définissez la durée maximale d'une pression courte.
- Détectez que le bouton est pressé et enregistrez l'heure de pression.
- Détectez que le bouton est relâché et enregistrez l'heure de relâchement.
- Calculez la durée de pression et
- Déterminez l'appui court en comparant la durée de l'appui avec le temps défini pour un appui court.
Code Arduino Nano ESP32 pour détecter les pressions courtes
Étapes rapides
- Si c'est la première fois que vous utilisez l'Arduino Nano ESP32, consultez comment configurer l'environnement pour Arduino Nano ESP32 sur Arduino IDE.
- Téléversez le code ci-dessus sur l'Arduino Nano ESP32 via l'Arduino IDE.
- Appuyez brièvement sur le bouton plusieurs fois.
- Consultez le résultat sur le moniteur série. Cela ressemble à ce qui suit :
※ NOTE THAT:
Le moniteur série peut enregistrer plusieurs pressions courtes pour une seule pression. C'est un comportement normal du bouton. Ce comportement est appelé le « phénomène de rebond ». Nous apprendrons comment éliminer ce problème plus tard dans ce tutoriel.
Comment détecter une pression longue
Il existe deux cas d'utilisation pour détecter l'appui long.
- L'événement de longue pression est détecté juste après que le bouton soit relâché.
- L'événement de longue pression est détecté pendant que le bouton est enfoncé.
Dans le premier cas :
- Mesurez la durée entre l'événement de pression et l'événement de relâchement.
- Si la durée est supérieure à un temps pré-défini, l'événement de longue pression est détecté.
Dans le deuxième cas : pendant la durée où le bouton est pressé, répétez le processus suivant :
- Mesurez le temps de pression.
- Si la durée est plus longue que le temps prédéfini, l'événement de pression longue est détecté.
- Sinon, répétez le processus jusqu'à ce que le bouton soit relâché.
Code Arduino Nano ESP32 pour détecter l'appui long lors du relâchement
Étapes rapides
- Si c’est la première fois que vous utilisez un Arduino Nano ESP32, consultez comment configurer l'environnement pour Arduino Nano ESP32 sur Arduino IDE.
- Téléversez le code ci-dessus sur Arduino Nano ESP32 via Arduino IDE.
- Appuyez et relâchez le bouton après une seconde.
- Vérifiez le résultat sur le moniteur série. Cela ressemble à ce qui suit :
Code Arduino Nano ESP32 pour détecter une pression longue pendant l'appui
Étapes rapides
- Si c'est la première fois que vous utilisez un Arduino Nano ESP32, consultez comment configurer l'environnement pour Arduino Nano ESP32 sur Arduino IDE.
- Téléversez le code ci-dessus vers Arduino Nano ESP32 via l'Arduino IDE.
- Appuyez et relâchez le bouton après plusieurs secondes.
- Consultez le résultat sur le moniteur série. Cela ressemble à ce qui suit :
Comment détecter à la fois les appuis longs et les appuis courts
Appui court et appui long après relâchement
Étapes rapides
- Si c'est la première fois que vous utilisez l'Arduino Nano ESP32, consultez comment configurer l'environnement pour Arduino Nano ESP32 sur Arduino IDE.
- Téléversez le code ci-dessus sur l'Arduino Nano ESP32 via l'Arduino IDE.
- Appuyez longuement et brièvement sur le bouton.
- Consultez le résultat sur le moniteur série. Cela ressemble à ce qui suit :
※ NOTE THAT:
Le moniteur série peut afficher plusieurs détections d'appui court lors d'un appui long. C'est le 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.
Pression courte et pression longue pendant l'appui
Étapes rapides
- Si c'est la première fois que vous utilisez l'Arduino Nano ESP32, consultez comment configurer l'environnement pour Arduino Nano ESP32 sur Arduino IDE.
- Téléversez le code ci-dessus sur Arduino Nano ESP32 via Arduino IDE
- Appuyez longuement et brièvement sur le bouton.
- Consultez le résultat sur le moniteur série. Cela ressemble à ce qui suit :
Appui long et appui court avec anti-rebond
Il est très important de "debouncer" le bouton dans de nombreuses applications.
Le debounce est un peu compliqué, surtout lorsqu'on utilise plusieurs boutons. Pour simplifier les choses pour les débutants, nous avons créé une bibliothèque, appelée ezButton.
Nous utiliserons cette bibliothèque dans les codes ci-dessous.
Appui court et appui long avec anti-rebond après relâchement
Étapes rapides
- Si c'est la première fois que vous utilisez l'Arduino Nano ESP32, consultez comment configurer l'environnement pour l'Arduino Nano ESP32 sur Arduino IDE.
- Installez la bibliothèque ezButton. Voir Comment faire
- Téléversez le code ci-dessus sur l'Arduino Nano ESP32 via Arduino IDE
- Appuyez longuement et brièvement sur le bouton.
- Consultez le résultat sur le moniteur série. Cela ressemble à ce qui suit :
Appui court et appui long avec anti-rebond pendant l'appui
Étapes rapides
- Si c'est la première fois que vous utilisez un Arduino Nano ESP32, consultez comment configurer l'environnement pour Arduino Nano ESP32 sur Arduino IDE.
- Installez la bibliothèque ezButton. Voir Comment faire
- Téléversez le code ci-dessus sur Arduino Nano ESP32 via Arduino IDE
- Appuyez longuement et brièvement sur le bouton.
- Vérifiez le résultat sur le moniteur série. Cela ressemble à ce qui suit :
Vidéo
Pourquoi a-t-on besoin d'une pression longue et d'une pression courte ?
- Pour économiser le nombre de boutons et de broches d'entrée numérique. Un seul bouton peut conserver deux fonctionnalités ou plus. Par exemple, appuyez brièvement pour allumer la lumière, appuyez longuement pour allumer le ventilateur.
- Utilisez l'appui long au lieu de l'appui court pour éviter les pressions accidentelles. Par exemple, certains types d'appareils utilisent le bouton pour la réinitialisation d'usine. Si le bouton est pressé par accident, c'est dangereux.