/*
Allumer une led avec un appui long (paramétrable par la variable "tempoLed" ... ici 2 secondes
sur un bouton poussoir etl'éteindre avec un appui court.
*/
#include <Bounce2.h>
const int pinBoutonPoussoir = 2; // Broche à laquelle le bouton est connecté
const int pinLed = 3; // Broche à laquelle la LED est connectée
unsigned long tempoLed = 2000;
unsigned long debutPressionBP;
unsigned long finPressionBP;
Bounce BoutonPoussoir = Bounce();
const int dureeAntiRebond = 50;
void setup() {
Serial.begin(9600);
BoutonPoussoir.attach(pinBoutonPoussoir, INPUT_PULLUP);
BoutonPoussoir.interval(dureeAntiRebond);
pinMode(pinLed, OUTPUT);
}
void loop() {
BoutonPoussoir.update();
/* On détecte si le bouton poussoir est appuyé */
if (BoutonPoussoir.fell()) {
debutPressionBP = millis(); // Mémoriser le départ d'appui
Serial.print("Début d'appui - Temps: ");
Serial.println(debutPressionBP);
} // Fin de if (BPValidationReglage.fell())
/* ================================================ */
/* On détecte si le bouton poussoir est relaché */
if (BoutonPoussoir.rose()) {
finPressionBP = millis(); // Mémoriser la fin d'appui
Serial.print("Fin d'appui - Temps: ");
Serial.println(finPressionBP);
/* ================================================ */
/* il est relaché donc on calcule le teps d'appui et on allume / éteint la led */
if (finPressionBP - debutPressionBP >= tempoLed ) {
digitalWrite(pinLed, HIGH); // Allumer la LED
} else {
digitalWrite(pinLed, LOW); // Eteindre la LED
} // Fin de if (finPressionBP - debutPressionBP >= tempoLed )
/* ========================================================================= */
} // Fin de if (BoutonPoussoir.rose())
} // Fin de loop()