ButtonLib è una libreria per Arduino che semplifica la gestione dei pulsanti, implementando automaticamente il debounce e il rilevamento della pressione prolungata (long press).
- Debounce automatico: Evita il rimbalzo dei contatti.
- Rilevamento della pressione normale: Verifica se il pulsante è premuto.
- Rilevamento della pressione prolungata: Determina se il pulsante è stato premuto per un tempo superiore a una soglia definita.
- Arduino IDE
- Microcontrollore compatibile con Arduino
- Copia i file
ButtonLib.heButtonLib.cppnella cartella del tuo progetto Arduino. - Includi l'header nel tuo sketch:
#include "ButtonLib.h"
Per inizializzare un pulsante specificando il pin, il ritardo di debounce e il ritardo per il long press:
Button button(2, 50, 1000); // Pin 2, debounce di 50 ms, long press di 1000 msNel setup(), chiama il metodo begin() per impostare il pin in modalità input:
void setup() {
button.begin();
}Nel loop(), chiama update() per aggiornare lo stato del pulsante:
void loop() {
button.update();
if (button.isPressed()) {
Serial.println("Pulsante premuto!");
}
if (button.isLongPressed()) {
Serial.println("Pulsante premuto a lungo!");
}
}Crea un oggetto pulsante.
- pin: Il numero del pin a cui è collegato il pulsante.
- debounceDelay: Il tempo di debounce in millisecondi.
- longPressDelay: Il tempo necessario per considerare una pressione come "long press".
Inizializza il pin del pulsante.
Aggiorna lo stato del pulsante. Deve essere chiamato frequentemente nel loop().
Ritorna true se il pulsante è premuto.
Ritorna true se il pulsante è stato premuto per un tempo superiore a longPressDelay.
#include "ButtonLib.h"
Button button(2, 50, 1000);
void setup() {
Serial.begin(9600);
button.begin();
}
void loop() {
button.update();
if (button.isPressed()) {
Serial.println("Pulsante premuto!");
}
if (button.isLongPressed()) {
Serial.println("Pulsante premuto a lungo!");
}
}