我只想在值更改时启动开关/案例循环

时间:2019-06-01 15:21:52

标签: arduino arduino-esp8266

我正在运行switch case循环以获取设定值的值,将其发送到我的AC以更改温度设定点,但是该循环连续运行我想激活的开关回路ESP8266是否获得新的设定值。

这是我正在使用的代码:

     int set = root["set_point"];
     switch(set) {

       case 31:
       Serial.println("SET TEMP 31");
       break;
       case 30:
       Serial.println("SET TEMP 30");
       break;
       case 29:
       Serial.println("SET TEMP 29");
       break;

     }




     }

任何解决方案!

感谢所有人

1 个答案:

答案 0 :(得分:0)

您只需要保存set的最后一个值,并检查新值是否更改,然后再处理switch情况。

int set_last_value = 0;
int set = 0;

void setup()
{
    // ...
}

void loop()
{
    if ((set = root["set_point"]) != set_last_value)
    {
        switch (set)
        {
        case 31:
            Serial.println("SET TEMP 31");
            break;
        case 30:
            Serial.println("SET TEMP 30");
            break;
        case 29:
            Serial.println("SET TEMP 29");
            break;
        default:
            break;
        }
        set_last_value = set;
    }
}