const int ledPin = 13; // LED
const int interruptionPin = 3; // pin d'interruption
volatile boolean etat = LOW;
void setup() {
Serial.begin(9600);
pinMode(interruptionPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
attachInterrupt(digitalPinToInterrupt(interruptionPin), fonctionBp, FALLING); //front descendant car pullup
}
void loop() {}
void fonctionBp () {
static unsigned long tempsprecedent; //static pour ne pas perdre la valeur de la dernière transition
unsigned long temps = millis(); // temps au moment d'entrer dans l'ISR
if ((temps - tempsprecedent) >= 60 ) { //Gestion des rebonds à 60 millis
//code qui s'execute lors de l'appuie sur le BP
etat=!etat;
if (etat==LOW) digitalWrite(ledPin, !digitalRead(ledPin));
tempsprecedent = temps;
}
}