076-Управление нагрузками при помощи IR-пульта (ATtiny13).

Автор: | 12.06.2011

ТитлИмея устройство IR-to-UART, которое выдает по UART код нажатой на IR-пульте клавиши , совсем не сложно сделать прошивку для прямого дрыганья ногами микроконтроллера. Единственная проблема в том, что заранее неизвестно какой пульт мы будем использовать или какую клавишу задействуем. Придется приделать к программе кусок, позволяющий изучать нужные кнопки. Этим мы сейчас и займемся!

Согласитесь, очень удобно когда, не вставая с кресла, можно одним пультом управлять, кроме телевизора, еще и освещением, вентилятором или другими бытовыми приборами в комнате. А если к устройству трудно (или вообще невозможно) добраться? Или нужен пульт для управления Вашей моделью.  Именно для таких целей и предназначено это устройство. Для управления нагрузками подойдет любой, выбранный Вами пульт, на котором можно выбрать любые клавиши. И если вдруг Вы не сможете быстро отыскать, где-то оставленный Вами пульт, Вы сможете использовать любой другой попавшийся под руку пульт, пройдя несложную процедуру его изучения. В общем, это нужное устройство. Будем собирать!

Сборка устройства.
Для устройства управления нагрузками возьмем, ранее сделанную нами, плату IR-драйвера. Переделывать ничего не нужно – все, что нам понадобиться уже есть на плате.

Распиновка устройства

Ножки Load A, Load B, Load C предназначены для управлением нагрузками (как подключить нагрузку к микроконтроллеру – читаем здесь >>). Индикаторный светодиод будет отображать действия устройства.

Прошивка.
Для прошивки микроконтроллера на плате выведены все необходимые сигналы. Подключаем программатор и заливаем прошивку.
076-T13-IR-to-Pin1.zip (10244 Загрузки)
sshot-11.png (17009 Загрузок)
Как правильно прошить AVR фьюзы

Работа устройства.
Работает устройство очень просто. Перед тем как использовать выбранный пульт необходимо пройти процедуру его изучения. Нажимая на изученные кнопки пульта можно управлять нагрузками: включать/отключать их как по отдельности, так и все вместе; запоминать и восстанавливать текущее состояние.

Процедура изучения клавиш пульта:
— включаем устройство;
— в течении около 10 секунд удерживаем нажатой любую клавишу пульта (для разных пультов время удержания разное, так как замеряется не время удержания, а количество автоповторов команды кнопки);
— по истечении 10 секунд замерцает индикаторный светодиод – устройство перешло в режим изучения;
— далее последовательно нажимаем клавиши пульта в порядке следования функций устройства. После каждой нажатой клавиши устройство будет подтверждать запоминание кнопки мерцанием;
— после последней изученной кнопки устройство подтвердит окончание изучения пульта длительным мерцанием и перейдет в режим управления нагрузкой.
Изучение команд клавиш пульта можно производить сколько угодно раз. Изученные кнопки записываются в энергонезависимую память, поэтому устройство их будет «помнить» даже после обесточивания устройства.

Последовательность изучения кнопок пульта:
1
включение/отключение нагрузки A (Load A)
2 включение/отключение нагрузки B (Load B)
3 включение/отключение нагрузки C (Load C)
4 выключить все нагрузки
5 включить все нагрузки
6 сохранить состояние нагрузок в энергонезависимую память
7 восстановить из энергонезависимой памяти состояние нагрузок
Всего 7 команд.

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

Видео, о том как это все выглядит на самом деле:

Файлы:
076-T13-IR-to-Pin1.zip (10244 Загрузки)
sshot-11.png (17009 Загрузок)
076-source-T13-IR-to-PIN1.zip (7375 Загрузок)

Ссылки:
069-Универсальная плата-IR Driver на ATtiny13.

P.S. Данный вариант обработки IR-сигнала и изучения пультов почти без изменений войдет в 1W-IR сеть, т.е. каждое устройство в сети (если это для него нужно) сможет принимать кроме сообщений сети еще и команды с IR-пультов. Алгоритм еще будет дорабатываться, так как он еще не оптимален и не отлажен.

 

МОДИФИКАЦИИ.
(Изменение некоторых аспектов работы устройства. Общая логика работы остается прежней)

Больше модификаций можно посмотреть в разделе форума. Там-же можно показать свои модификации.

Модификация №1.
— Убрано: запуск процедуры обучения пульта при длительном нажатии на любую клавишу пульта.
+ Добавлено: запуск процедуры обучения пульта при условии закорачивания  ножки кристалла 6 (PB1) (или штырька платы Out) на «землю» при подаче питания. После перехода в режим обучения (индикаторный светодиод помигает)  ножку нужно «отпустить».

