[英]Arduino Loop Confusion
I'm creating an auto watering system for some plants. 我正在为某些植物创建自动浇水系统。 I am using a motor to control them, and soil sensors to tell when they need water. 我正在使用电动机控制它们,并使用土壤传感器判断何时需要水。 But I'm having trouble both understanding how I should be approaching this and secondly why my code isn't working. 但是我既无法理解我应该如何实现这一目标,又难以理解为什么我的代码无法正常工作。 My problem is that the while loop is never initialized, and so the motor never stops I can tell this by my serial monitor. 我的问题是,while循环永远不会初始化,因此电机永远不会停止,我可以通过串行监视器告诉它。
if(sensorVal1 <= thresholdDown1){
Serial.println("Plant Group 1 is Dry!");
Serial.println(sensorVal1);
Serial.println("Watering");
digitalWrite(in1, LOW); //LEFT
digitalWrite(in2, HIGH);
analogWrite(enA, 255);
delay(6250);
startTime = millis();
while(sensorVal1 <= thresholdDown1){
Serial.println("Stopping");
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
if(sensorVal1 >= thresholdUp1){
break;
}
}
totalTime = millis() - startTime;
digitalWrite(in1, HIGH); //RIGHT
digitalWrite(in2, LOW);
delay(500);
digitalWrite(in1, LOW); //OFF
digitalWrite(in2, LOW);
delay(totalTime);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
delay(500);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
delay(totalTime);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
delay(3000);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
}
Here is a very simple logic you can try : 您可以尝试以下非常简单的逻辑:
if( sensorVal <= treshold ) {
Serial.println("Watering");
waterOn();
} else {
Serial.println("NOT watering");
waterOff();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.