Engineer Notes
  • Главная
  • Заметки
    • Градусник
      • Вывод информации на дисплей (семи сегмент)
      • Вывод информации на ЖК дисплей
      • Градусник DS18B20
    • Работа с датчиком освещенности
      • Работа с реле
      • Создание удлинителя, который работает только в темноте
    • Перехват кодов с пульта управления (IR)
      • Передача сигнала
    • Серво привод
    • Разбираемся с мотором
    • Подключение гироскопа
    • Сохраним файлы на SD карту
    • Часы реального времени
    • Контроллер ATTINY85
    • Доступ к датчикам через Web
  • Проекты
Powered by GitBook
On this page
  • Необходимые элементы
  • Схема подключения
  • Написание кода

Was this helpful?

  1. Заметки

Перехват кодов с пульта управления (IR)

PreviousСоздание удлинителя, который работает только в темнотеNextПередача сигнала

Last updated 5 years ago

Was this helpful?

Необходимые элементы

Схема подключения

Подключать можно к любому цифровому пину

Написание кода

#include <IRremote.h>

IRrecv irrecv(2);

decode_results results;

void setup(){
Serial.begin(9600);
irrecv.enableIRIn(); // запускаем прием
}

void loop(){
// если данные пришли
if (irrecv.decode(&results)) {
// выводим полученное значение
Serial.println( results.value, HEX );
// принимаем следующую команду
irrecv.resume();
}
}

При запуске и нажатии различных кнопок на пульте в Serial Monitor будет отображаться различные коды.

После получения нужных кодов, я взял два кода увеличение громкости и уменьшение. При увеличении я буду зажигать диод на плате, при уменьшение отключать. Далее остается только модернизировать код следующим образом:

#include <IRremote.h>

IRrecv irrecv(3);

decode_results results;

void setup(){
  Serial.begin(9600);
  irrecv.enableIRIn(); // запускаем прием
}

void loop(){
  if (irrecv.decode(&results)) { // если данные пришли

    Serial.println( results.value, HEX ); // выводим полученное значение

    switch ( results.value ) {
      case 0x20DF40BF:
        digitalWrite( 13, HIGH );
        break;
      case 0x20DFC03F:
        digitalWrite( 13, LOW );
        break;
    }

    irrecv.resume(); // принимаем следующую команду
  }
}

В качестве домашнего задания можно сделать включение и отключение 3х цветного диода при нажатии на кнопки 1,2,3. Отдельно задание на логику, хранить состояние пинов на которых работают светодиоды в отдельных переменных нельзя

Для получения кодов нам потребуется библиотека . Попробуем набросать небольшой код, читающий коды от пульта (к примеру от TV)

IRremote
Приемник IR сигналов
ir-receiver
serial-monitor