Button2 : Simplifier le contrôle des boutons sur les cartes Arduino et ESP
Qu'est-ce que la bibliothèque Button2 ?
Caractéristiques clés de la bibliothèque Button2
-
Prise en charge de plusieurs événements de boutons : Détecte les clics simples, les doubles clics, les triples clics, les pressions longues, et bien plus encore.
-
Actions basées sur des événements : gérez les événements des boutons avec des rappels, améliorant ainsi la lisibilité et l'efficacité du code.
-
Mécanisme anti-rebond : la gestion anti-rebond intégrée garantit une détection fiable des entrées, évitant ainsi les faux déclenchements.
-
Prise en charge de plusieurs boutons : gérez plusieurs boutons sans codage complexe, idéal pour les interfaces multifonctionnelles.
-
ESP32 et Arduino Compatibilité : Fonctionne parfaitement avec Arduino IDE, prenant en charge les deux ESP8266 et ESP32.
Pourquoi utiliser Bouton2 pour Votre Projet ?
Mode d'emploi
1. Importer la bibliothèque
// Initialize M5StickC Plus2 #include "Button2.h"
Button2
pour créer un objet bouton et transmettre l'épingle du bouton comme argument :// Initialize M5StickC Plus2 #define BUTTON_PIN D3 Button2 button; void setup() { button.begin(BUTTON_PIN); }
3. Définir les fonctions de rappel
setXXXHandler()
méthodes pour attribuer des fonctions de rappel pour différentes actions de bouton :-
setTapHandler()
: déclenche toute pression sur un bouton ; sert de fonction de rappel de base. -
setClickHandler()
: se déclenche en un seul clic. -
setChangedHandler()
,setPressedHandler()
,setReleasedHandler()
: détecte les changements dans l'état du bouton. -
setLongClickDetectedHandler()
: se déclenche lorsque le bouton est maintenu enfoncé pendant une durée spécifiée. -
setLongClickHandler()
: se déclenche après le relâchement du bouton suite à un appui long. -
setDoubleClickHandler()
,setTripleClickHandler()
: Détecte les doubles et triples clics.// Initialize M5StickC Plus2 void handleTap(Button2& b) { // Handle Button Click Events } void setup() { // ... button.setTapHandler(handleTap); }
✔ Copié !
4. Appelez le boucle()
Fonction
loop()
, appelez la fonction loop()
de l'objet bouton :// Initialize M5StickC Plus2 void loop() { button.loop(); }
5. Fonctionnalités étendues
-
Paramètres personnalisables tels que la durée d'appui longue et le timing du double-clic.
-
L'utilisation d'un timer interrompt l'appel de la fonction
loop()
, empêchant le blocage de la boucle principale. -
Fonctions de détection d'état des boutons personnalisées qui prennent en charge différents types de boutons, tels que les boutons tactiles capacitifs et les boutons basés sur I2C.
Exemple de code
// Initialize M5StickC Plus2 #include Button2 button(2); // Create a button object on GPIO pin 2 void setup() { Serial.begin(9600); // Initialize serial communication // Handle single click button.setClickHandler([](Button2 &btn) { Serial.println("Single click detected!"); }); // Handle long press after release button.setLongClickHandler([](Button2 &btn) { Serial.println("Long press completed!"); }); } void loop() { button.loop(); // Continuously check for button events }
Conclusion : simplifiez la gestion des boutons avec Button2