Лампа настроения (mood lamp) является RGB лампой, которая меняет цвет в
случайном порядке. Была зеленая, плавно стала голубой, потом
фиолетовой… какого цвета она станет в следующий момент времени не знает
никто)
Купить такую проблематично, сделаем ее сами!)
Данная лампа проста по устройству и станет отличным сувениром. Использованные компоненты:
Лампа GRONO из магазина IKEA. (299р.)
микроконтроллер ATMEGA8-16PU (66р.)
RGB светодиод KAD1-9090BRGC-01/3 star (273р.)
транзистор BUZ11 (3*27р)
различная мелочевка (три 1W резистора, один 10К подтягивающий резистор, колодка для ISP, микросхема-стабилизатор 7805) В качестве источника света использован мощный RGB
светодиод. Мощность каждой цветовой составляющей 1Вт. Подробности можно
посмотреть в даташите. Светодиод был найден и куплен в Промэлектронике
(promelec.ru).
Схема лампы:
Для упрощения линии питания, стабилизатор и колодка ISP на схеме не
показаны. Транзисторы подключены к выходам каналов ШИМ. Таких каналов в
микроконтроллере три.
Готовая плата:
Алгоритм работы следующий. Генерируется случайным образом цвет (три
char переменные). Если все три значения примерно одинаковы, то на
выходе у нас будет белый цвет, что неинтересно, поэтому процесс
случайного выбора цвета повторяется. Когда получен цвет с вероятностью
0,5 будет погашен один из каналов (что бы чаще появлялись чистые R, G
или B цвета.) Затем вычисляется величина прибавки, что бы за 255 шагов
прийти к заданному цвету. После этого случайным образом выясняется
скорость ухода к новому цвету (от 5 до 10 сек). Ну а затем за счет
приращения значения в регистрах ШИМ плавно приходим к сгенерированному
цвету. Подержав цвет какое то время цикл повторяется. И так до
бесконечности.
Лампа в действии:
Исходный код можно посмотреть тут (Написан в CodeVisionAVR)
У микроконтроллера переключить FUSE биты что бы тактовая частота была 8 МГц от встроенной RC цепочки.
Что бы я исправил:
1) вынес бы стабилизатор за пределы лампы, он греется и требует крупного радиатора
2) использовал бы мелкие транзисторы и микроконтроллер бы запаивал бы
сразу в плату. Тогда бы уменьшились габариты платы и она влезла бы в
нишу под лампой.
Простор для творчества:
У микроконтроллера осталось много неиспользованных ног, а также не
задействован USART. Можно добавить в плату конвертер уровней MAX232 и
можно будет подключить лампу к COM порту компьютера. (А если
использовать FT232 то к USB). Тогда написав соотвествующее ПО можно
сделать так что бы например при поступлении новой почты лампа мигала
красным. Или например сделать продвинутую ambilight.