076-T13-IR-to-Pin-Mod1.zip (4236 Загрузок)
sshot-11.png (17009 Загрузок)

Как правильно прошить AVR фьюзы
076-source-T13-IR-to-PIN-mod1.zip (4018 Загрузок)

Модификация может пригодиться в тех условиях, где присутствуют сильные длительные помехи или есть вероятность длительного удержания кнопки пульта при работе с какой либо бытовой техникой (короче, там где ошибочно запускается режим обучения).

Модификация №2.
+ Добавлено: запуск процедуры обучения пульта при БОЛЕЕ длительном нажатии на любую клавишу пульта.

076-T13-IR-to-Pin-Mod2.zip (4273 Загрузки)
sshot-11.png (17009 Загрузок)

Как правильно прошить AVR фьюзы
076-source-T13-IR-to-PIN-mod2.zip (4053 Загрузки)

Модификация может пригодиться в тех условиях, где присутствуют сильные длительные помехи из-за которых есть вероятность ошибочного включения режима обучения.

(Visited 38 850 times, 2 visits today)

076-Управление нагрузками при помощи IR-пульта (ATtiny13).: 563 комментария

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

    Да, должна.

  2. Electronik83

    Если надо, могу переписать код под CVAVR. Готов к сотрудничеству, увлекаюсь мегами и программированием под них. Отвечать в почту.

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

    Было-бы здорово — пользователи блога оценят такую работу!

  4. pasha140697

    Сделал для аквариума, все работает, мне понравилось. Огромный плюс автору, жду новых устройств с IR.

  5. KT361A

    кто нить сталкивался с такой проблемой : этот девайс работает у меня, но только с одним единственным зарядником от эл.книги в качестве бп. Остальные он просто не воспринимает — его начинает плющить=) пробовал даже на 34063 делать преобраз но этому устройству пофигу =)
    Расшифрую фразу про плющить: при подключении начинает мигать индикаторный диод ил просто постоянно горит , вместо того чтоб проморгаться и уйти в рабочий режим.
    P.S. питание на всех используемых бп нормальное — даже на осциле посмотрел.

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

    А если конденсаторов по питанию добавить? (керамика + электролит)

  7. KT361A

    Да конденсаторы ставились-результат тот же.

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

    Странно — может чего с МК? От батареек работает?

  9. andrey71

    Пару месяцев назад собрал это устройство.Прошивал оба варианта со странички ( не из форума ).Работает сразу,хорошо, но не долго.День-два
    и память кнопок слетает и, что самое неприятное,нагрузки начинают периодически включаться-выключаться.Типа «аварийки» 🙂
    Менял блоки питания,микроконтроллеры,место положения TSOPa.Ничего не помогает.Может кто чего порекомендует?

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

    Сейчас я уже использую более совершенный метод чтения изучения кнопок пульта — дойдут руки сделаю апгред для этой платки.
    Для этой прошивки, возможно, помехи (это могут быть не только помехи по питанию, но и TSOP их порядком вылавливает) мешают нормальной работе, либо низкий уровень питания. Нужно попробовать варианты с форума. Как они себя поведут.

  11. andrey71

    Апгрейд — это замечательно.Мне кажется,что что-то с программой.Питание 4,8 В(78L05).Был случай сбоя при естественном освещении и в помещении никаких источников тепла и ИК не было ( плата стоит в ванной под подвесным потолком ).Так что на TSOP сильно не грешу.Затереть память помеха не может,только нарушить ход программы.Может усложнить процедуру записи памяти и ввести проверки с WDT ? Варианты с форума попробую позже,
    для пробы, т.к ни один меня не устраивает.А вот первоначальный вариант —
    идеально.

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

    Таки возьмусь за обновление — уже скопилось много лучших решений — можно практически все сделать иначе. Записываю себе в планы )

  13. radim

    Уважаемый GetChiper! Помогите пожалуйста с проблемой, дело в том, что при нескольких нажатиях на кнопку включения нагрузки B (на пульте), включается и нагрузка А, и так по переменно нажимая на одну кнопку на пульте несколько раз — получаю включение нагрузки В, при следующем нажатии — включение нагрузки А, затем выключение нагрузки А, и только после этого выключение нагрузки В. Все остальные кнопки работают нормально…
    Заранее благодарен!

  14. ma35tr0

    Спасибо, getchip!
    Удобно управлять дом.аппаратурой. Уже собираюсь делать тройник на ПДУ 🙂 Работает все четко.
    Но есть 1 нюанс. У меня на пульте имеются кнопки Off и On. Нажимаю на Off, включаются все LEDы; нажимаю On — выключаются.
    Обучал трижды, результат тот же.
    Случаем, «4 выключить все нагрузки» и «5 включить все нагрузки» не перепутаны местами?

    А еще, при подключении питания все выходы у меня активны, т.е. LEDы горят. Так должно быть?
    у меня сейчас:
    кнопка 1 — канал 1
    кнопка 2 — канал 2
    кнопка 3 — канал 3
    кнопка On — включаем все
    кнопка Off — выключаем все

    Хорошо бы при включении всех каналов, запоминать состояние раннее включенных (н., канал1 и канал3).
    А так все здорово!
    Спасибо!

  15. ma35tr0

    Кстати, 6-7 команды Я не использую.
    Было бы клаССно включить, н., каналы 1 и 3, затем выключить (Кнопка Off). Состояние записылось в еепром.
    И при следующем включении (Кнопка On), включаюЦа только те, что были включены до выключения. А если еще раз нажать на эту же кнопку, тогда всё принудительно включаеЦа.
    Ну, как-то так 🙂

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

    Если сохранить состояние (6), то потом после включения , оно должно восстановится.

    Сильно часто делать запись EEPROM не желательно (количество записей — конечное число), поэтому при каждом выключении сохранения и не делаются.

  17. ma35tr0

    @GetChiper
    Запрограммировал команды 6-7. Состояние каналов как бы сохраняется.
    Но при перезапуске МК все каналы вновь активны.
    Фьюзы вроде верно прошиты.

    Согласен, цикл перезаписи еепром ограничен, но и прибегать к нему я не часто буду.

    И не понятно, почему при подачи питания на схему, все выходы активны.
    Скажите, выходы каналов «-» или «+» ?

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

    При включении на выходах должен быть лог.0

    В разделе модификаций ничего интересного нет?

  19. aleks0306

    ПРОБЫВАЛ К ЧАСАМ ПРИДЕЛАТЬ НА СВЕТОДИОДНЫХ МАТРИЦАХ, ОТДЕЛЬНО ПУЛЬТ ОБУЧАЕТСЯ.ЕСЛИ ВМЕСТЕ ТАК САМ ПО СЕБЕ ВКЛЮЧАЕТ НАГРУЗКИ САМОПРОИЗВОЛЬНО МОРГАЮТ ВМЕСТЕ С СВЕТОДИОДОМ

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

    Очевидно помехи идут или по питанию или от мерцания индикаторов. Нужно изолировать TSOP как от одного, так и от другого.

  21. aleks0306

    Спасибо за поддержку! тут был виновник зарядник от телефона (Morgan E71++)напруга 5в, ткнул зарядник в телефон стал то включаться то сам по себе жить. заменил зарядник подключил работает от пульта все норм без сбоев.

  22. AlexRen

    Здравствуйте. Спасибо автору за интересное устройство. Собрал себе вместе с 3-мя реле для включения ми выключения нагрузки. Собрал поместил в корпус — все работает, но есть одна неприятность. Светодиод вспыхивает примерно 1 раз в пять минут, бывает чаще. Ночью немного раздражает. В чем может быть проблема?

    P.S. С наступающим.

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

    Может помехи?

  24. AlexRen

    @GetChiper

    Может и помехи. Нужно проверить. А от чего они могут быть? Может какой то пульт посылает сигнал? Нужно попробовать унести все пульты в другую комнату.

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

    Нет, скорее электрические. Что там с блоком питания?

  26. AlexRen

    @GetChiper

    Блок питания 24 вольта 1А. дальше стабилизатор 7812 на реле и 7805 на микроконтроллер. Самое интересное что мигает только в ждущем режиме, если включено хоть одно реле не мигает.

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

    А что там мигает? индикаторный светодиод? Если да, то это может быть и где то засветки TSOPа.

  28. AlexRen

    @GetChiper

    Да, мигает индикаторный светодиод где то один раз в пять минут, как будто очень быстро нажимаешь на кнопку пульта. Засветка TSOPa исключена, так как мигает и ночью при полной темноте.

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

    А если его запустить в идеальных условиях (питание батарейки)?

  30. AlexRen

    GetChiper :
    А если его запустить в идеальных условиях (питание батарейки)?

    На счет батарейки не пробовал так как плата запаяна и упрятана в корпус. Хочу сделать маленькую версию и на ней проверить. А так заметил что и при работе реле светодиод мигает но очень редко а в выключенном мигает через каждые 3-5 минут. Буду думать дальше.

  31. AlexRen

    Только что проверил 4 разных блока питания — без изменений. Взял временно отсоединил светодиод и оставил пока так. Появится время спаяю новую плату (как на сайте).

  32. nochnoi_pytnik

    девайс работает отлично, спасибо, давно хотел собрать такое устройство

  33. maksmkv

    Всем привет. Есть ли у кого схема и код на си для подключения контроллера 2313A-PU — очень хочу собрать данный проект. До этого использовал arduino и все работает, но дорогой в итоге проект.Спасибо

  34. AlexRen

    Привет. У меня такая просьба. Сделал устройство с одним реле которое висит на линии «B», то есть линии «A и C» свободные. Хотелось бы подключить бузер с генератором на свободный порт. Можно ли написать в прошивке чтобы при включении порта «B» на порте «A» появилась логическая 1-ца продолжительностью в 1 секунду.

    Спасибо.

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

    Все скоро будет. Уже в отладке полноценное устройство ЗиЧип, в котором все можно будет реализовать.

  36. Drewor

    Помогите пожалуйста. Не могу ввести девайс в режим обучения. Пробовал первую прошивку и 2 модификации — не помогло. Светодиод на пульт реагирует.
    P.S: студент, в этих делах очень слабый. девайс спаял не слишком ровно, и первый раз программировал микроконтроллер.

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

    Ну если светодиод на пульт реагирует уже есть надежда что прошивка записана правильно. С фьюзами порядок? Правильно установил? А что с модами у которых обучение по замыканию на землю включается?

  38. Drewor

    Моди пробивал, не помогло. Програмыровал черег прог. Громова и юнипрог, фюзы ставыл как у вас.

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

    Тоесть на кнопку пульта наживаешь светодиод отзывается но сколько не держи не выходит «по истечении 10 секунд замерцает индикаторный светодиод – устройство перешло в режим изучения»?

  40. Drewor

    @GetChiper
    Извините что долго. Перепаял, НЕ реагирует на пульт … переставили плетни на старую плату там тоже НЕ витит. Пошол купил новую штукатурки, тоже нет реакции. может програмирую плохо? пробовал тестовую прошивку — диод моргали как надо.

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

    даже не знаю что и посоветовать… конструкция не раз повторялась, было сделано много модов — таких проблем не возникало …

  42. triac

    @GetChiper Собрал ,прошил .Индикаторный св .диод мигает с частотой 2 раза в сек.не останавливаясь . В чем причина.Ни на что не реагирует .Фьюзы ставил согласно
    http://payalo.at.ua/c_fuse/calc.html?part=ATtiny13A . неужели из-за индекса А в названии микро

  43. triac

    @GetChiper Почему в одном итом же ваианте разные прошивки
    076-T13-IR-to-Pin.hex v2.0 и 071-T13-IR-to-UART-1B.hex

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

    По фьюзам http://www.getchip.net/posts/068-kak-pravilno-proshit-avr-fyuzy-fuse-bit/
    я не знаю как Вы выставили правильно или нет так как в разных программах для программирования есть варианты.

    Из-за индекса А ничего не случится — все должно нормально работать.

    triac :

    @GetChiper Почему в одном итом же ваианте разные прошивки
    076-T13-IR-to-Pin.hex v2.0 и 071-T13-IR-to-UART-1B.hex

    На этой платке можно реализовать несколько различных устройств — приведенные прошивки — это разные устройства 071-T13-IR-to-UART-1B.hex — описана в статье http://www.getchip.net/posts/071-preobrazovatel-ir-signalov-ot-pultov-v-uart/

  45. triac

    Перелопатил все форумы по этому изделию.Перепробовал все конфигурации фьюзов -от ваших до немыслимых ,от прямых -до инверсных. ПРОГрамировал в USBASP V2.0.Хорошо что есть «ДОКТОР» Перепробовал все прошивки.Под лупой раз 5-8 проверил плату и монтаж.;^( Разработал по схеме свой вариант платы с опторазвязкой и реле.НЕидет хоть сдохни .буду пробовать на ATTINY2313.Хотя столько функций не требуется ,но уж очень хоца .;^)

  46. Drewor

    @triac
    Зделаете на ATTINY2313 отпишитесь, а то у меня те же симптоми..все проверил но не работает.

  47. triac

    @GetChiper Сделал
    на ATTINY2313 .Все работает.Получается что чем сложнее тем легче.:^)

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