Libreria One Button
Contenuti: |
1 |
 |
Arduino OneButton library per usare pulsanti con semplicità |
2 |

|
|
3 |
 |
|
4 |
 |
|
📌 OneButton Library - Specifiche Tecniche
La libreria OneButton semplifica la gestione dei pulsanti su Arduino, fornendo funzioni per rilevare clic singolo, doppio clic e pressione prolungata senza dover scrivere codice per il debounce.
🔹 Costruttore
OneButton(uint8_t pin, boolean activeLow = true, boolean pullupActive = true); |
-
pin: Pin digitale a cui è collegato il pulsante.
-
activeLow: Se true, il pulsante è considerato premuto quando il segnale è LOW (default: true).
-
pullupActive: Se true, attiva la resistenza di pull-up interna (default: true).
✅ Esempio di creazione
OneButton button(2, true); // Pin 2, attivo basso, pull-up abilitato |
🔹 Metodi Principali
▶ Gestione degli eventi
Queste funzioni permettono di associare una callback (funzione da eseguire) agli eventi del pulsante.
1. Clic singolo
void attachClick(callbackFunction newFunction); |
✅ Esempio
void myClick() {
Serial.println("Clic singolo!");
}
button.attachClick(myClick); |
2. Doppio clic
void attachDoubleClick(callbackFunction newFunction); |
✅ Esempio
void myDoubleClick() {
Serial.println("Doppio clic!");
}
button.attachDoubleClick(myDoubleClick); |
3. Pressione prolungata
void attachLongPressStart(callbackFunction newFunction); |
✅ Esempio
void myLongPress() {
Serial.println("Pressione lunga iniziata!");
}
button.attachLongPressStart(myLongPress); |
4. Fine pressione prolungata
void attachLongPressStop(callbackFunction newFunction); |
✅ Esempio
void myLongPressStop() {
Serial.println("Pressione lunga terminata!");
}
button.attachLongPressStop(myLongPressStop); |
5. Durante la pressione prolungata
void attachDuringLongPress(callbackFunction newFunction); |
✅ Esempio
void myDuringLongPress() {
Serial.println("Sto tenendo premuto...");
}
button.attachDuringLongPress(myDuringLongPress); |
🔹 Gestione e configurazione
Questi metodi permettono di personalizzare il comportamento della libreria.
1. Analizza lo stato del pulsante
✅ Esempio
void loop() {
button.tick(); // Controlla se il pulsante è stato premuto
} |
2. Imposta il tempo massimo per il clic singolo
void setClickTicks(int ticks); |
✅ Esempio
button.setClickTicks(250); // Un clic deve durare meno di 250 ms |
3. Imposta il tempo minimo per una pressione lunga
void setPressTicks(int ticks); |
✅ Esempio
button.setPressTicks(1000); // Pressione lunga dopo 1 secondo |
4. Controlla se il pulsante è premuto
✅ Esempio
if (button.isPressed()) {
Serial.println("Il pulsante è premuto!");
} |
📌 Esempio Completo
Questo esempio mostra come gestire clic singolo, doppio clic e pressione lunga con un pulsante su Arduino.
#include <OneButton.h>
#define BUTTON_PIN 2 // Pin del pulsante
OneButton button(BUTTON_PIN, true); // Pull-up interno abilitato
void singleClick() {
Serial.println("Clic singolo!");
}
void doubleClick() {
Serial.println("Doppio clic!");
}
void longPressStart() {
Serial.println("Pressione lunga iniziata!");
}
void longPressStop() {
Serial.println("Pressione lunga rilasciata!");
}
void setup() {
Serial.begin(115200);
button.attachClick(singleClick);
button.attachDoubleClick(doubleClick);
button.attachLongPressStart(longPressStart);
button.attachLongPressStop(longPressStop);
}
void loop() {
button.tick(); // Controlla lo stato del pulsante
} |
|