首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >arduino可以在运行不同的函数时不断检查值吗?

arduino可以在运行不同的函数时不断检查值吗?
EN

Stack Overflow用户
提问于 2013-06-04 09:27:37
回答 1查看 1.1K关注 0票数 0

我有一台arduino R3,它连接了一个湿度传感器和一个湿度/温度传感器。有没有办法使用

代码语言:javascript
运行
复制
millis();

不是使用

代码语言:javascript
运行
复制
delay(); 

程序的其余部分将在另一个函数中运行吗?

基本上,我的程序每隔几秒钟就会检查温度、湿度和土壤湿度水平。但是如果湿度降到200以下,那么阀门就会打开,让植物浇水。如果我想让阀门保持5分钟,有没有办法在同时检查温度和湿度的同时做到这一点?从我现在所拥有的,它等待5分钟,并完成浇水,然后它返回到检查值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-04 16:24:50

可以,您可以使用millis()。

例如,定义您希望阀门保持打开的时间,并声明另外两个变量来存储阀门是否已经打开,以及何时

代码语言:javascript
运行
复制
long valveOpenedDuration = 60000;   // 60000 milliseconds => one minute
long timeWhenValveWasOpened;
bool valveIsOpened = false;

当你想打开阀门时,只需存储它发生的时间,并存储阀门打开的时间:

代码语言:javascript
运行
复制
   timeWhenValveWasOpened = millis ();
   valveIsOpened = true;

然后在你的循环中,你可以调用这个函数

代码语言:javascript
运行
复制
void checkValve {
     if (valveIsOpened) {
         if (millis () - timeWhenValveWasOpened > valveOpenedDuration) {
               // do something here
               valveIsOpened = false;
         }
     }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16908420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档