Цифровой селектор на TINY13 или как я ремонтировал люстру

Однажды вечером ко мне домой наведался друг, причем не один. С люстрой. Вначале я подумал, что это кому-то подарок, но оказалось, что нет. Люстра не работала. Причина оказалось в небольшой «коробочке» с надписью на китайском. Эта вещь работала как селектор: т.к. на люстре были установлены светодиоды и лампы. При первом включении селектор зажигал лишь лампы, при втором лишь светодиоды и при третьем лампы и светодиоды, дальше заново. Разобрав селектор я увидел разорвавшийся конденсатор, установленный как и во многих малогабаритных вещах в качестве гасящего за счет своего реактивного сопротивления. Раз такое дело, то можно предположить, что остальная часть схемы мертва.

Поразмыслив над работой селектора, я решил повторить подобное устройство в кратчайшие сроки, набросав простенькую схемку используя микроконтроллер TINY13.
Микроконтроллер  управляет реле К1-К2 при помощи транзисторов VT1-VT2, собранных по схеме с общим эмиттером.

Реле К1-К2 служат для управления лампами L1-L2 (в моем случае это блоки питания ламп и светодиодов в люстре). Диоды VD1-VD2 защищают транзисторы от броска обратного напряжения в момент отключения реле.

Детали:
IC1 – Attiny 13 (установлена на панельку)
R1-R2 1кОм
K1-K2 реле с катушкой на напряжение 4,5В и одной группой нормально открытых контактов на ток до 4А (были демонтированы из попавшей под руку платы от промышленного контроллера).
VD1-VD2 КД521 либо 1N4007 или аналог.
VT1-VT2 КТ315Б. Выбор транзисторов зависит от величины тока протекающего через обмотки реле K1-K2. В нашем случае ток около 30мА.
В качестве источника питания я использовал бесхозное зарядное устройство от сотового телефона.

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

К примеру, подаем питание на микроконтроллер и считываем содержимое ячейки памяти с определенным адресом. Полученное число сравниваем с числами 1, 2 и 3. Если содержимое равно 1, то подаем на порт PB3 логическую единицу, увеличиваем содержимое ячейки на единицу (1+1) и сохраняем с прежним адресом. Теперь при последующем включении мы считаем из ячейки число 2, выдадим при этом логическую единицу на порт  PB4 и увеличим значение на единицу (2+1). Теперь если снова подать питание, то из ячейки считаем число 3, при котором включим оба порта PB3 и PB4, и сохраним в ячейку памяти число 1. Дальше цикл продолжится аналогично.

Программа для микроконтроллера, а так же ее отладка проводилась в среде Flowcode v.4.3.6.61. Сама программа достаточно проста и выглядит следующим образом:

На рисунке виден зажженный светодиод, подключенный к PB3 и сохраненное число 2 в  EEPROM ячейке с адресом 7. Если теперь снова запустить симуляцию, то результат будет немного другим:

Теперь горит светодиод, подключенный к PB4, а в ячейке по адресу 7 сохранено число 3.
Полностью убедившись в правильной работе, прошиваем микроконтроллер программатором ТРИТОН, заранее выставив FUSE-биты:

Собранное устройство:

Установка в люстру:

Проверка работы:

Горят светодиоды и лампы.

Ниже вы можете скачать прошивку и проект в Flowcode


Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

IC1
МК AVR 8-битATtiny131
VT1, VT2
Биполярный транзисторКТ315Б2
VD1, VD2
ДиодКД521А2
1N4007R1, R2
Резистор1 кОм2
К1, К2
Реле2
J1
Разьем для подключения питания 5 В1
L1, L2
Лампочка220 В2
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

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

Ваш адрес email не будет опубликован.