Несколько статей назад я описывал конструкцию преобразователя IR-to-UART на универсальной плате для IR устройств. Универсальная плата драйвера получилась компактной и удобной. Я уверен — на ней мы соберем еще много интересных устройств!
В этой статье я покажу как сделать такое-же устройство, но на микроконтроллере ATtiny2313 и с применением платы для сенсорных устройств. Я и дальше буду дублировать устройства на разных микроконтроллерах, так как часто для сборки устройства не находиться нужного микроконтроллера или применение его не целесообразно.
Как работает устройство, я повторно описывать не буду — читайте статью преобразователя IR-to-UART на ATtiny13, там все расписано. Отличий в работе нет — устройство принимает команду от бытового IR пульта и после обработки выдает ее код по UART.
Сборка преобразователя.
Как я уже писал, преобразователь будет собран на платы для сенсорных устройств. Необходима лишь небольшая доделка:
074-Tiny2313-IR-to-UART-schem.zip (2427 Загрузок)
Как видно из схемы нужно, всего лишь, добавить TSOP . TSOP может быть любым на 36 или 38 кГц. Главное не перепутайте вывода — они у всех расположены по разному (читайте даташит на свой TSOP!). IR-светодиод пока не нужен, я его нарисовал для следующих устройств.
Как Вы понимаете, устройство можно собрать и на своей плате — развести ее не составит труда.
Параметры UART:
— скорость 9600;
— размер посылки 8бит;
— 1 стоп бит;
— без бита четности.
Как и в варианте на ATtiny13, я сделал два варианта прошивки.
Первый вариант – простой. По UART выдается код нажатой клавиши пульта в виде одного байта. В виду того, что нажатой клавише соответствует только один байт, на принимающей стороне (Ваш электронный проект) очень легко будет обрабатывать посылки. Но с другой стороны при однобайтном отображении нажатой клавиши пульта возможны ситуации, когда две разные клавиши пульта (или разных пультов) выдадут одинаковой код.
Для устранения этого недостатка я сделал второй вариант прошивки — она выдает на каждую нажатую клавишу двух байтовый код (слово). Причем, перед каждым кодом посылается символ «*» — это должно помочь при приеме сообщения на принимающей стороне. Общий вид сообщения передаваемого по UART при приеме очередного кода будет следующим: «*хх», где хх-двухбайтовый код нажатой клавиши.
Обе прошивки при подаче питания на устройство выдают по UART строку «OK!» и издают звук (или мерцают светодиодом, в зависимости что Вы там установили) . При приеме IR сигнала (любого) схема реагирует звуком (светом).
Простой вариант прошивки — однобайтовый:
074-T2313-IR-to-UART-1B.zip (2217 Загрузок)
074-T2313-IR-to-UART-FuseBits.png (Одна Загрузка)
Как правильно прошить AVR фьюзы
Расширенный вариант прошивки – трехбайтовый(«*хх»):
074-T2313-IR-to-UART-3B.zip (2347 Загрузок)
074-T2313-IR-to-UART-FuseBits.png (Одна Загрузка)
Как правильно прошить AVR фьюзы
Файлы:
074-source-T2313-IR-to-UART-1B.zip (2590 Загрузок)
074-source-T2313-IR-to-UART-3B.zip (2489 Загрузок)
Ссылки:
060-Драйвер сенсорной клавиатуры «Touch Me» на ATtiny2313.
Здравия. А как прописывать коды кнопок в программу? Я вроде заменил
Word $9867,$40BF,$38C7,$D827,$12ED,$28D7,$8877,$2AD5,$F00F,$B04F,$A857,$B847,$906F,$30CF
Word $A05F,$E817,$48B7,$6897,$B24D,$50AF,$7887,$708F,$58A7,$02FD,$32CD,$20DF,$00FF
на свои
Word $DF20,$D728,$F708,$5FA0,$57A8,$7788,$9F60,$9768,$B748,$3FC0,$1FE0,$7F80,$FF00,$17E8
Word $FAAA,$EF10,$6F90,$AF50,$2FD0,$FAAF,$FABA,$FABF,$C82A,$CF30,$4FB0,$8F70,$0FF0
и… всё. Не работает. Ни на какие кнопки не реагирует. Если зашить старые обратно — работает. Пульт у меня почти такой же, чуть урезанный. Что я делаю не так?
Напрямую нельзя — не те уровни сигнала!
только через преобразователь UART-COM или UART-USB
Подскажете, выход UART с МК нужно подключить к СОМ порту на ножки 2,3,5?
Это можно сделать при помощи преобразователя USB-UART (или COM-UART) и посмотреть на компьютере при помощи программы «терминал».