gpt4 book ai didi

c++ - 如何独立检查多个变量?

转载 作者:行者123 更新时间:2023-12-03 11:15:03 25 4
gpt4 key购买 nike

这是有错误的代码部分:

  int value = analogRead(LM351);
float Temperature = value * 500.0 / 1023.0;
lcd.setCursor(6,0);
lcd.print(Temperature);
lcd.setCursor(11,1);
int value1 = analogRead(LM352);
float Humidity = value1 * 500.0 / 1023.0;
lcd.setCursor(10,1);
lcd.print(Humidity);


if (Temperature > 24){
digitalWrite(motor, HIGH);
digitalWrite(LedRed, HIGH);
digitalWrite(LedGreen, LOW);
lcd.print("");
}
else {
digitalWrite(motor, LOW);
digitalWrite(LedRed, LOW);
digitalWrite(LedGreen, HIGH);
lcd.print("");
}

if (Humidity > 10){
digitalWrite(motor, HIGH);
lcd.print("");
}
else {
digitalWrite(motor, LOW);
lcd.print("");
}

delay(1000);
}

正确的,如果温度超过 24 或湿度超过 10,电机应该旋转。但是当我运行这段代码时,电机只有在湿度超过 10 时才会旋转。但是当湿度小于 10温度超过 24,电机不转。

原因是我一个接一个地检查一个变量,有没有一种方法可以独立检查每个变量?

最佳答案

您的逻辑检查一件事并使用react,然后检查另一件事。
您可以同时检查两件事,确定 4 种情况中的一种,然后使用react,或者一个接一个地检查,但只做决定而不是立即使用react,然后再使用react。

我想你特别问了关于单独检查的问题,所以继续做决定吧。

// no decisions yet
bool NeedMotor = false;

if (Temperature > 24)
{
NeedMotor = true;
digitalWrite(LedRed, HIGH);
digitalWrite(LedGreen, LOW);
lcd.print("");
} else
{
digitalWrite(LedRed, LOW);
digitalWrite(LedGreen, HIGH);
lcd.print("");
}

if (Humidity > 10){
NeedMotor = true;
lcd.print("");
} else
{
lcd.print("");
}

if (NeedMotor)
{
digitalWrite(motor, HIGH);
} else
{
digitalWrite(motor, LOW);
}

这样,湿度决定不会覆盖温度决定,如果温度还没有导致它可能决定使用电机。如果需要电机,将打开,否则关闭。

注意,我不确定液晶打印的目的。我将其保留在您的代码中。

关于c++ - 如何独立检查多个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65758227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com