通过温度控制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布尔值进行切换。

如果你想提供的温度范围,我可以帮助完成临时条件部分,如果你需要它。

+0

谢谢@UncleO建议的改进 – djUniversal 2014-11-08 18:58:29