Наши контакты: +380958663605
Тема об пульте для телевизора на arduino очень распространена в интернете, но я решил сделать универсальный пульт на arduino для управления телевизором и медиаплеером. Хочу заметить что данный пульт можно настроить для управления DVD или VHS плеером. Он очень прост в настройке и удобен для повторения.
Ну а теперь после небольшого видео обзора приступим к созданию устройства
Плата Arduino Pro Mini ATMEGA328 5V/16MHz – 1 шт.
Bluetooth модуль HC-05 1 шт.
Приемник инфракрасного сигнала TSOP4838 – 1 шт.
Инфракрасный диод – 1 шт.
В списке комплектующих все названия компонентов кликабельны (я указал продавцов где заказывал комплектующие), при нажатии вы будете перемещены на сайт AliExpress.com
Создание своего универсального пульта состоит из трех этапов:
Для начала разберемся с считыванием команд с наших пультов, я использовал пульт от телевизора ERGO и пульт от медиаплеера DUNE.
Для считывания данных с кодами кнопок нам потребуется инфракрасный датчик и плата Arduino. Датчик я использовал TSOP1138 на частоту приема (38 кГц)
На фото ниже представлены две схемы подключения TSOP1138 к плате Arduino
После подключения скачиваем библиотеку IRremote
Библиотека для работы с пультами ДУ и инфракрасными датчиками
Категория: | Arduino библиотеки |
Лицензия: | Freeware |
Дата: | 02.04.2014 |
Устанавливаем и запускаем пример IRrecvDump
В скетче примера меняем в строке int RECV_PIN = 11; на int RECV_PIN = 4; и загружаем наш пример в плату Arduino. Потом открываем монитор порта и нажимаем на пульте любую кнопку для тестирования.
На фото выше я сначала нажал “кнопку включения” пульта от телевизора, а потом “кнопку включения” пульта от медиаплеера. Как видим оба наши пульта передают данные в кодировке NEC. Запомним этот стандарт, он нам пригодится позже.
Теперь нам потребуется создать таблицу кнопок наших пультов.
Считываем коды кнопок пультов и заполняем в поля под надписями TV и Player (поле код не редактируем) Для наглядности смотрим на скриншот приложения …
После считывания всех кнопок и заполнения таблицы, отключаем наш инфракрасный датчик и переходим к следующему шагу.
Подключаем IR светодиод , и блютуз модуль HC-05 к ардуино по схеме
Скачиваем наш скетч и загружаем в плату Arduino
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
#include IRsend irsend; int y = 1; void setup() { Serial.begin(9600); } void loop() { if (Serial.available() > 0) { int x = Serial.read(); if (x == 49) { y = 1; } if (x == 50) { y = 2; } if (y == 1) { // коды кнопок для пульта от телевизора if (x == 97) { irsend.sendNEC(0x807F08F7, 32); delay(40); } if (x == 98) { irsend.sendNEC(0x807FA857, 32); delay(40); } if (x == 99) { irsend.sendNEC(0x807F708F, 32); delay(40); } if (x == 100) { irsend.sendNEC(0x807FF00F, 32); delay(40); } if (x == 101) { irsend.sendNEC(0x807F30CF, 32); delay(40); } if (x == 102) { irsend.sendNEC(0x807FB04F, 32); delay(40); } if (x == 103) { irsend.sendNEC(0x807F9867, 32); delay(40); } if (x == 104) { irsend.sendNEC(0x807F58A7, 32); delay(40); } if (x == 105) { irsend.sendNEC(0x807FD827, 32); delay(40); } if (x == 106) { irsend.sendNEC(0x807F38C7, 32); delay(40); } if (x == 107) { irsend.sendNEC(0x807F48B7, 32); delay(40); } if (x == 108) { irsend.sendNEC(0x807FB847, 32); delay(40); } if (x == 109) { irsend.sendNEC(0x807F6897, 32); delay(40); } } if (y == 2) { //коды кнопок пульта от медиаплеера if (x == 97) { irsend.sendNEC(0xFDC23D, 32); delay(40); } if (x == 98) { irsend.sendNEC(0xFDE01F, 32); delay(40); } if (x == 99) { irsend.sendNEC(0xFD18E7, 32); delay(40); } if (x == 100) { irsend.sendNEC(0xFDE817, 32); delay(40); } if (x == 101) { irsend.sendNEC(0xFDA857, 32); delay(40); } if (x == 102) { irsend.sendNEC(0xFD6897, 32); delay(40); } if (x == 103) { irsend.sendNEC(0xFDA857, 32); delay(40); } if (x == 104) { irsend.sendNEC(0xFD6897, 32); delay(40); } if (x == 105) { irsend.sendNEC(0xFDE817, 32); delay(40); } if (x == 106) { irsend.sendNEC(0xFD18E7, 32); delay(40); } if (x == 107) { irsend.sendNEC(0xFD9867, 32); delay(40); } if (x == 108) { irsend.sendNEC(0xFD28D7, 32); delay(40); } if (x == 109) { irsend.sendNEC(0xFD20DF, 32); delay(40); } } Serial.println(x); Serial.println(y); } } |
После этого изменяем значения в строках
1 2 3 4 5 |
if (y == 1) { //коды кнопок для пульта от телевизора if (x == 97) { irsend.sendNEC(0x807F08F7, 32); delay(40); } |
значение 0x807F08F7 на значение 0x12345678 ( ваше значение из таблицы ).
1 2 3 4 5 |
if (y == 1) { //коды кнопок для пульта от телевизора if (x == 97) { irsend.sendNEC(0x12345678, 32); delay(40); } |
Аналогично и меняем значения для пульта от медиаплеера ( для того что бы не запутаться используйте таблицу которую мы заполнили ранее.
Если у Вас кодировка передачи данных у пульта SONY, RC5, RC6 или PANASONIC меняем формат передачи данных на соответствующий ( ниже пример для SONY)
1 |
irsend.sendSONY(0x12345678, 32); |
После редактирования кодов кнопок пульта заливаем скетч в плату Arduino и открываем монитор порта.
Для теста отправляем в монитор порта “1” (для включения режима телевизора) , смотрим на полученные данные … Потом отправляем “а” – смотрим ( должно быть значение 97 ) , потом “2” (для режима медиаплеера) и снова “а” . Этими действиями мы имитируем передачу данных с телефона .
Если все нормально получилось заливаем скетч, паяем готовое устройство и приступаем к последнему этапу.
Для наглядности немного фотографий моего готового устройства
Установка приложения Pult на android устройство
Скачиваем приложение Pult.APK и устанавливаем на телефон или планшет
Приложение для android устройств "Универсальный пульт управления" для управления телевизором и медиаплеером с помощью устройства на arduino.
Языки: | English |
Автор: | Іван Мартинюк |
Платформы: | Android |
Категория: | Arduino приложения для android |
Лицензия: | Freeware |
Дата: | 27.03.2015 |
Устанавливаем в телефон и запускаем
потом жмем на красный значок bluetoth и у нас должно появится окно с выбором доступных bluetooth устройств.
выбираем наше устройство и после удачного подключения значок bluetooth на главном экране должен поменять цвет на синий.
и приложение перейдет в режим пульта для телевизора, для того чтобы перейти в режим пульта медиаплеера жмем на иконку с надписью PLAYER
Хочу заметить, что в режиме медиаплеера иконка AV отображается как иконка с белым квадратом внутри.
Иван скинь пожалуйста исходник программы на andreika251@mail.ru Спасибо.