Arduino Nano - Bouton - Pression longue Pression courte
Ce tutoriel vous explique comment utiliser un Arduino Nano pour détecter les appuis longs et courts sur un bouton. En détail, nous passerons en revue les exemples suivants :
- Arduino Nano détecte une pression courte du bouton
- Arduino Nano détecte une pression longue du bouton
- Arduino Nano détecte à la fois une pression longue et une pression courte du bouton
- Arduino Nano élimine les rebonds pour une pression longue et courte
Dans la dernière section, nous apprendrons comment utiliser l'anti-rebond pour détecter les pressions sur un bouton dans des applications pratiques. Pour en savoir plus sur pourquoi l'anti-rebond est nécessaire pour les boutons, veuillez consulter cet article. Sans cela, nous pourrions détecter par erreur une courte pression du bouton.
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
Si vous n'êtes pas familier avec les boutons (y compris les brochages, les fonctionnalités et la programmation), les tutoriels suivants peuvent vous aider :
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Dans ce tutoriel, nous utiliserons la résistance de tirage interne. En conséquence, l'état du bouton est HAUT dans son état normal et BAS lorsqu'il est pressé.
Comment détecter une pression courte
Nous calculons l'intervalle entre les événements pressé et relâché. Si la durée est inférieure à un temps prédéfini, alors l'événement de pression courte est identifié.
Précisez la durée d'une pression courte.
- Identifier quand le bouton a été pressé et enregistrer l'heure à laquelle il a été poussé.
- Détectez lorsque le bouton est relâché et enregistrez l'heure de libération.
- Pression
- Calculez la durée et la quantité de pression appliquée.
- Comparez la durée de pression au temps de pression courte spécifié pour identifier une pression courte.
Code Arduino Nano pour détecter une pression courte
Étapes rapides
- Téléchargez le code sur Arduino Nano en utilisant l'IDE Arduino.
- Appuyez brièvement sur le bouton plusieurs fois.
- Vérifiez la sortie sur le moniteur série.
※ NOTE THAT:
Le moniteur série peut afficher plusieurs détections de pressions courtes pour une seule pression. C'est le comportement attendu du bouton, connu sous le nom de « phénomène de rebond ». Nous aborderons ce problème dans la partie conclusive de ce tutoriel.
Comment détecter une pression longue
Il y a deux scénarios pour détecter une pression longue :
- L’événement de pression prolongée est identifié une fois le bouton relâché.
- L’événement de pression prolongée est identifié tandis que le bouton est maintenu enfoncé, même avant qu’il ne soit relâché.
- 1. Pour l'application initiale, nous calculerons la période de temps entre les événements pressé et relâché. 2. Si la durée dépasse un temps prédéterminé, alors l’événement de pression prolongée est identifié.
Dans le deuxième cas d'utilisation, lorsqu'on appuie sur le bouton, le temps de pression est mesuré en continu et l'événement de pression longue est vérifié jusqu'à ce que le bouton soit relâché. Pendant que le bouton est pressé, si la durée dépasse un temps prédéfini, l'événement de pression longue est détecté.
Code Arduino Nano pour détecter une pression longue lors du relâchement
Étapes rapides
- Téléchargez le code sur Arduino Nano en utilisant l'IDE Arduino.
- Attendez une seconde puis appuyez et relâchez le bouton.
- Vérifiez le résultat sur le moniteur série.
L'événement de pression longue n'est identifié que lorsque le bouton est relâché.
Code Arduino Nano pour détecter une pression longue lors de l'appui
Étapes rapides
- Téléchargez le code sur Arduino Nano en utilisant l'IDE Arduino.
- Appuyez et maintenez le bouton pendant quelques secondes.
- Vérifiez la sortie sur le moniteur série.
L'événement d'appui long n'est enregistré que lorsque le bouton n'a pas été relâché.
Comment détecter à la fois une pression longue et une pression courte
Pression courte et pression longue après relâchement
Étapes rapides
- Téléchargez le code sur l'Arduino Nano en utilisant l'IDE Arduino.
- Appuyez sur le bouton pendant un court ou un long moment.
- Vérifiez la sortie sur le moniteur série.
※ NOTE THAT:
Le moniteur série peut afficher plusieurs détections de pressions courtes lorsqu'une pression longue est effectuée. C'est le comportement attendu du bouton et est appelé le "phénomène de rebond". Une solution à ce problème sera fournie dans la section de conclusion de ce tutoriel.
Pression courte et pression longue pendant la pression
Étapes rapides
- Téléchargez le code sur l'Arduino Nano en utilisant l'IDE Arduino.
- Appuyez sur le bouton pendant longtemps puis brièvement.
- Consultez le résultat sur le moniteur série.
※ NOTE THAT:
Le moniteur série peut afficher plusieurs pressions courtes détectées lorsqu'une pression longue est effectuée. C'est le comportement attendu du bouton et est désigné sous le nom de « phénomène de rebond ». Ce problème sera abordé dans la section de conclusion de ce tutoriel.
Appui long et appui court avec anti-rebond
Il est essentiel d'implémenter l'anti-rebond sur le bouton dans de nombreuses applications.
Le debounce peut être compliqué, notamment lorsque plusieurs boutons sont impliqués. Pour le simplifier pour les débutants, nous avons développé une bibliothèque, connue sous le nom de 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
- Installez la bibliothèque ezButton.
- Consultez Comment faire pour les instructions.
- Téléchargez le code sur Arduino Nano en utilisant l'IDE Arduino.
- Appuyez et maintenez le bouton pendant une courte ou longue période.
- Consultez les résultats sur le moniteur série.
Appui court et appui long avec anti-rebondissement lors de la pression
Étapes rapides
- Incluez la bibliothèque ezButton dans votre projet. Consultez Comment faire pour les instructions.
- Compilez et téléchargez le code sur votre carte Arduino Nano en utilisant l'IDE Arduino.
- Appuyez et maintenez le bouton pendant une courte ou longue période.
- Vérifiez la sortie sur le moniteur série.
Vidéo
Pourquoi a-t-on besoin d'une pression longue et d'une pression courte
- Pour minimiser le nombre de boutons, un seul bouton peut avoir plusieurs fonctions. Par exemple, une pression courte peut être utilisée pour changer le mode de fonctionnement, tandis qu'une pression longue peut servir à éteindre l'appareil.
- La pression longue est utilisée pour éviter une activation accidentelle. Par exemple, certains appareils utilisent un bouton pour la réinitialisation d'usine. Si celui-ci est pressé accidentellement, cela pourrait être dangereux. Pour éviter cela, l'appareil est conçu de manière à ce que la réinitialisation d'usine ne soit déclenchée que lorsque le bouton est maintenu enfoncé pendant un certain temps (par exemple, 5 secondes).