099-Расширенное управление нагрузками при помощи ИК пульта на ATtiny2313.

Автор: | 05.08.2013

Устройство этой статьи является, на самом деле, не совсем новым. Оно было сделано и отлажено довольно много времени назад, но я все никак не мог выбраться набрать статью. И вот теперь, когда в разработке новые устройства с применением ZiChip, в перспективе позволяющие более гибко работать с логикой работы, у меня вообще появились сомнения по поводу необходимости публикации этой статьи. Но раз уж устройство собрано, отлажено и работает, решил его показать в блоге. Тем более будет видна разница между подобными устройствами с и без применения ZiChip. Описание будет кратким без подробностей.

Итак, устройство этой статьи является «старшим братом» подобного устройства на ATtiny13 и было создано в ответ на просьбы пользователей по расширению функционала последнего.


Новое устройство умеет:
— работать с 7-ю цифровыми и 2-мя ШИМ – выходами;
— управлять нагрузками, как с пульта, так и с нескольких клавиш на плате;
— запоминать состояние выходов в энергонезависимой памяти и восстанавливать их;
— управляться и выдавать отчеты о выполненных действиях по UART.


Конструкция устройства
В качестве основы для устройства была задействована плата сенсорного драйвера,

соответственно и схема подобная

Прошивка для микроконтроллера
099-T2313-IR-to-PIN.hex - Прошивка IR управления для ATtiny2313
099-fuse.png - Фьюзы для ATtiny2313
Напоминаю:Для Algorithm Builder и UniProf галочки ставятся как на картинке.

Для PonyProg, AVR Studio, SinaProg галочки ставятся инверсно.
Как программировать микроконтроллеры читаем в FAQ.


Изучение кнопок пульта
— производится аналогично устройству на ATtiny13 – режим обучения включается по длительному зажатию кнопки пульта.


Последовательность изучения кнопок пульта следующая:
1 Увеличение H
2 Уменьшение H
3 Увеличение I
4 Уменьшение I
5 Включение/отключение A
6 Включение/отключение B
7 Включение/отключение C
8 Включение/отключение D
9 Включение/отключение E
10 Включение/отключение F
11 Включение/отключение G
12 Все выключить
13 Все включить
14 Сохранить 1
15 Восстановить 1
16 Сохранить 2
17 Восстановить 2
Если какая-либо из команд не нужна – нужно нажимать уже изученную клавишу.


Устройство имеет расширенный перечень команд и любое действие с выходами можно произвести через UART.

Настройки UART
Скорость передачи – 9600;
Количество бит данных – 8;
Бит четности – нет;
Количество стоп-бит – 1.


