Цифровий селектор на TINY13 або модернізація люстри

Одного вечора до мене додому завітав друг, причому не один. З люстрою. Спочатку я подумав, що це комусь подарунок, але виявилось, що ні. Люстра не працювала. Причина виявилась у невеликій "коробочці" з написом китайською. Ця річ працювала як селектор: оскільки на люстрі були встановлені світлодіоди та лампи. При першому вмиканні селектор запалював тільки лампи, при другому - тільки світлодіоди, а при третьому - лампи та світлодіоди, і далі знову. Розібравши селектор, я побачив порваний конденсатор, встановлений, як і в багатьох малогабаритних речах, в якості гасника за рахунок свого реактивного опору. Раз таке діло, то можна припустити, що решта частини схеми мертва.

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

Реле К1-К2 служать для керування лампами L1-L2 (в моєму випадку це блоки живлення ламп і світлодіодів у люстрі). Діоди VD1-VD2 захищають транзистори від стрибка зворотної напруги в момент вимкнення реле.

Схема цифрового селектора на TINY13

Деталі:
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. Сама програма досить проста і виглядає наступним чином:

Проект в Flowcode

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

Проект в Flowcode

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

Фьюзы

Зібране пристрій:

Фото плати

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

Внутрішності люстри

Перевірка роботи:

Люстра

Горять світлодіоди та лампи.

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

Список радіоелементів

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

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

Top