Schema :
Le bouton est branché sur le port GPIO 14 (D5 sur la carte).
Sketch :
unsigned long lastResetPressTime;
int lastResetPressState = HIGH;
const int RESET_PRESS_TIME = 3000;
const int RESET_BUTTON = 14;
const int LED_PIN = LED_BUILTIN;
void setup() {
Serial.begin(115200);
pinMode(RESET_BUTTON, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, HIGH);
}
void loop() {
if (digitalRead(RESET_BUTTON) == LOW)
{
if(lastResetPressState == HIGH) {
lastResetPressState = LOW;
lastResetPressTime = millis();
} else if ((millis() - lastResetPressTime) > RESET_PRESS_TIME) {
digitalWrite(LED_PIN, LOW);
delay(1500);
digitalWrite(LED_PIN, HIGH);
delay(1500);
lastResetPressState = HIGH;
Serial.println("reset");
}
} else {
lastResetPressState = HIGH;
digitalWrite(LED_PIN, HIGH);
}
}
