如何获取触发它的变量下方的所有值?
How to get all the values bellow the variable that triggers it?
大家好希望你度过了美好的除夕夜。我正在搜索要在我的 IF
函数中使用的命令,该函数可以读取触发它的变量的值是否低于此值。
我想要实现的示例:我有一个信号通过 mqtt 从 nodered 返回到我的代码,这是一个滑块,它选择最小值(温度)来打开风扇。我需要帮助才能获得以下所有值,因为当我将值设置为 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) ) ...
至少我认为这就是你想要的。
大家好希望你度过了美好的除夕夜。我正在搜索要在我的 IF
函数中使用的命令,该函数可以读取触发它的变量的值是否低于此值。
我想要实现的示例:我有一个信号通过 mqtt 从 nodered 返回到我的代码,这是一个滑块,它选择最小值(温度)来打开风扇。我需要帮助才能获得以下所有值,因为当我将值设置为 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) ) ...
至少我认为这就是你想要的。