Рано или поздно у любого человека мог возникнуть момент, когда необходим пульт от телевизора, магнитолы, музыкального центра или чего-то другого, а под рукой его не оказывается, либо потерян. Иногда может появиться альтернатива – телефон с соответствующим приложением. Но использовать телефон как пульт не всегда очень удобно, к тому же лишний хлам в памяти, который используется раз через раз. Есть альтернатива – дубликат пульта на Ардуино!
Что понадобится:
- Ардуино в любом проявлении
- любой приёмник ИК сигналов, в моём случае – H38438
- ИК светодиод и резистор на 100-200 Ом к нему
- кнопки, количество зависит от количества необходимых функций
- источник питания, две-три батарейки или литий
- библиотека IRremote
Подготовка
Первым делом необходимо скачать библиотеку через менеджер библиотек в IDE или GitHub, затем открываем пример “ReceiveDump”. Данный пример поможет без лишних заморочек создать команды для передачи. Перед прошивкой микроконтроллера берём ИК приёмник и смотрим в его даташит. VCC подключаем к выходу 5 вольт, GND к минусу, OUT – к любому нужному цифровому входу, в библиотеке стандартным назначен третий. Если третий не устраивает, то пишем в начале #define IR_RECEIVE_PIN и номер входа, к которому был припаян приёмник, затем прошиваемся.
Создание дампа команд
Половина дела сделана, открываем монитор порта, направляем пульт (или телефон с приложением пульта) на приёмник и нажимаем кнопку на пульте. Если всё было сделано правильно, то в мониторе порта появится довольно много различных вариантов записи полученного кода, но больше всего нас будет интересовать один – это самый верхний, в таком виде он будет занимать меньше места в коде и будет проще написать прошивку для пульта. Копируем строку кода куда-нибудь в блокнот. Таким же образом поступаем с остальными кнопками пульта, функционал которых нам надо будет повторять.
Сборка
Для сборки я взял лежащую до недавнего времени плату на LGT8F328, которая является чуть лучшим клоном «Атмеги» на Нано. Именно её я бы и рекомендовал, ибо данная плата способна работать на максимальной частоте в 32 МГц при напряжении в 1,8 вольт. В планах проверить на ней работоспособность энергосберегающих библиотек, но это уже совсем другая история. Берём плату с микроконтроллером, берём макетную плату, кнопки и паяемся по данной ниже простой схеме.
В конечном итоге у меня вышло что-то подобное:
Прошивка
Обязательно отключаем плату от элемента питания, и подключаем к компьютеру, программа создаётся по данному шаблону:
- сначала настраиваем один из выводов как выход на ИК светодиод, после задаём частоту, затем объявляем входы кнопок, для упрощения схемы настраиваем их как входы с подтяжкой. Подтяжка происходит только к плюсу питания, контроллер иначе не умеет, поэтому логическая единица является физическим нулём;
- создаём условие «если» и проверяем наличие нулевого сигнала на нажатой кнопке, если он присутствует, то отправляем необходимую команду;
- после отправки команды из списка тех, что были сохранены в отдельном текстовом файле, создаём задержку хотя бы 50 микросекунд, но лучше в промежутке от 150 до 300 миллисекунд.
Прошиваемся, затем, можно не отцепляя кабель от компьютера проверить пульт, посветив им в камеру, или сразу в устройство, для которого делали этот пульт. Если светит и всё работает, то всё работает, как и должно. Если же не светит или не реагирует устройство, то стоит проверить пайку и код.
Таким образом, выходит относительно простой пульт, который, безусловно, может постичь та же участь, что и родной пульт от техники. Во всяком случае, найти два пульта будет в два раза проще, чем один…