而循环在c中没有中断
我是arduino和c的新手。我正在从事一个项目,其中我有一个DHT11和nodemcu esp8266。 在这个项目中,我想控制一台交流发电机。 我想要的条件是,当温度超过32.00度时,空调必须打开,并保持打开直到温度低于30.00度。低于30.00度后,空调应关闭,只有在温度高于32.00度时才打开 当温度超过32.00时,我成功地打开了空调,但即使温度低于30.00,它也不会关闭。重置节点MCU时,它将关闭 我想我的while循环没有中断。将我的代码粘贴到下面,请帮助而循环在c中没有中断,c,while-loop,C,While Loop,我是arduino和c的新手。我正在从事一个项目,其中我有一个DHT11和nodemcu esp8266。 在这个项目中,我想控制一台交流发电机。 我想要的条件是,当温度超过32.00度时,空调必须打开,并保持打开直到温度低于30.00度。低于30.00度后,空调应关闭,只有在温度高于32.00度时才打开 当温度超过32.00时,我成功地打开了空调,但即使温度低于30.00,它也不会关闭。重置节点MCU时,它将关闭 我想我的while循环没有中断。将我的代码粘贴到下面,请帮助 void loop
void loop() {
float t = dht.readTemperature();
if (t > 32.00) {
while (t > 30.00) {
float t = dht.readTemperature();
digitalWrite(r1,HIGH);
Serial.print(t);
Serial.println("Ac_on");
delay(1000);
}
}
else {
float t = dht.readTemperature();
digitalWrite(r1,LOW);
Serial.print(t);
Serial.println("Ac_off");
delay(1000);
}
}
您有两个名称为
t
的截然不同的变量。首先是在循环外部定义的,然后是在循环内部定义的。循环条件只能“看到”在循环外部定义的条件
在内部作用域中定义的变量会在外部作用域中隐藏相同名称的变量,并且它们(如上所述)是不同的
解决方案是分配给循环内的变量t
,而不是定义一个全新的变量:
t = dht.readTemperature();
另一方面,您可能不需要在
else
案例中重新蚀刻温度