Новий Рік, гірлянда, arduino

Почав вивчати тему розумних будинків, прийшов до Arduino і виникла необхідність потренуватися на кішках. А тут як раз Новий Рік наступає… ясна Річ, будемо робити десятиканальную гірлянду. З паяльником з дитячих цветомузыкальных часів, в принципі, дружний, але останні 20 років займався все більше програмуванням.

В основному, комплектуючі купувалися на ebay. Деякі, в місцевому радіомагазині, але в магазині вони в 2-3 рази дорожче. Китайці рулять.

Почав з малювання схеми та трасування плати. Подивився кілька програм, зупинився на CadSoft Eagle. Якщо розібратися з управлінням, все що треба робить. Автотрассировка проявила себе — абсолютно нелогічне розміщення деталей і незліченні переходи між шарами. В результаті намалював схему в Eagle Schematic, трасування робив вручну в Eagle Board — всі деталі вже були з'єднані лініями, залишалося тільки розмістити куди треба і намалювати доріжки. Після деякої практики все досить зручно.

Вивчив як зараз труять плати, метод принтера — праски не вразив взагалі.
Купив в магазині текстоліт з позитивним фоторезистом, надрукував плату на плівці (без інверсії), наклав плівку на текстоліт, проэкспонировал дві з половиною хвилини в солярії, виявив у 1,5% розчині гідроксиду натрію(NaOH) і протравил у 30% розчині хлорного заліза (FeCl3).

Результат — казка! Все дуже чітке, дрібні літери залишилися на своїх місцях. Далі луди, паяємо.



Як вже писалося на Хабре, щоб програмувати Arduino Pro Mini без танців з бубном, треба купувати правильний USB to TTL модуль UART з піном DTR.

Логіка програми: одна гілка гірлянди(24 діода) — один біт, тобто стан десяти гілок задається десятьма бітами числа (0 — все вимкнено, 2^10-1 — все включено).
Є деяка кількість шаблонів перемикання. При подачі живлення програма починає перебирати шаблони у випадковому порядку.

— При короткому натисканні кнопки відбувається перехід на повністю випадкове включення кожної гілки.
— Середнє натискання кнопки змінює в циклі кратність затримки, тобто базова затримка 500мс множиться на 1-3.
— Довге натискання кнопки переводить девайс в сервісний режим. Спочатку загоряються всі гілки, потім при короткому натисканні кнопки послідовно загоряється кожна.

Довго тупил в стандартну функцію зведення в ступінь pow() — повертала зовсім не те, що очікувалося. Поки не відкрив документацію і не виявив, що в pow() аргументи float, результат double, а непорозуміння виникають при приведенні в int. У підсумку довелося користуватися самописною рекурсивну int power(int, int).

Потім настав пекельний пекло — розпаювання 240 діодів. І у кожного, зауважте, дві ноги. Всього виходить 480. Безумовно, не найбільш ефективно проведений час життя. Ще наступив на граблі з термопістолетом. Він відмінно саджає термоусадку, але при цьому жили витої пари сплавляюся в єдине ціле. Виглядає без пошкоджень, але всі дроти закорочені. Одну гілку повністю переробляв.

В результаті вийшла чудова гірлянда:



Всіх з наступаючим Новим Роком, щастя і здоров'я!

Список використаних деталей:
0. Arduino Pro Mini, 5V, 16M
1. Резистори R11-R20 — 220 кОм, всі інші, в тому числі і токоорганичивающие на LEDы, 220 Ом
3. N-канальний польовий транзистор Q1-Q10 — IRFZ44N. В принципі, струм LED ланцюгах тече невеличкої, транзистори або збірку можна взяти і менш потужні. На 20V харчування і ланцюги з 24 LED, струм 20 мА
4. Блок живлення від ноутбука Dell. Видає +20V
5. Лінійний стабілізатор напруги для живлення 5V Arduino — ST78S05. Сильно гріється, довелося ставити на радіатор.
6. Конденсатори до стабілізатору 220u/35V, 47u/16V
7. 240х LED 5мм + 11х LED 3мм для індикації
8. Кнопка
9. 10м кабелю UTP, який був розрізаний і на його жили паялись діоди.

Processing ісходник

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.