在检查输入的同时在Arduino中制作计时器

时间:2014-07-07 07:24:57

标签: arduino-uno

我需要等待一段时间,同时检查按钮是否被按下(因此输入是高还是低)。

延迟功能很难用于此,因为它无法检查延迟时是否发生了某些事情,所以它必须等待1 ms,检查,等待,检查,等待,检查等......

你能帮我解决我需要检查和暂停一段时间的编码吗?

1 个答案:

答案 0 :(得分:0)

你可以通过第二个条件控制循环来实现。 如果你想在每个arduino主循环中等待20秒,并在这段时间内执行更多代码,你可以按如下方式执行:

unsigned long startTime = millis();     // Number of milliseconds since the program started (unsigned long)
unsigned long intervalTime = 20000UL;   // equals 20 seconds
int buttonPin = 3;                      // used button pin

void loop()
{
    while(millis() - startTime < intervalTime){
        if(digitalRead(buttonPin)==HIGH){
           //...
        }
        else {
           //...
        }
    }

   //...
}