首页 > 解决方案 > 有没有办法在 Arduino 延迟期间运行部分代码?

问题描述

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

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

标签: arduinodelay

解决方案


不幸的是,您无法在延迟期间运行代码。但是你想要的行为可以使用一些逻辑和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 上的这篇文章了解更多信息。


推荐阅读