首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在带电磁阀和土壤湿度传感器的Arduino中设置10秒的持续时间和1分钟的间隔?

如何在带电磁阀和土壤湿度传感器的Arduino中设置10秒的持续时间和1分钟的间隔?
EN

Stack Overflow用户
提问于 2014-10-10 02:21:57
回答 1查看 389关注 0票数 0

所以我有一个项目,这是一个自动喷水装置,我使用一个电磁阀来控制水,由arduino和一个土壤湿度传感器控制。代码一开始是工作的,直到我把while条件放在else子句上并添加了延迟。我必须在喷水中放置10秒的时间,并在水再次流动之前间隔1分钟,直到传感器达到所需的湿度。请看一下。

代码语言:javascript
复制
const int soil_moisture_sensor = A0;
int ledPin_Red = 13;
int ledPin_Green = 12;


void setup(){
  Serial.begin(9600);
  pinMode(ledPin_Red, OUTPUT);
  pinMode(ledPin_Green, OUTPUT);

}

void loop() {
int soil_moisture_level = analogRead(soil_moisture_sensor);
  if (soil_moisture_level <=560 && soil_moisture_level <=700 ) {
           digitalWrite(ledPin_Red, LOW);//when the water is enough 
               digitalWrite(ledPin_Green, HIGH);//GREEN LED Lights up
        Serial.println("water is enough!");
            }

    else if (soil_moisture_level <=360 && soil_moisture_level > 360 && soil_moisture_level <= 560) {
        digitalWrite(ledPin_Red, HIGH);// LED RED lights up
                digitalWrite(ledPin_Green, LOW);
                Serial.println("the water is half full!");
                            }
    else {
             while (soil_moisture_level > 700)
              {
                  digitalWrite(ledPin_Red, HIGH);//LED RED on
                  delay(10000);//10 secs on of red led
                  digitalWrite(ledPin_Red, LOW);//LED RED off
                  delay(60000);//60 secs or 1 min interval
                  digitalWrite(ledPin_Green, LOW);
                  Serial.println("no more water");
              }
         }
        delay(2000); //2000 ms = 2 secs
}

您的帮助将不胜感激!谢谢!:D

EN

回答 1

Stack Overflow用户

发布于 2014-10-14 20:38:32

看起来你把比较器倒过来了。应为soil_moisture_level < 700

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26285431

复制
相关文章

相似问题

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