ИК приемник и инфракрасный пульт дистанционного управления – самый распространенный и простой способ управления электронной аппаратурой. Инфракрасный спектр излучения не виден человеческим глазом, но он отлично принимается ИК приемниками, которые встроены в электронные приборы. Модули Arduino ir remote используются для управления различной техникой в прямой видимости.
Принцип действия ИК пульта

Регистрируется излучение с помощью специальных фотоматериалов, на основе которых изготавливаются приемники. Источником инфракрасного излучения помимо нагретых тел (Солнца, ламп накаливания или свечей), могут быть твердотельные приборы – ИК светодиоды, лазеры. Излучение в инфракрасном диапазоне обладает рядом особенностей, благодаря которым их удобно использовать в пультах:
- Твердотельные излучатели (ИК светодиоды) стоят дешево и они компактны.
- Инфракрасные лучи не воспринимаются и не фиксируются человеческим глазом.
- ИК приемники также дешево стоят, и они имеют небольшие размеры.
- Малые помехи, так как передатчик и приемник настроены на одну частоту.
- Отсутствует негативное влияние на здоровье человека.
- Высокий показатель отражения от большинства материалов.
- IR излучатели не влияют на работу других устройств.

IR приемник Arduino
Для считывания IR сигнала понадобятся сама плата Ардуино, макет, приемник IR сигнала и перемычки. Существует огромное множество различных приемников, но лучше использовать TSOP312 или другие соответствующие для Ардуино. Данные от пульта к приемнику могут передаваться по протоколу RC5 или NEC.
Чтобы определить, какая ножка к чему относится, нужно посмотреть на датчик со стороны приемника. Тогда на приемнике центральный контакт – это земля, слева – выход на микроконтроллер, справа – питание.
Для удобства можно использовать готовые модули IR приемника.
Подключение IR приемника к ардуино
Выходы IR приемника подключают к Ардуино к портам GND, 5V и цифровому входу. Схема подключения датчика к 11 цифровому пину изображена ниже.
Вот так выглядит схема с модулем инфракрасного приемника:
Библиотеки для работы с IR
Для работы с ИК устройствами можно использовать библиотеку IRremote, которая позволяет упростить построение систем управления. Скачать библиотеку можно здесь. После загрузки скопируйте файлы в папку arduinolibraries. Для подключения в свой скетч библиотеки нужно добавить заголовочный файл #include .
Для чтения информации используется пример IRrecvDumpV2 из библиотеки. Если пульт уже существует в списке распознаваемых, то сканирование не потребуется. Для считывания кодов нужно запустить среду ARduino IDE и открыть пример IRrecvDemo из IRremote.
Существует и вторая библиотека для работы с ИК сигналами – это IRLib. Она похожа по своему функционалу на предыдущую. По сравнению с IRremote в IRLib имеется пример для определения частоты ИК датчика. Но первая библиотека проще и удобнее в использовании.
После загрузки библиотеки можно начать считывать получаемые сигналы. Для этого используется следующий код.
Оператор decode_results нужен для того, чтобы присвоить полученному сигналу имя переменной results .
В коде нужно переписать «HEX» в «DEC».
Затем после загрузки программы нужно открыть последовательный монитор и нажимать кнопки на пульте. На экране будут появляться различные коды. Нужно сделать пометку с тем, к какой кнопке соотносится полученный код. Удобнее полученные данные записать в таблицу. После этот код можно записать в программу, чтобы можно было управлять прибором. Коды записываются в память самой платы ардуино EEPROM, что очень удобно, так как не придется программировать кнопки при каждом включении пульта.
Бывает, что при загрузке программы выдается ошибка «TDK2 was not declared In his scope». Для ее исправления нужно зайти в проводник, перейти в папку, в которой установлено приложение Arduino IDE и удалить файлы IRremoteTools.cpp и IRremoteTools.h. После этого нужно произвести перезагрузку программы на микроконтроллер.
Заключение
Использование Arduino ir remote упрощает жизнь пользователю. В качестве пульта дистанционного управления может выступать мобильный телефон, планшет или компьютер – для этого только нужен специальный софт. При помощи Ардуино можно централизовать все управление. Одной кнопкой на пульте можно выполнить сразу несколько действий – например, включить одновременно телевизор и Blu-Ray.
Введение
Давайте теперь научимся управлять электроникой дистанционно. Самый простой и доступный способ – с помощью инфракрасного пульта дистанционного управления. Такой способ дистанционного управления крайне распространен и привычен каждому.
Благодаря своей дешевизне, простоте, экономичности и универсальности, ИК пульт всегда будет занимать свое место среди устройств дистанционного управления, наряду с Bluetooth, радио, и WiFi.
Принцип действия
ИК-приемник на Ардуино способен принимать и обрабатывать инфракрасный сигнал, в виде импульсов заданной длительности и частоты.
Под воздействием инфракрасного излучения в фотодиоде начинает течь ток. Сигнал поступает на встроенный усилитель и далее – на полосовой фильтр, настроенный на фиксированную частоту, который защищает приемник от помех.
Чтобы сигнал от пульта ДУ принимался ИК приемником Ардуино, пульт должен быть настроен на соответствующую частоту. Поэтому не каждый пульт ДУ подойдет для нашего ИК приемника.
Схема подключения
Разберем на распиновку ИК приемника. Традиционный ИК-приемник имеет три контакта:
- Питание (VCC, 5V)
- Земля (GND)
- Данные (выходное напряжение, VOUT)
Для удобства можно использовать и готовые модули ИК приемника, которые дополнят ИК приемник RC-фильтром.
Давайте же соберем что-нибудь!
Задача
Светодиод, управляемый дистанционно.
Необходимые компоненты
Итак, нам понадобится:
- 1 пульт ДУ. Подойдет практически любой ИК пульт дистанционного управления.
- Плата Ардуино, макетная плата, перемычки
В качестве светодиода будем использовать встроенный светодиод ардуино.
Схема сборки
Соберем такую схему:
Скетч
Для работы нашего скетча нам понадобится специальная библиотека — Arduino-IRremote, которую потребуется установить.
Загрузим в ардуино такой скетч:
/** * (C) jarduino.ru * * Эксперимент № 14. ИК пульт дистанционного управления * * Эксперименты с ардуино. * Управление arduino с помощью ИК пульта ДУ */ #include // подключаем библиотеку для ИК приемника // Константы программы const int irPin = A0; // аналоговый порт для ИК приемника const int ledPin = 13; // порт для светодиода // Глобальные переменные bool ledState = false; IRrecv irRec(irPin); // Инициализируем объект ИК приемника decode_results irData; // переменная для получения данных от ИК приемника void setup() { Serial.begin(9600); // Иницилизация последовательного порта, для вывода отладочной информации irRec.enableIRIn(); // запускаем прием инфракрасного сигнала pinMode(ledPin, OUTPUT); } void loop() { if (irRec.decode(&irData)) // Получение данных с ИК приемник { // Данные пришли - анализируем, выполняем команды с пульта: Serial.println(irData.value); // выводим полученные данные на порт if (irData.value == 16738455) // соответветствует цифре 1 на пульте { ledState = !ledState; // переключить состояние светодиода digitalWrite(ledPin, ledState); // обновить состояние светодиода } irRec.resume(); // принимаем следующий сигнал на ИК приемнике } delay(100); // небольшая пауза, 0,1 сек. }
Результат
Если вы используете типовой пульт ДУ для ардуино, то нажимайте на кнопку 1, и встроенный светодиод будет то зажигаться, то гаснуть.
Если вы используете какой-то другой пульт, то программу потребуется настроить на код нажимаемой вами кнопки. Для этого программа выводит все коды, получаемые от пульта.
Объяснение
Для работы с пультом нам потребуется объявить два объекта: типа IRrecv – для приемника и типа decode_results – для разбора полученных приемником данных.
IRrecv irRec(irPin); // Инициализируем объект ИК приемника
decode_results irData; // переменная для получения данных от ИК приемника
При объявлении объекта приемника вы должны указать аналоговый порт, к которому подключен приемник.
Чтобы приемник начал работать на прием, необходимо его включить. Мы это делаем в функции setup():
irRec.enableIRIn(); // запускаем прием инфракрасного сигнала
Метод decode() позволяет получить данные от приемника.
irRec.decode(&irData);
Если decode() возвращает значение > 0, то сигнал поступил, и его можно проанализировать.
Чтобы понять какой именно сигнал получил, мы анализируем свойство value объекта данных:
if (irData.value == 16738455) // соответветствует цифре 1 на пульте
Чтобы продолжить получение данных, надо вызвать метод resume():
irRec.resume(); // принимаем следующий сигнал на ИК приемнике
Заключение
Теперь вы умеете управлять устройством Ардуино не вставая с дивана 😉. Не нужно разводить кнопки. Или кнопки можно просто продублировать пультом.
Если вы уже знаете как работать с реле и силовым ключом, то вы можете сделать дистанционное включение и выключение чего угодно – освещения, аквариума, входной двери и т.п.
tormozedisonТемы / Советы



