Arduino - Bouton - Appui long, Appui court
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 sur le bouton
- Appui long et appui court avec anti-rebond
Dans les trois premières parties, nous apprenons comment détecter en principe.
Dans la dernière partie, nous apprenons à détecter en usage pratique en appliquant l'anti-rebond. Voir pourquoi avons-nous besoin de l'anti-rebond pour un bouton. Sans anti-rebond, nous pourrions détecter incorrectement une courte pression sur le 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) |
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. Par conséquent, l'état du bouton est HIGH lorsque celui-ci est en position normale et LOW lorsqu'il est pressé.
Comment détecter une pression courte
Nous mesurons la durée entre les événements de pression et de relâchement. Si cette durée est inférieure à un temps 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 si le bouton est pressé et enregistrez l'heure de pression.
- Détecter que le bouton est relâché et enregistrer le moment 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 pour détecter une pression courte
Étapes rapides
- Téléchargez le code ci-dessus sur Arduino via l'IDE Arduino
- Appuyez brièvement sur le bouton plusieurs fois.
- Voir le résultat sur le moniteur série
※ NOTE THAT:
Le moniteur série peut afficher plusieurs détections de pression courte pour une pression. Ceci 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.
Comment détecter un appui long
Il existe deux cas d'utilisation pour détecter l'appui long.
- L'événement de pression longue est détecté juste après que le bouton soit relâché.
- L'événement de pression longue est détecté pendant que le bouton est pressé, même si le bouton n'est pas encore relâché.
Dans le premier cas d'utilisation, nous mesurons la durée entre les événements d'appui et de relâchement. Si la durée est plus longue qu'un temps défini, l'événement de pression longue est détecté.
Dans le deuxième cas d'utilisation, après que le bouton a été pressé, nous mesurons en continu le temps de pression et vérifions l'événement de pression longue jusqu'à ce que le bouton soit relâché. Pendant que le bouton est pressé, si la durée est supérieure à un temps défini, l'événement de pression longue est détecté.
Code Arduino pour détecter une pression longue lors du relâchement
Étapes rapides
- Téléchargez le code ci-dessus sur Arduino via l'IDE Arduino
- Appuyez sur le bouton et relâchez-le après une seconde.
- Vérifiez le résultat sur le moniteur série
L'événement de longue pression est détecté uniquement juste après que le bouton soit relâché.
Code Arduino pour détecter une pression longue pendant l'appui
Étapes rapides
- Téléchargez le code ci-dessus sur Arduino via l'IDE Arduino
- Appuyez sur le bouton et relâchez-le après plusieurs secondes.
- Voir le résultat sur le moniteur série
L'événement de longue pression est détecté uniquement lorsque le bouton n'est pas encore relâché.
Comment détecter à la fois les appuis longs et courts
Appui court et appui long après relâchement
Étapes rapides
- Téléchargez le code ci-dessus sur Arduino via l'IDE Arduino
- Appuyez longuement et brièvement sur le bouton.
- Voir le résultat sur le moniteur série
※ NOTE THAT:
Le moniteur série peut afficher plusieurs détections de pression courte lors d'une pression longue. 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.
Appui court et appui long pendant la pression
Étapes rapides
- Téléchargez le code ci-dessus sur Arduino via l'IDE Arduino
- Appuyez longuement et brièvement sur le bouton.
- Observez le résultat sur le moniteur série
※ NOTE THAT:
Le moniteur série peut afficher plusieurs détections de pression courte lors d'une pression longue. Ceci 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.
Appui long et appui court avec anti-rebond
Il est très important de désactiver le rebond du bouton dans de nombreuses applications.
Le debounce est un peu compliqué, surtout lorsqu'on utilise plusieurs boutons. Pour rendre cela beaucoup plus facile 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
- Installez la bibliothèque ezButton. Voir Comment faire
- Téléversez le code ci-dessus dans l'Arduino via l'IDE Arduino.
- Appuyez longuement et brièvement sur le bouton.
- Consultez le résultat sur le moniteur série.
Pression courte et pression longue avec anti-rebond pendant la pression
Étapes rapides
- Installez la bibliothèque ezButton. Voir Comment faire
- Téléversez le code ci-dessus dans Arduino via l'IDE Arduino
- Appuyez longuement et brièvement sur le bouton.
- Voir le résultat sur le moniteur série
Vidéo
Pourquoi a-t-on besoin d'une pression longue et d'une pression courte
- Pour économiser le nombre de boutons. Un seul bouton peut contenir deux fonctionnalités ou plus. Par exemple, une pression courte pour changer de mode de fonctionnement, une pression longue pour éteindre l'appareil.
- Utilisation de la pression longue pour réduire les pressions courtes accidentelles. Par exemple, certains types d'appareils utilisent le bouton pour la réinitialisation d'usine. Si le bouton est pressé accidentellement, cela peut être dangereux. Pour l'éviter, l'appareil est configuré pour ne se réinitialiser en usine que lorsqu'on appuie longuement sur le bouton (par exemple, plus de 5 secondes).