Thank you, it's working even though it's not pretty.
#define triggerPin 7
unsigned long previousMillis = 0; // will store last time button was pressed
unsigned long currentMillis;
boolean trigger = false;
int interval = 1000;
void loop() {
currentMillis = millis();
if (trigger){
triggerBoot(interval);
}
}
case 1:
Serial.print("Button ");
Serial.print(btn);
switch (event) {
case 1:
Serial.println(" single press");
previousMillis = millis();
interval = 3000;
trigger = !trigger;
break;
case 2:
Serial.println(" double press");
previousMillis = millis();
interval = 5000;
trigger = !trigger;
break;
case 3:
Serial.println(" hold press");
previousMillis = millis();
interval = 10000;
trigger = !trigger;
break;
void triggerBoot (int interval) {
if (currentMillis - previousMillis >= interval) {
digitalWrite(triggerPin, LOW);
previousMillis = 0;
trigger = false;
} else {
digitalWrite(triggerPin, HIGH);
}
}