/*
Forum: https://forum.arduino.cc/t/making-something-happen-only-once-when-a-button-is-held-down/1308686/2
Wokwi: https://wokwi.com/projects/411032188691180545
*/
const int triggerPin = 2; // button on pin 2
const int ledPin = 13; // led on pin 13
const int a = 150; //delay time
bool triggerState = false;// variable for the state of the trigger
void setup() {
pinMode(triggerPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
}
void loop() {
if (!triggerState && digitalRead(triggerPin) == LOW) {
triggerState = true;
//led light
digitalWrite(ledPin, HIGH);
delay(a);
digitalWrite(ledPin, LOW);
delay(a);
digitalWrite(ledPin, HIGH);
delay(a);
digitalWrite(ledPin, LOW);
delay(a);
digitalWrite(ledPin, HIGH);
delay(a);
} else {
digitalWrite(ledPin, LOW);
}
if (triggerState && digitalRead(triggerPin)) {
triggerState = false;
delay(30); // Simple debouncing
}
}