Действия по командам UART:
x0 — выключение нагрузки x,
где x может быть от A до G (например «B0» — отключение второй нагрузки);
x1 — включение нагрузки x,
где x может быть от A до G (например «C1» — включение третей нагрузки);
Hy — изменение уровня (ШИМ) на нагрузке Н,
где y может быть (бинарное однобайтовое значение) от 0-(выключено) до 255-(максимум);
Iy — изменение уровня (ШИМ) на нагрузке I,
где у может быть (бинарное однобайтовое значение) от 0-(выключено) до 255-(максимум);
=0 — выключить все;
=1 — включить все;
[0 — запомнить состояние нагрузок в ячейку 1;
[1 — восстановить состояние нагрузок из ячейки 1;
{0 — запомнить состояние нагрузок в ячейку 2;
{1 — восстановить состояние нагрузок из ячейки 2;
? — выдать по UART текущего состояния нагрузок
формат выданной посылки будет иметь вид «A1B0C0D0E1F0HхIх»,
где A1 — включена нагрузка A, A0 — выключена нагрузка A (и так для остальных цифровых выходов)
Hx и Ix — уровень на аналоговых выходах H и I, (x — бинарное однобайтовое значение 0-255).


При выполнении действий с пульта или кнопок, по UART выдаются коды команд:
A G — переключение нагрузок соответственно A – G;
H и h – соответственно, увеличение и уменьшение аналогового канала H;
I и i – соответственно, увеличение и уменьшение аналогового канала I;
1 — все включить;
0 — все выключить;
s — запомнить состояние в ячейку 1;
r — восстановить из ячейки 1;
S — запомнить состояние в ячейку 2;
R — восстановить из ячейки 2.


Данное устройство уже было опробовано в действии пользователем MechanicCDRR – отзывы положительные. Если решите попробовать и Вы – жду обратной связи.


Материалы читателей блога.

1 Платка от Алексея

099_PCB.zip - Плата в диптрейсе от Алексея


Файлы статьи:
099-T2313-IR-to-PIN.hex - Прошивка IR управления для ATtiny2313
099-fuse.png - Фьюзы для ATtiny2313 
099-Tiny2313-IR-to-PIN-schem.spl7 - Схема IR to PIN в Сплане
099-source-T2313-IR-to-PIN.zip - Исходник IR to PIN в Билдере

(Visited 4 398 times, 16 visits today)

099-Расширенное управление нагрузками при помощи ИК пульта на ATtiny2313.: 143 комментария

  1. Juris

    Спасибо за новую конструкцию! Не будет ли конфликт удержания +/- изменения PWM и собственно долгого нажатия при обучении? Или изменение PWM тут «пошаговое», многими нажатиями нужной кнопки?

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

    Нет изменение не пошаговое, а непрерывное пока удерживаешь кнопку, но
    чтобы вызвать режим обучения нужно удерживать кнопку довольно продолжительное время — порядка 10 сек. ШИМ уровень с минимума до максимума увеличивается значительно быстрей.

  3. xedory

    Как всегда все на высоте =)))
    Молодцы, область применения просто безгранично = ))
    Есть вопросик, Как выходы ШИМ примудрить к лампочке Иллича 220В ???

  4. andreychirva

    Устройство просто супер.Спасибо Вам за проделанную работу.Хотел узнать,а можно вход в режим обучения увеличить до 30 секунд?

  5. Maik

    xedory :
    Как всегда все на высоте =)))
    Молодцы, область применения просто безгранично = ))
    Есть вопросик, Как выходы ШИМ примудрить к лампочке Иллича 220В ???

    Всё очень просто, ставите S216S02F и не только лампочку Ильича, любую нагрузку до 16 Ампер. Очень компактно и удобно!

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

    andreychirva :

    Устройство просто супер.Спасибо Вам за проделанную работу.Хотел узнать,а можно вход в режим обучения увеличить до 30 секунд?

    Можно, наверное.

  7. xedory

    Maik :

    xedory :
    Как всегда все на высоте =)))
    Молодцы, область применения просто безгранично = ))
    Есть вопросик, Как выходы ШИМ примудрить к лампочке Иллича 220В ???

    Всё очень просто, ставите S216S02F и не только лампочку Ильича, любую нагрузку до 16 Ампер. Очень компактно и удобно!

    Очень хорошо, но очень дорого 64 грн за 1 шт. = ))
    Может чтото по-дешевле , я с таким еще не сталкивался = (((

  8. Maik

    xedory :

    Maik :

    xedory :
    Как всегда все на высоте =)))
    Молодцы, область применения просто безгранично = ))
    Есть вопросик, Как выходы ШИМ примудрить к лампочке Иллича 220В ???

    Всё очень просто, ставите S216S02F и не только лампочку Ильича, любую нагрузку до 16 Ампер. Очень компактно и удобно!

    Очень хорошо, но очень дорого 64 грн за 1 шт. = ))
    Может чтото по-дешевле , я с таким еще не сталкивался = (((

    Тогда оптронная развязка и симистор, проще не придумаешь…!

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

    Не получится ШИМом диммировать нагрузку 220В — принцип работы не тот. Для управления симистором нужно регулировать фазу импульса, а в ШИМ — регулируется длительность.

  10. andreychirva

    GetChiper :
    Не получится ШИМом диммировать нагрузку 220В – принцип работы не тот. Для управления симистором нужно регулировать фазу импульса, а в ШИМ – регулируется длительность.

    А светодиодную ленту получится димировать?

  11. andreychirva

    Буду делать на полевиках. Хотел Вас попросить,если будет мод на устройство,то можно сделать канал А и В без защелки и вход в режим обучения секунд 30 ? Спасибо.

  12. ZiB

    @andreychirva
    Чуть-чуть подождите, скоро сами сможете править почти все параметры устройства.

  13. xedory

    ZiB :
    @andreychirva
    Чуть-чуть подождите, скоро сами сможете править почти все параметры устройства.

    было бы не плохо… програмировать не умеем, но если бы вы подсказали в какой строке что на что заменить , думаю было бы просто восхитительно = ))

  14. ZiB

    @xedory
    Не, там другой принцип 🙂 Возможно с первого захода будет не очень, но в целом вроде хорошо получилось. Евгений усердно пишет новые заметки по этому делу.

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

    Да приходится пахать сразу на несколько фронтов 🙂
    — писать статьи описания
    — доделывать прошивку для железа
    — параллельно вносить коррективы в программу для ПК
    — и еще на ходу придумать новые плюшки.

    Появится что-то презентабельное еще нужно будет обкатка и доводка (этим попрошу заняться всем кто захочет поучаствовать).

  16. ZiB

    @GetChiper
    Старайся, юбилейная статья должна быть хорошей 🙂 (100 запись)

  17. aleks1104

    простите но что такое IR-LED

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

    В данной схеме инфракрасный светодиод не задействован — там стоит обычный.

  19. aleks1104

    Спасибо, поеду по детали, как собиру отпишусь

  20. Maik

    GetChiper :
    Не получится ШИМом диммировать нагрузку 220В – принцип работы не тот. Для управления симистором нужно регулировать фазу импульса, а в ШИМ – регулируется длительность.

    Если светодиоды можно диммировать, тогда какая разница, ведь в оптроне стоит тот же самый светодиод и он прекрасно диммируется, а стало быть симистор будет плавно управлять нагрузкой. Специально собрал и опробовал,- результат превосходный! Всё прекрасно работает.

  21. xedory

    Все отлично работает! Спаял протестировал, ГУД = ))
    Если кому-то интересно дальность управление прибором при прямой видимости примерно 18 метров… Сам в шоке =) но Все отлично работает, Огромное спасибо Авторам = )) СПАСИБО!..

  22. aleks1104

    Комп накрылся никак не прошить мк

  23. Maik

    xedory :
    Все отлично работает! Спаял протестировал, ГУД = ))
    Если кому-то интересно дальность управление прибором при прямой видимости примерно 18 метров… Сам в шоке =) но Все отлично работает, Огромное спасибо Авторам = )) СПАСИБО!..

    Простите уважаемый, а какие фьюзы Вы выставляли при прошивке? Дело в том, что у меня устройство некоторым образом глючит, а именно: при нажатии кнопки, которая должна включать — выключать один из каналов, может включить абсолютно всё и при этом на ШИМ выходах светодиоды светятся вполнакала, или же при увеличении, уменьшении яркости, может включиться какой нибудь цифровой канал. Пульт у меня LG GOLDSTAR, фьюзы выставил как на картинке,- не могу понять, в чём тут дело?! Если Вас не затруднит,- поделитесь информацией, буду премного благодарен!

  24. xedory

    Maik :

    xedory :
    Все отлично работает! Спаял протестировал, ГУД = ))
    Если кому-то интересно дальность управление прибором при прямой видимости примерно 18 метров… Сам в шоке =) но Все отлично работает, Огромное спасибо Авторам = )) СПАСИБО!..

    Простите уважаемый, а какие фьюзы Вы выставляли при прошивке? Дело в том, что у меня устройство некоторым образом глючит, а именно: при нажатии кнопки, которая должна включать – выключать один из каналов, может включить абсолютно всё и при этом на ШИМ выходах светодиоды светятся вполнакала, или же при увеличении, уменьшении яркости, может включиться какой нибудь цифровой канал. Пульт у меня LG GOLDSTAR, фьюзы выставил как на картинке,- не могу понять, в чём тут дело?! Если Вас не затруднит,- поделитесь информацией, буду премного благодарен!

    Привет! Фьюзи у меня такие low: E4 high:9F Ex: FF
    Может пульт поменяй, проверь плату на КЗ, или от флюса почистить надо =)
    Что именно интересует??? У меня шим работает отличто!

  25. Mr.Trigger

    Спасибо большое, уважаемый GetChiper,вы в очередной раз порадовали всех результатом своих трудов.
    После сборки устройства возникла пара вопросов:
    1 — Каковы параметры УАРТА?
    2 — В сравнении с устройством на ATtiny13 вы сделали доработку в приеме сигнала пульта,а точнее — после длительного нажатия какой- либо кнопки девайс перестает реагировать на нее, те статусный светодиод гаснет, хотя передача идет. Соответственно перепрограммирование девайса становится невозможным. Это баг или только я словил такую печальку?

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

    UART
    Скорость передачи – 9600;
    Количество бит данных – 8;
    Бит четности – нет;
    Количество стоп-бит – 1.

    По проблеме №2. Первый раз перепрограммируется как надо, а на второе длительное зажатие устройство зависает? так?

  27. Mr.Trigger

    Проблема локализована: те клавиши пульта, которые уже «забиндины»,уже не могут быть использованы для входа в режим перепрограммирования.

    Кстати маленькое дополнение по поводу девайса 076 на ATtiny13: У меня он контролирует освещение в комнате (ЛДС) и коридоре,суть проблемы такова — с ламп идут наводки, порой очень сильные в 1 минуту после включения, вызывая сначала рандомное переключение каналов(При этом кнопки пульта забывает,ощущение что EEPROM перезаписывается шлаком) ,после вообще перестает на что либо реагировать. Спасает только «козырёк» на датчик.
    Такая реакция — для стандартной прошивки и для Модиф.2. С джампером прошивку не тестировал.

    Я понимаю, что ЛДС создает помехи, но не думал , что вызывает такое неадекватное поведение. Полагаю для вас важна подобная информация.

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

    Уже новые устройства будут лучше защищены от помех, так как алгоритм уже я улучшил.

  29. zevs

    Здравствуйте.
    Помогите поправить прошивку чтобы при нажатии и небольшом удержании на выбранный канал например А он нажимался а при отпускании кнопки отпускался.
    Хочу сделать управление МР3 плеером.

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

    Только если Вас устроит на АТмега48 или 88.

  31. zevs

    Да на АТмега48 вполне устроит и если можно схему, а почему некоторые пульты не корректно работают, от RGB ленты (китайский пульт) работает отлично, а от телевизора работает не очень то вкл. сразу несколько разных каналов то дублирует их, пробовал много раз программировать этот пульт результатов нет. другие пульты не пробовал.

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

    Если возьметесь собирать на АТмега48, то думаю проблем таких не будет с пуьтами.
    Я предлагаю Вам быть первопроходцев в создании базового устройства ZiChip! 😉

    Описание, схема и все что нужно для него здесь http://zichip.net/posts/category/257-base-atmega48

    Создайте новую тему на форуме http://forum.getchip.net/viewforum.php?f=30
    где опишите что должно делать устройство (техзадание).

    На форуме я буду, если что не понятно, помогать. Вместе у нас все получится!

  33. Mail

    Добрый вечер.Подскажите ,какая максимальная длинна линии Rx Tx возможна.Скажем может провод экранировать…

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

    Если не ошибаюсь спецификация UART ограничивает длину линии до 50м. Чем меньше скорость UART тем более надежна передача.

  35. ramzes1903

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

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

    Такого видео вопроса в блоге еще не было. Здорово! 🙂

    После Нового года сделаю модификацию. А пока опиши все подробно в созданном мною топике в разделе модификаций — чтобы я после праздников сразу видел что делать.
    http://www.forum.getchip.net/viewtopic.php?f=24&t=438

  37. LEXX_64

    С Новым годом господа изобретатели.Повторил ваш Мод#099. понравился.Несколько дней поигрался с ним.И теперь появилась просьба. 1) если есть возможность изменить способ обучения пульта ДУ закорачиванием на землю выв.7. 2) Так как устройство автономно и UART не нужен к выв.2 и выв.3 подключить светодиоды индицирующие работу режимов «ВОССТАНОВИТЬ ИЗ ПАМЯТИ 1» и «ВОССТАНОВИТЬ ИЗ ПАМЯТИ 2». алгоритм таков: в исходном состоянии (т.е. всё выключено) на выв.2 и выв.3 логические 0. при нажатии на кнопки «ВОССТАНОВИТЬ ИЗ ПАМЯТИ 1″ или»ВОССТАНОВИТЬ ИЗ ПАМЯТИ 2» или при подаче соответствующей команды с пульта ДУ зажигается соответствующий светодиод (появляется уровень лог.1).Вот и всё.А в общем спасибо вам.полезные штуки разрабатываете.

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

    Посмотрю как это можно сделать.

  39. Behaim

    С Новым Годом! Скажите пожалуста скольки метровая у Вас гирлянда (кол-во диодов)? И ещё, если не трудно, помогите. Перестала работать оригинальная 4-х канальная гирлянда. Мост целый, на тиристоры пока не грешу (2 канала горят в пол-накала, 2 — молчат). Неужели проц.? Что-то можно сделать или только использовать «донором». Спасибо.

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

    Донорами моей гирлянды были 4 гирлянды по 4 метра и 100 светодиодов.

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

  41. LEXX_64

    Добрый вечер.Уважаемый GetChiper. Извините что беспокою.Я снова по поводу просьбы об изменениях в прошивки… Это вообще реально сделать или лучше мне поискать что-то аналогичное? Просто действительно очень нужно. а сам в программировании мягко говоря не силён.

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

    Сделать реально. Постараюсь сделать в ближайшее время. Катастрофически времени не хватает 🙁

  43. ramzes1903

    GetChiper :
    Сделать реально. Постараюсь сделать в ближайшее время. Катастрофически времени не хватает

    LEXX_64 :
    Добрый вечер.Уважаемый GetChiper. Извините что беспокою.Я снова по поводу просьбы об изменениях в прошивки… Это вообще реально сделать или лучше мне поискать что-то аналогичное? Просто действительно очень нужно. а сам в программировании мягко говоря не силён.

    в порядке очереди .

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

    Помню, не забыл 🙂

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

    Занялся изменениями.

  46. LEXX_64

    Спасибо. Удачи во всех начинаниях!

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