【发布时间】:2021-04-21 18:56:06
【问题描述】:
这是有错误的代码部分:
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,电机不转。
原因是我一个接一个地检查一个变量,有没有一种方法可以独立检查每个变量?
【问题讨论】:
-
嗨语音笔记。为了可读性,我冒昧地进行了编辑。我确实将一些句子结构更改为我认为表达相同目标的内容,只是更清楚。如果我错了并且改变了你的意思,请接受我的道歉并随时edit撤消我的更改。
-
我的印象是,由于 LED 所需的独立行为,即独立于湿度,您明确要求进行独立变量检查?请确认或澄清。
-
OP 需要学习如何处理en.wikipedia.org/wiki/Flowchart 的流程图。命令式语言(如 C 或 C++)遵循“好像”规则中的确切指令顺序。
标签: c++ if-statement variables arduino sensors