const int LED_PIN = 10;     // LED 接腳
const int BUTTON_PIN = 2;   // 按鈕接腳
const unsigned long delayTime = 5000;  // 5 秒延遲


bool buttonPressed = false;
unsigned long pressTime = 0;


void setup() {
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, LOW);


  pinMode(BUTTON_PIN, INPUT_PULLUP);  // 使用內部上拉電阻
}


void loop() {
  // 讀取按鈕狀態(按下為 LOW)
  if (!buttonPressed && digitalRead(BUTTON_PIN) == LOW) {
    // 按下按鈕的瞬間
    buttonPressed = true;
    pressTime = millis();  // 記錄當下時間
  }


  // 若按鈕已按過,且過了延遲時間,就亮燈
  if (buttonPressed && (millis() - pressTime >= delayTime)) {
    digitalWrite(LED_PIN, HIGH);  // 開燈
  }
  // 重新按下就重設燈和時間
if (digitalRead(BUTTON_PIN) == LOW && (millis() - pressTime > 200)) {
  digitalWrite(LED_PIN, LOW);  // 關燈
  buttonPressed = true;
  pressTime = millis();        // 重設時間
}
}


$abcdeabcde151015202530354045505560fghijfghij