【发布时间】:2022-01-08 07:19:09
【问题描述】:
我正在与 Arduino 合作,因为我是新手,需要您的帮助,谢谢! 我通过按钮打开 LED 灯 30 秒,一切正常,但是从 0 秒开始按下按钮灯后出现一个问题,但是如果我在 15 秒后按下按钮,它将从 0 秒重新开始,所以,有什么办法可以让按钮也禁用 30 秒,这样即使我按下按钮,它也只会运行 30 秒,而且按钮只有在 30 秒后亮起时才会起作用。
int BUTTON = 2;
int BUTTONstate = 0;
int LED = 8;
void setup() {
pinMode(BUTTON, INPUT);
pinMode(LED, OUTPUT);
}
void loop() {
static unsigned long startTime = 0;
BUTTONstate = digitalRead(BUTTON);
if (BUTTONstate == HIGH){
if (millis() - startTime >= 30000)
digitalWrite(LED, LOW);
}
else{
digitalWrite(LED, HIGH);
startTime = millis();
}
}
【问题讨论】:
-
这是阻塞延迟可以满足您需要的少数情况之一。只需延迟 30 秒。
-
延迟30秒后开启led
标签: button timer arduino disabled-input