//copy this code in the ide of arduino from this line //note:- this code is for analog value int sensor=A0; //initializing the analog pin int buzzer=3; // initializing buzzer pin int value; void setup(){ Serial.begin(9600); pinMode(sensor, INPUT); // assing the pin mode type of the pin as input or output pinMode(buzzer, OUTPUT); } void loop(){ value=analogRead(sensor); //reading the valus from the sensor value=map(value,0,1023,0,255); // mapping the value from 0 to 1023 b/w 0 to 255 digitalWrite(buzzer, value); // switching the buzzer on or off by the mapped value }
А цифрового — другим скетчем:
//copy this code in the ide of arduino from this line //note:- this code is for digital value int sensor_digital=2; // initializing the digital pin int buzzer=3; int value; void setup(){ Serial.begin(9600); pinMode(sensor_digital, INPUT); pinMode(buzzer, OUTPUT); } void loop(){ value=digitalRead(sensor_digital); // reading the digital dat from the sensor digitalWrite(buzzer, value); // switching buzzer on or off }
Когда всё заработает, можно написать и программы, реализующие алгоритмы большей сложности. Например, для робота, «боящегося» приближаться к пламени или мощной лампе накаливания, чтобы не испортиться. И правильно делающего, так как поднесение платы датчика к источникам сильного нагрева на расстояние менее 100 мм может вывести её из строя. Используемые источники:
- https://arduinomaster.ru/datchiki-arduino/ir-ik-pult-upravleniya-arduino/
- https://jarduino.ru/2019/09/15/arduino-exp14-ir-remote-control/
- https://usamodelkina.ru/16520-ik-datchik-dlja-arduino-i-ne-tolko.html





Arduino Nano 3.0 распиновка
НОВИНКА 2016 года! ЭЛЕКТРОНИКА ДЛЯ НАЧИНАЮЩИХ. БАЗОВЫЙ НАБОР ЭЛЕКТРОННЫХ КОМПОНЕНТОВ+КНИГА (11 ЭКСПЕРИМЕНТОВ).
Умный дом на базе Ардуино: пошаговая инструкция по сборке
Видео и фото обзор стартового набора Arduino для UNO R3 из посылки на Aliexpress
Что такое Ардуино? Это свобода для изобретателя
Инструменты и приспособления KREG для дерева. Выгодные комплекты
Робот на Ардуино и машинка на Bluetooth своими руками