大家好,希望您新年快乐。我正在寻找要在我的IF
函数中使用的命令,该命令可以读取是否触发该变量的变量的值低于此值。
我要实现的示例:我有一个信号从mqtt通过nodered返回到我的代码,该代码是一个选择最小值(temp)的滑块,就像打开风扇一样。而且我需要帮助来获取下面的所有值,因为当我将值设置为25时,它只能在不低于该值的25上工作。我需要此功能,因为传感器始终可以从滑块上跳过我的设置值。
因此,问题是如何实现函数IF
以读取变量设置下的值?
当我在网上搜索时,发现一条命令constrain()
无法使用,因为如果将滑块上移到40左右或下移到10的话,变量的值可以随时更改
我现在如何执行的代码:
if (millis() > millisNow + sendDelay){
if (TempThres >= 20 && TempThres <= 30 && temp == TempThres) {
digitalWrite(RELAY_PIN2, HIGH); // turn on led 5 seconds
delay(5000);
digitalWrite(RELAY_PIN2, LOW);
}
Serial.println ("wwwwwwwwwwwwwww");
Serial.println(TempThres);
Serial.println ("wwwwwwwwwwwwwww");
if (SoilThres >= 1 && SoilThres <= 100 && soilmoisturepercent == SoilThres) {
digitalWrite(RELAY_PIN15, HIGH); // turn on led 5 seconds
delay(5000);
digitalWrite(RELAY_PIN15, LOW);
}
Serial.println ("aaaaaaaaaaaaaaa");
Serial.println(SoilThres);
Serial.println ("aaaaaaaaaaaaaaaa");
}
首先,这最终会打破:if (millis() > millisNow + sendDelay)
。我想你要millis() - lastmillis >= sendDelay
。(示例页面:https : //www.norwegiancreations.com/2018/10/arduino-tutorial-avoiding-the-overflow-issue-when-using-millis-and-micros/)
在我看来,您在自己的条件下进行了过多的测试。对于温度,我们只希望它在20到30之间-为什么我们还要关心它是否恰好与某些未知数匹配TempThres
?为什么我们会TempThresh
超出该范围?与土壤水分相同。
如果这些阈值需要可变,则构造一个上下限,并对照以下条件进行检查: if ( temp >= (thresh - 5) && temp <= (thresh + 5) ) ...
至少我认为这就是您想要的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句