Button2: Vereinfachte Tastensteuerung auf Arduino- und ESP-Boards
Was ist die Button2-Bibliothek?
Hauptmerkmale der Button2-Bibliothek
-
Unterstützt mehrere Schaltflächenereignisse: Erkennt Einzelklicks, Doppelklicks, Dreifachklicks, langes Drücken und mehr.
-
Ereignisgesteuerte Aktionen: Behandeln Sie Schaltflächenereignisse mit Rückrufen und verbessern Sie so die Lesbarkeit und Effizienz des Codes.
-
Entprellungsmechanismus: Die integrierte Entprellungsbehandlung gewährleistet eine zuverlässige Eingabeerkennung und verhindert Fehlauslösungen.
-
Multi-Button-Unterstützung: Verwalten Sie mehrere Buttons ohne komplexe Codierung, ideal für multifunktionale Schnittstellen.
-
ESP32 und Arduino Kompatibilität: Funktioniert nahtlos mit Arduino IDE und unterstützt beide ESP8266- und ESP32-Boards.
Warum verwenden Button2 für Ihr Projekt?
Benutzerhandbuch
1. Bibliothek importieren
// Initialize M5StickC Plus2 #include "Button2.h"
Button2
, um ein Schaltflächenobjekt zu erstellen und den Schaltflächen-Pin als Argument zu übergeben:// Initialize M5StickC Plus2 #define BUTTON_PIN D3 Button2 button; void setup() { button.begin(BUTTON_PIN); }
3. Callback-Funktionen festlegen
setXXXHandler()
Methoden zum Zuweisen von Rückruffunktionen für verschiedene Tastenaktionen:-
setTapHandler()
: Triggert für jeden Tastendruck; dient als grundlegende Rückruffunktion. -
setClickHandler()
: Wird bei einem einzigen Klick ausgelöst. -
setChangedHandler()
,setPressedHandler()
,setReleasedHandler()
: Erkennt Änderungen im Schaltflächenstatus. -
setLongClickDetectedHandler()
: Wird ausgelöst, wenn die Schaltfläche für eine bestimmte Dauer gedrückt gehalten wird. -
setLongClickHandler()
: Wird ausgelöst, nachdem die Schaltfläche nach einem langen Druck losgelassen wurde. -
setDoubleClickHandler()
,setTripleClickHandler()
: Erkennt Doppel- und Dreifachklicks.// Initialize M5StickC Plus2 void handleTap(Button2& b) { // Handle Button Click Events } void setup() { // ... button.setTapHandler(handleTap); }
✔ Kopiert!
4. Rufen Sie die Schleife()
Funktion
loop()
die Funktion loop()
des Schaltflächenobjekts auf:// Initialize M5StickC Plus2 void loop() { button.loop(); }
5. Erweiterte Funktionen
-
Anpassbare Parameter wie lange Druckdauer und Doppelklick-Timing.
-
Die Verwendung eines Timers unterbricht den Aufruf der Funktion
loop()
und verhindert so das Blockieren der Hauptschleife. -
Benutzerdefinierte Funktionen zur Erkennung des Tastenzustands, die verschiedene Arten von Tasten unterstützen, z. B. kapazitive Touch-Tasten und I2C-basierte Tasten.
Beispielcode
// 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 }
Fazit: Vereinfachen Sie die Tastenverwaltung mit Button2