Цифровий селектор на 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-біт |
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 |
Прикреплені файли:
- lustra.rar (2 Кб)