Новый год не за горами, а ёлка должна быть украшена красиво и со вкусом. Так как обычные гирлянды уже сидели в печёнках, ибо они все одинаковые и в который раз я такую же ёлку видеть не хотел, решил замутить себе супер-пупер гирлянду. В итоге получилось вот такое чудо: https://youtu.be/oyXzSzG7FVA
Решил я её делать на адресной светодиодной ленте WS2812B и ардуинке, ибо просто и удобно. Примерный прайс-лист ниже:
Arduino Nano (ATMega168) - $3
Лента, 1 метр (30 светодиодов на метр) - $4
Рассыпуха (резистор 100 Ом, конденсатор 6.3 В 1000 мкФ, предохранитель 3А, диод 1n5817, потенциометр 10 кОм, кнопка) - $2
Можно паять навесом, можно на плате. Цену текстолита включать не буду, ибо везде всё очень по-разному. Так же я предполагаю наличие у вас припоя, флюса, паяльника, мини-дрели и прямых рук.
Итак, компоненты закуплены и вы полностью готовы к работе. Начинаем, как водится, с печатной платы. Всё, что вам нужно для повторения лежит здесь - https://easyeda.com/artem_4690/Beautiful-lights
Экспортируем плату (зеркальное отражение не нужно!) и следуем чудесному туториалу, который для нас сделал небезызвестный @AlexGyver - https://youtu.be/NJTeIALlztI
На схеме диод D1 нужен, чтобы при прошивке ардуинки лента не вздумала запитаться от пина 5V, ибо чревато сожжением чего угодно, начиная от самой ардуинки и заканчивая USB-портом компьютера. Резистор R1 необходим для защиты логического пина для длинных кусков ленты. Конденсатор C1 является буфером электрической энергии, если лента попытается сожрать слишком большой ток. Предохранитель F1 используется, как ни странно, для предохранения - я брал на 3 ампера. Его, как и C1, можно исключить из схемы, заменив на кусок провода, если вы уверены в собственном источнике питания и в прямоте своих рук. К пину A0 подходит своеобразная антенна - она нужна, чтобы генерация случайных чисел была более случайной (масло масленное), зерном для генерации служат радиошумы.
Расчёт блока питания элементарен. Если ваша лента имеет 30 светодиодов на метр, то расчитывайте её потребление исходя из того, что такая лента жрёт 7.5 Вт/метр. При пяти вольтах питания это означает, что максимальный потребляемый ток - примерно 1.5 ампера. Из этого следует, что один метр такой гирлянды можно будет запитать от обычного зярядника для телефона.
Переключение режимов сделано по нажатию на кнопку, а подстройка яркости - с помощью ручки потенциометра. Всего режимов восемь - радуга, подсветка со сменой цвета, "мечта эпилептика", бегущий пиксель, "звёздочки", сортировка пузырьком по цвету, "стек пикселей" и плавное изменение цвета случайного пикселя на противоположный. Все желающие могут дописывать свои режимы, это достаточно просто, если прочитаете код - сразу всё поймёте.
Все входы/выходы на плате подписаны, если будете внимательны - не ошибётесь.
Если захотите - я разведу плату под голую ATMega168 или ATTiny13.
Прошивку на ардуинку можно скачать там же, найдите "source.zip" во вложениях.
Настройка номеров режимов осуществляется в файле "modes.h", а указание пинов, количества светодиодов и прочих настроек отображения - в файле "settings.h".
Не стесняйтесь уведомлять о багах и недоработках, пишите мне на почту, например - artem@bigdan.in
Возможно, я буду выкладывать и другие свои проекты когда-нибудь. Но это не точно.