Устройство этой статьи является, на самом деле, не совсем новым. Оно было сделано и отлажено довольно много времени назад, но я все никак не мог выбраться набрать статью. И вот теперь, когда в разработке новые устройства с применением ZiChip, в перспективе позволяющие более гибко работать с логикой работы, у меня вообще появились сомнения по поводу необходимости публикации этой статьи. Но раз уж устройство собрано, отлажено и работает, решил его показать в блоге. Тем более будет видна разница между подобными устройствами с и без применения ZiChip. Описание будет кратким без подробностей.
Итак, устройство этой статьи является «старшим братом» подобного устройства на ATtiny13 и было создано в ответ на просьбы пользователей по расширению функционала последнего.
Новое устройство умеет:
— работать с 7-ю цифровыми и 2-мя ШИМ – выходами;
— управлять нагрузками, как с пульта, так и с нескольких клавиш на плате;
— запоминать состояние выходов в энергонезависимой памяти и восстанавливать их;
— управляться и выдавать отчеты о выполненных действиях по UART.
Конструкция устройства
В качестве основы для устройства была задействована плата сенсорного драйвера,
соответственно и схема подобная
Прошивка для микроконтроллера
099-T2313-IR-to-PIN.zip (3472 Загрузки)
099-fuse.png (4153 Загрузки)
Напоминаю:Для 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-Tiny2313-IR-to-PIN-schem.zip (2833 Загрузки)
099-source-T2313-IR-to-PIN.zip (2923 Загрузки)