Button2: semplificazione del controllo dei pulsanti su schede Arduino ed ESP
Che cos'è la libreria Button2?
Caratteristiche principali della libreria Button2
-
Supporta più eventi pulsanti: rileva clic singoli, doppi clic, tripli clic, pressioni prolungate e altro ancora.
-
Azioni guidate dagli eventi: gestisci gli eventi dei pulsanti con callback, migliorando la leggibilità e l'efficienza del codice.
-
Meccanismo di antirimbalzo: la gestione antirimbalzo integrata garantisce un rilevamento affidabile dell'input, prevenendo falsi trigger.
-
Supporto multipulsante: gestisci più pulsanti senza codifica complessa, ideale per interfacce multifunzionali.
-
ESP32 e Arduino Compatibilità: funziona perfettamente con Arduino IDE, supportando sia ESP8266 e ESP32.
Perché usare Pulsante2 per il tuo progetto?
Guida utente
1. Importa la Libreria
// Initialize M5StickC Plus2 #include "Button2.h"
Button2
per creare un oggetto pulsante e passare la puntina del pulsante come argomento:// Initialize M5StickC Plus2 #define BUTTON_PIN D3 Button2 button; void setup() { button.begin(BUTTON_PIN); }
3. Imposta le Funzioni di Callback
setXXXHandler()
metodi per assegnare funzioni di richiamata per diverse azioni dei pulsanti:-
setTapHandler()
: attiva il tocco di qualsiasi pulsante; funge da funzione di callback di base. -
setClickHandler()
: si attiva con un singolo clic. -
setChangedHandler()
,setPressedHandler()
,setReleasedHandler()
: rileva le modifiche nello stato del pulsante. -
setLongClickDetectedHandler()
: si attiva quando il pulsante viene tenuto premuto per una durata specificata. -
setLongClickHandler()
: si attiva dopo che il pulsante viene rilasciato dopo una pressione prolungata. -
setDoubleClickHandler()
,setTripleClickHandler()
: rileva clic doppi e tripli.// Initialize M5StickC Plus2 void handleTap(Button2& b) { // Handle Button Click Events } void setup() { // ... button.setTapHandler(handleTap); }
✔ Copiato!
4. Chiama il loop()
Funzione
loop()
, chiama la funzione loop()
dell'oggetto pulsante:// Initialize M5StickC Plus2 void loop() { button.loop(); }
5. Funzionalità Estese
-
Parametri personalizzabili come la durata della pressione lunga e il tempo del doppio clic.
-
L'utilizzo di un timer interrompe la chiamata della funzione
loop()
, impedendo il blocco del loop principale. -
Funzioni di rilevamento dello stato dei pulsanti personalizzate che supportano vari tipi di pulsanti, come pulsanti a sfioramento capacitivi e pulsanti basati su I2C.
Codice di Esempio
// 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 }
Conclusione: semplifica la gestione dei pulsanti con Button2