Как включить/выключить светодиод одной и той же ИК-кнопкой?

Я пытаюсь включить/выключить светодиод с помощью того же кода case():. Но это не работает, может кто-нибудь мне помочь?

, 👍-4

Обсуждение

Пробовали ли вы проверить текущее состояние и действовать соответствующим образом?, @Kwasmich


1 ответ


Лучший ответ:

0

Было бы хорошо, если бы вы добавили свой эскиз, если он у вас есть.

В принципе, вам необходимо создать логическую переменную, которая сохранит текущее состояние светодиода. Когда вы получаете ИК-команду, внутри обработчика ИК-кнопки инвертируется состояние логического значения. Затем соответствующим образом замените светодиод.

Что-то вроде:

Константная/глобальная переменная:

#define LED_PIN 8

int ledState;

В настройке:

 ledState = FALSE;
 digitalWrite(LED_PIN, ledState);

В боковом цикле:

case IR_BUTTON_CHANGE_LED:
   ledState = ledState == LOW ? HIGH : LOW; // Инвертируем состояние
   digitalWrite(LED_PIN, ledState); // Установка светодиода в соответствии с состоянием
   break;
,