#include <OneButton.h>
const byte brocheBouton = 2;
const unsigned long entreDeuxNotifications = 1000; // ms
const unsigned long dureeMinPourAppuiLong = 500; // ms
OneButton bouton;
unsigned long chronoAppui;
// cette fonction sera appelée quand le bouton commence à être pressé
void appui() {
chronoAppui = millis();
Serial.println("debut Appui");
}
// cette fonction sera appelée quand le bouton commence à être pressé longtemps
void debutAppuiLong() {
Serial.print("∆t = "); Serial.print(millis() - chronoAppui); Serial.print("ms =>");
Serial.println("debut AppuiLong");
}
// cette fonction sera appelée quand le bouton est relâché
void finAppuiLong() {
Serial.print("∆t = "); Serial.print(millis() - chronoAppui); Serial.print("ms =>");
Serial.println("fin Appui Long\n");
}
// cette fonction sera appelée pendant que le bouton est maintenu enfoncé
void pendantAppuiLong() {
Serial.print("...∆t = "); Serial.print(millis() - chronoAppui); Serial.print("ms =>");
Serial.println("pendant Appui Long");
}
void setup() {
bouton.setup(brocheBouton, INPUT_PULLUP, true); // Button actif = LOW
bouton.setDebounceMs(-25);
bouton.setPressMs(dureeMinPourAppuiLong);
Serial.begin(115200);
bouton.attachPress(&appui);
bouton.attachLongPressStart(debutAppuiLong);
bouton.attachDuringLongPress(pendantAppuiLong);
bouton.attachLongPressStop(finAppuiLong);
bouton.setLongPressIntervalMs(entreDeuxNotifications);
Serial.println("PRET");
}
void loop() {
bouton.tick();
}