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

Изучение кнопок пульта
- производится аналогична статье http://cxema.my1.ru/publ/skhemy_ustrojstv_na_mikrokontrollerakh/ustrojstva_na_mk/upravlenie_nagruzkami_pri_pomoshhi_ir_pulta_attiny13/29-1-0-2233 по длительному зажатию кнопки пульта.
Последовательность изучения кнопок пульта следующая:
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 – отзывы положительные. Если решите попробовать и Вы – жду обратной связи.
Прошивка для микроконтроллера
099-T2313-IR-to-PIN.hex - Прошивка IR управления для ATtiny2313
099-fuse.png - Фьюзы для ATtiny2313
Напоминаю: Для Algorithm Builder и UniProf галочки ставятся как на картинке.

Для PonyProg, AVR Studio, SinaProg галочки ставятся инверсно.
Файлы к статье Расширенное управление нагрузками при помощи ИК пульта на ATtiny2313.