如何获取触发它的变量下面的所有值



大家好,希望你们在新年前夕过得愉快。我正在搜索一个在我的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) ) ...

至少我认为这是你想要的。

相关内容

  • 没有找到相关文章

最新更新