074-Преобразователь IR-to-UART на ATtiny2313.

Автор: | 31.05.2011

Несколько статей назад я описывал конструкцию преобразователя IR-to-UART на универсальной плате для IR устройств.  Универсальная плата драйвера получилась компактной и удобной. Я уверен — на ней мы соберем еще много интересных устройств!

В этой статье я покажу как сделать такое-же устройство, но на микроконтроллере ATtiny2313 и с применением  платы для сенсорных устройств. Я и дальше буду дублировать устройства на разных микроконтроллерах, так как часто для сборки устройства не находиться нужного микроконтроллера или применение его не целесообразно.

Как работает устройство, я повторно описывать не буду — читайте статью преобразователя IR-to-UART на ATtiny13, там все расписано. Отличий в работе нет — устройство принимает команду от бытового IR пульта и после обработки выдает ее код по UART.

Сборка преобразователя.
Как я уже писал, преобразователь будет собран на платы для сенсорных устройств. Необходима лишь небольшая доделка:

Схема преобразователя IR-to-UART
074-Tiny2313-IR-to-UART-schem.zip (Одна Загрузка)

Как видно из схемы нужно, всего лишь, добавить TSOP . TSOP может быть любым на 36 или 38 кГц. Главное не перепутайте вывода — они у всех расположены по разному (читайте даташит на свой TSOP!).  IR-светодиод пока не нужен, я его нарисовал для следующих устройств.
Как Вы понимаете, устройство можно собрать и на своей плате — развести ее не составит труда.

Параметры UART:
— скорость 9600;
— размер посылки 8бит;
— 1 стоп бит;
— без бита четности.

Как и в варианте на ATtiny13, я сделал два варианта прошивки.
Первый вариант – простой. По UART выдается код нажатой клавиши пульта в виде одного байта. В виду того, что нажатой клавише соответствует только один байт, на принимающей стороне (Ваш электронный проект) очень легко будет обрабатывать посылки. Но с другой стороны при однобайтном отображении нажатой клавиши пульта возможны ситуации, когда две разные клавиши пульта (или разных пультов) выдадут одинаковой код.

Для устранения этого недостатка я сделал второй вариант прошивки — она выдает на каждую нажатую клавишу двух байтовый код (слово). Причем, перед каждым кодом посылается символ «*» — это должно помочь при приеме сообщения на принимающей стороне. Общий вид сообщения передаваемого по UART при приеме очередного кода будет следующим: «*хх», где хх-двухбайтовый код нажатой клавиши.

Обе прошивки при подаче питания на устройство выдают по UART строку «OK!» и издают звук (или мерцают светодиодом, в зависимости что Вы там установили) . При приеме IR сигнала (любого) схема реагирует звуком (светом).

Простой вариант прошивки — однобайтовый:
074-T2313-IR-to-UART-1B.zip (2129 Загрузок)
074-T2313-IR-to-UART-FuseBits.png (2800 Загрузок)
Как правильно прошить AVR фьюзы

Расширенный вариант прошивки – трехбайтовый(«*хх»):
074-T2313-IR-to-UART-3B.zip (2262 Загрузки)
074-T2313-IR-to-UART-FuseBits.png (2800 Загрузок)
Как правильно прошить AVR фьюзы

Файлы:
074-source-T2313-IR-to-UART-1B.zip (2546 Загрузок)
074-source-T2313-IR-to-UART-3B.zip (2448 Загрузок)

Ссылки:
060-Драйвер сенсорной клавиатуры «Touch Me» на ATtiny2313.

 

 

(Visited 5 328 times, 1 visits today)

074-Преобразователь IR-to-UART на ATtiny2313.: 54 комментария

  1. Xopek

    Здравия. А как прописывать коды кнопок в программу? Я вроде заменил
    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
    и… всё. Не работает. Ни на какие кнопки не реагирует. Если зашить старые обратно — работает. Пульт у меня почти такой же, чуть урезанный. Что я делаю не так?

  2. GetChiper Автор записи

    Напрямую нельзя — не те уровни сигнала!
    только через преобразователь UART-COM или UART-USB

  3. vpashko

    Подскажете, выход UART с МК нужно подключить к СОМ порту на ножки 2,3,5?

  4. GetChiper Автор записи

    Это можно сделать при помощи преобразователя USB-UART (или COM-UART) и посмотреть на компьютере при помощи программы «терминал».

Добавить комментарий