Я хочу запустить переключатель / случай только при изменении значения - PullRequest
0 голосов
/ 01 июня 2019

Я запускаю цикл switch case, чтобы принять значение заданного значения, чтобы отправить его на мой переменный ток для изменения заданного значения температуры, но цикл работает непрерывно, что я хочу, чтобы активировать контур переключения, только если 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 Ответ

1 голос
/ 02 июня 2019

Вам просто нужно сохранить последнее значение для set и проверить новое значение, если оно изменится, затем перейдите к switch case.

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;
    }
}
...