通过温度控制Arduino a/c
问题描述:
当温度低于某个数字时,我需要为我的a/c供电,反之,当温度高于另一个数字时,需要关闭它。所以我试过这个草图通过温度控制Arduino a/c
if (DHT.temperature,1 >= 0 && DHT.temperature,1 <=18)
irsend.sendRaw(ON, sizeof(ON)/sizeof(int),khz);
else if
irsend.sendRaw(OFF, sizeof(OFF)/sizeof(int),khz);
但是它在每个循环周期发送OFF命令,因为温度不会立即改变。是否可以只发送一次ON和OFF命令以进行循环,并等待它发送另一个命令?我曾想过存储上次发送的命令,但我不知道该怎么做。谢谢
答
你还没有写好你的if语句。如果它已经存在,也添加一个测试。你可以这样做:
这必须是一个全局变量,所以它不会在下面的循环之外被破坏。
boolean isOn = false;
这可以直接进入你的void loop()或其他函数,所以你可以根据需要调用它。
if (tempCondition && (!isOn)){
irsend.sendRaw(ON, sizeof(ON)/sizeof(int),khz);
isOn = true;
}
else if (othertempCondition && isOn) {
irsend.sendRaw(OFF, sizeof(OFF)/sizeof(int),khz);
isOn = false;
}
这将测试温度,如果是true,它将检查是否需要使用isOn布尔值进行切换。
如果你想提供的温度范围,我可以帮助完成临时条件部分,如果你需要它。
谢谢@UncleO建议的改进 – djUniversal 2014-11-08 18:58:29