arduino - 有没有办法在 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 上的这篇文章了解更多信息。
推荐阅读
- javascript - 将 Sitecore 与 React JS 一起使用时图像 URL 不存在?
- python - find-s 算法的输出
- google-cloud-platform - 为什么授予“allAuthenticatedUsers”成员“Cloud Functions Invoker”角色不适用于谷歌云功能?
- powerbi - Powerbi oauth api 在从访问令牌访问数据时提供 403
- google-sheets - SAAS 应用程序的 Google 表格 API 限制
- java - 直接在Eclipse中运行源码就可以了。为什么 Jar 文件将停止运行并且控制台中没有异常显示?
- c# - 即使没有关注表单应用程序,也继续运行 ProcessCmdKey
- python-3.x - 猪拉丁函数代码列表中的值错误。当 x 明显在列表中时,删除(x)x 不在列表中
- .net - 如何将 XmlDocument 保存到“格式类似于 Visual Studio”的 .csproj 中,其中空元素保存在单独的行中?
- java - 给定一个数字数组,返回所有其他数字的乘积数组(带除法)