Обзор модуля HX1838 с ИК пультом — 21 кнопка
В этой статье расскажу о популярном инфракрасном пульте управления модель HX1838 (ИК пульт), а так же покажу пример подключения ИК пульта и Arduino. С его помощью можно создавать роботов с дистанционным управлением, управлять различными устройствами и так далее.
Технические параметры
► Модель: HX1838
► Датчик пульта: VS1833B
► Напряжение питания: 3.3 В — 5 В.
► Количество кнопок: 21 шт.
► Расстояние приема: до 8 м (зависит от внешних факторов).
► Габариты платы модуля: 24 мм х 16 мм х 33 мм
► Габариты пульта: 87 мм х 40 мм х 7 мм
Общие сведения
Что значит инфракрасный?
Инфракрасное излучение — это форма света, похожая на обычный свет. Единственная разница между ИК-светом и видимым светом — это частота и длина волны. Инфракрасное излучение находится за пределами диапазона видимого света, поэтому люди не могут его видеть. Поскольку ИК является светом, для связи от приемника до передатчик, необходима прямая видимость.
ИК передатчика и приемника
Для инфракрасной связи требуется ИК-передатчик и ИК-приемник. Передатчик похож на стандартный светодиод, за исключением того, что он излучает свет в ИК-спектре. Если посмотреть на переднюю часть пульта, можно увидеть ИК-передатчик.
ИК-приемник представляет собой фотодиод и предварительный усилитель, который преобразует ИК-свет в электрический сигнал. Так как всегда есть посторонние ИК шумы (дневной свет, лампы и так далее) и чтобы все эти шумы не мешали передачи сигнала, была выбрана частота в 38 кГц с длиной волны 940 нм (большинство ИК пультов работают на этой частоте). Таким образом, ИК-приемник будет знать, что сигнал на частоте 38 кГц был отправлен от передатчика.
Назначение выводов
► VCC: «+» питание модуля
► GND: «-» питание модуля
► D0: цифровой выход
Подключение
модуля HX1838 с ИК пультом к Arduino
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Модуля HX1838 с ИК пультом — 21 кнопка x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
Подключение:
ИК приемник, можно подключить напрямую или воспользоватся небольшой платой, которая обычно идет в комплекте (в примере используется плата). Собираем схему согласно рисунку ниже.
Программа:
После сборки схемы, можно скачать и установить библиотеку «IRremote«, далее скачиваем или копируем скетч и загружаем его в плату Arduino.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/* Тестировалось на Arduino IDE 1.8.5 Дата тестирования 19.02.2019г. */ #include <IRremote.h> // Подключаем библиотеку IRremote const int RECV_PIN = 7; // Указываем к какому выводу подключен IN IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); // Открытие последовательную связь irrecv.enableIRIn(); // Запустить приемника } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); // Печатаем полученные показания irrecv.resume(); // Получение следующего значения } delay(100); } |
Теперь открываем окно «Мониторинг порта» и при нажимаем кнопок на пульте, можно увидеть шестнадцатеричный код кнопок.
Используя данный пример, можно получить таблицу ключей. Кстати, при непрерывном нажатии клавиши получаем код 0XFFFFFFFF.
Управление светодиодами с помощью ИК пультом
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Модуля HX1838 с ИК пультом — 21 кнопка x 1 шт.
► Светодиод красный 5 мм x 2 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
Подключение:
Теперь покажу как можно управлять выводами Arduino с помощью ИК пульта. В этом примере будем управлять светодиодами, при нажатии определенной кнопки. При необходимости, можно легко изменить данный код под ваши нужны, например, для управления сервоприводами, реле или двигателями при нажатии любой кнопки на ИК пульте.
Схема содержит ИК-приемник, подключенный к Arduino (вывод 7) и два красных светодиода подключенных к 10 и 11 выводу Arduino.
Программа:
Скетч проверяет какая из кнопок нажата и выводит 10 или 11 вывод в высокое состояние «High» на 2 секунд, затем в «Low«.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
/* Тестировалось на Arduino IDE 1.8.5 Дата тестирования 19.02.2019г. */ #include <IRremote.h> // Подключаем библиотеку IRremote const int RECV_PIN = 7; // Указываем к какому выводу подключен IN IRrecv irrecv(RECV_PIN); decode_results results; const int redPin = 10; // Указываем к какому выводу светодиод 1 const int redPin2 = 11; // Указываем к какому выводу светодиод 2 void setup() { irrecv.enableIRIn(); irrecv.blink13(true); pinMode(redPin, OUTPUT); pinMode(redPin2, OUTPUT); } void loop() { if (irrecv.decode(&results)) { switch(results.value) { case 0xFF38C7: // Кнопка "5" digitalWrite(redPin, HIGH); delay(2000); digitalWrite(redPin, LOW); } switch(results.value) { case 0xFF18E7: // Кнопка "2" digitalWrite(redPin2, HIGH); delay(2000); digitalWrite(redPin2, LOW); } irrecv.resume(); } } |
Вот и все, будут вопросы пишите.
Ссылки
Библиотека IRremote v.2.2.0
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Комплект проводов DuPont, 2,54 мм, 20 см
Модуль HX1838 с ИК пультом
Купить в Самаре и области
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Модуль HX1838 с ИК пультом