我正在与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();
}
}发布于 2021-12-03 10:41:52
我让正确的代码工作得很好:
int pin1 = 13;
int LED = 8;
void setup()
{
pinMode(pin1, INPUT_PULLUP);
pinMode(LED, OUTPUT);
}
long offAt = 0;
void loop()
{
if ((digitalRead(LED) == LOW ) && (digitalRead(pin1) == LOW) ) //if LED is off and button is pressed [low because it has pullup resistor]
{
digitalWrite(LED, HIGH);
offAt = millis() + 30000; //store var of now + 5 seconds
}
if (digitalRead(LED) == HIGH) //if led is on
{
if (millis() >= offAt) //see if it's time to turn off LED
{
digitalWrite(LED, LOW); //it's time. this also re-enables the button
}
}
}https://stackoverflow.com/questions/70188616
复制相似问题