Button2: Simplificación del control de botones en placas Arduino y ESP
¿Qué es la Biblioteca Button2?
Características clave de la biblioteca Button2
-
Admite múltiples eventos de botón: detecta clics simples, dobles, triples, pulsaciones largas y más.
-
Acciones basadas en eventos: gestiona eventos de botones con devoluciones de llamada, lo que mejora la legibilidad y la eficiencia del código.
-
Mecanismo de rebote: el manejo de rebote incorporado garantiza una detección de entrada confiable, evitando activaciones falsas.
-
Compatibilidad con múltiples botones: administre múltiples botones sin codificación compleja, ideal para interfaces multifuncionales.
-
ESP32 y Arduino Compatibilidad: Funciona perfectamente con Arduino IDE y admite ambos Placas ESP8266 y ESP32.
Por qué usar Botón2 ¿para su proyecto?
Guía del usuario
1. Importar la biblioteca
// Initialize M5StickC Plus2 #include "Button2.h"
Button2
para crear un objeto de botón y pasar el pin del botón como argumento:// Initialize M5StickC Plus2 #define BUTTON_PIN D3 Button2 button; void setup() { button.begin(BUTTON_PIN); }
3. Establecer funciones de callback
setXXXHandler()
Métodos para asignar funciones de devolución de llamada para diferentes acciones de botones:-
setTapHandler()
: activa cualquier pulsación de botón; Sirve como función básica de devolución de llamada. -
setClickHandler()
: se activa con un solo clic. -
setChangedHandler()
,setPressedHandler()
,setReleasedHandler()
: detecta cambios en el estado del botón. -
setLongClickDetectedHandler()
: se activa cuando se mantiene presionado el botón durante un período específico. -
setLongClickHandler()
: se activa después de soltar el botón después de una pulsación larga. -
setDoubleClickHandler()
,setTripleClickHandler()
: Detecta clics dobles y triples.// Initialize M5StickC Plus2 void handleTap(Button2& b) { // Handle Button Click Events } void setup() { // ... button.setTapHandler(handleTap); }
✔ ¡Copiado!
4. Llama al bucle()
Función
loop()
, llame a la función loop()
del objeto de botón:// Initialize M5StickC Plus2 void loop() { button.loop(); }
5. Funciones Extendidas
-
Parámetros personalizables como duración de pulsación prolongada y tiempo de doble clic.
-
El uso de un temporizador interrumpe la llamada a la función
loop()
, evitando el bloqueo del bucle principal. -
Funciones personalizadas de detección de estado de botones que admiten varios tipos de botones, como botones táctiles capacitivos y botones basados en I2C.
Código de Ejemplo
// 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 }
Conclusión: simplifique la gestión de botones con Button2