有没有办法在 Arduino 延迟期间 运行 部分代码?

Is there a way to run part of the code during a delay on Arduino?

我正在使用带有超声波传感器的 Arduino 来操作皮带输送机和执行器。皮带输送机带来一个零件,当它足够近时,执行器将其移动到一个单独的输送机,返回并开始延迟等待另一个输送机清除。

我的问题是我需要在第二条传送带上保持相似的间距,但速度会根据第一条传送带的负载量而变化。如果我能让第一个传送带在延迟为 运行 时移动到位,而不是在那之后就可以修复它,但我不知道这是否可能。

很遗憾,您无法在延迟期间运行 编码。但是你想要的行为可以使用一些逻辑和 millis() 函数来实现。这是一些示例代码:

int delay = 500;
void loop(){
    unsigned long currentMillis = millis();

    if (currentMillis - previousMillis >= delay) {        
        previousMillis = currentMillis;
        //run the second conveyor at delay
    }
    //run first conveyor logic
}

在 arduino.cc 上查看这个 article 了解更多信息。