Читал книгу Светодиодные проекты на Arduino
и в главе №2 был предложен проект ночного светильника типа Лампа настроения
. Посмотрел код на с.37 и пришёл к мнению, что чтобы получился хороший интересный проект следует всё улучшить и оптимизировать. После чего у меня получился очень интересный светильник для релаксации.
Данный светильник строится на трёхцветном светодиоде (LED RGB). Который управляется микроконтроллером.
Вначале, при включении светильника, выбираются случайным образом значения цветов. Далее включается светильник, а потом в основном цикле случайным образом происходит плавное увеличение или уменьшение яркости выбранного случайно цвета. В итоге получается, что светильник плавно меняет свой цвет и яркость во всей доступной гамме.
Если освещение яркое, то светильник отключается, а индикаторный светодиод начинает промаргивать, сигнализируя, что светильник включен (микроконтроллер работает). При снижении общего освещения, включается светильник RGB.
Вначале схему собирал на Arduino UNO, которую привожу ниже. Схема простейшая, надеюсь пояснения не нужны.
Потом решил, что код получился небольшой и как бы неразумно тратить микроконтроллер ATMega328P на данный проект и решил попробовать вместить всё в мой любимый микроконтроллер ATTiny24, однако полнофункциональный скетч в этот микроконтроллер не вместился, тогда взял микроконтроллер ATTiny44. Тут код занял примерно половину доступного пространства, можно потом что и добавить при необходимости.
Однако на мой взгляд мне всё же хотелось этот светильник запустить и на ATTiny24. Тогда немного упростил код, убрав отслеживание освещённости. Светильник работает при любом освещении как только его включить. Схема, соответственно, стала проще.
В итоге получилось, что данный проект уже изначально имеет несколько вариантов реализации. Выбирайте какой вам больше подходит. Проект на Arduino UNO подойдёт и для других ардуинок: Arduino Nano, Arduino Pro Mini и т.д.
Как отмечал выше, идея взята из книги Светодиодные проекты на Arduino
, а вот код пришлось писать самому, так как то, что дано в книге, совсем не оптимально.
Скетч написан в трёх вариантах: для Arduino UNO, Arduino ATTiny44, Arduino ATTiny24. Их можно скачать ниже в Приложении
.
Как обычно скетчи хорошо закомментированы, с пониманием проблем не должно быть.
Для начала сделал модуль со светодиодом RGB, который представляет из себя небольшую плату размерами 11 * 11,5 мм. На этой плате установлен светодиод и три планарных резистора по 270 Ом. Припаяны четыре контакта, через которые осуществляется подсоединение к схеме.
Сама конструкция лампы представляет собой небольшое основание в виде куба 50 мм, в котором размещены аккумулятор, выключатель, плата заряда аккумулятора, плата с микроконтроллером и панелька под модуль светодиода RGB. Сверху модуль со светодиодом прикрыт шарообразным белым матовым плафоном от светодиодной лампы (от сгоревшей есть такой диаметром 60 мм)
В данном случае реализована схема №3 на микроконтроллере ATTiny24, без фоторезистора.
Под снятым плафоном виден модуль с RGB светодиодом, который установлен в панельку на плате с микроконтроллером. Аккумулятор установлен вертикально справа.
Крышка крепится на четырёх винтах М3 с потайной головкой.
Модуль заряда аккумулятора самодельный. Над гнездом разъёма miniUSB установлен световод для индикации процесса заряда аккумулятора.
Пробовал записать видео, но качественно пока не получилось... Видеокамера не может передать то, что видит глаз. Всё многообразие переходов цвета плавно из одного в другой.
Материалы для повторения:
Arduino UNO: mralb_led_rgb2.rar2023-03-10
ATTiny24: mralb_attiny24_led_rgb2.rar2023-03-10
ATTiny44: mralb_attiny44_led_rgb2.rar2023-03-10