const int ledPin = 9;
const int buttonPin = 2;
unsigned long startTime = 0;
bool ledOn = false;
bool previousButtonState = HIGH;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
unsigned long currentMillis = millis();
bool buttonState = digitalRead(buttonPin);
// 偵測按下按鈕的瞬間
if (previousButtonState == HIGH && buttonState == LOW) {
if (ledOn == false) {
ledOn = true;
startTime = currentMillis;
digitalWrite(ledPin, HIGH);
}
}
// LED 亮起超過 3 秒,就熄滅
if (ledOn == true) {
if (currentMillis - startTime >= 3000) {
ledOn = false;
digitalWrite(ledPin, LOW);
}
}
// 記錄這一次的按鈕狀態
previousButtonState = buttonState;
}