Могу предположить, что большинство из читающих эту статью, имеют похожий светильник и я по своему опыту могу сказать, что без него как без рук, тем более если зрение не 100%.
Моему светильнику уже больше 13 лет и за эти годы я уже много раз сменил в нем газоразрядный элемент в виде кольца, диаметром 120 мм.
А так как весь мир уже перешел на светодиоды, то моя лампа морально устарела и ждала своего звездного часа. Но выкидывать ее мне было жалко, а купить новую не позволял засевший внутри меня Плюшкин. И вот в один прекрасный день в светильнике очередной раз вышла из строя люминесцентная лампа. Погуглив в интернете я выяснил, что стоимость такой люминесцентной лампы сопоставима со стоимостью светодиодного кольца. После чего я принял окончательное решение модернизировать свой светильник. К тому же у китайцев большой выбор и всегда можно подобрать требуемый мне размер светодиодного элемента.
Сначала я хотел обойтись простой переделкой, без каких либо микроконтроллеров и использовать подходящие мне по размеру ангельские глазки, от легкового автомобиля. Но как в последствии оказалось у них температура цвета слишком сильно смещена в сторону синего и их свечение сильно раздражает глаза и искажает цвета предметов которые она освещает. По этому я заказал светодиодное кольцо на адресных светодиодах ws2812 и не пожалел, так как получил от него много плюсов. При его использовании можно регулировать температуру цвета, подсвечивать разными цветами сцены для фото-видео съемки, регулировать яркость и угол падения света на рассматриваемые объекты, использовать лампу в качестве отладочного устройства, программировать и сразу проверять разные световые эффекты, а для снятия усталости можно расслабиться под имитацию костра.
Управление светильником я решил сделать при помощи инкрементального энкодера EC11.
На светодиодном кольце установлено 45 светодиодов WS2812B.
Контроллер хотел использовать ESP8266. Что бы была возможность управлять лампой по Wi-Fi, но потом подумал что такая функция мне не пригодится и решил использовать микроконтроллер Ардуино Нано. Подключаться лампа будет через USB разъем, и в этом есть несколько плюсов. Лампу можно будет подключать к любому ПК или к любым зарядным устройствам от мобильных телефонов, а если пропадет энергоснабжение, то ее можно подключить к Power Bank и использовать как переносной светильник.
Для подключения светодиодного кольца я использовал родные четыре провода которые уже были проложены в ножке светильника и раньше питали люминесцентную лампу. Гасящие дребезг конденсаторы, припаял к контактом энкодера. А сам энкодер прикрутил к корпусу светильника. После чего припаял к Ардуино все провода и приклеил его термоклеем к подошве настольной лампы.
Светодиодное кольцо, что бы не болталось, закрепил тем же термоклеем. В корпусе светильника гравировальной машинкой проделал отверстие для micro-USB разъема. Теперь все скручиваю и перехожу к программированию Arduino.
Используемые в схеме компоненты
Arduino — 1 шт.
Энкодер — 1 шт.
Конденсаторы 0,1 мкФ — 1 шт.
Кольцо на 45 светодиодов — 1 шт.
Скачать на скетч с библиотекой
При написании кода я обнаружил, что ни один из готовых обработчиков энкодера мне не подходит по разным причинам. Есть много разных примеров, но они либо работают криво, либо не используют весь возможный функционал. Пришлось написать свой обработчик. Об этом я написал ранее небольшую статью про него.
Перед прошивкой микроконтроллера обратите внимание на следующие строки настроек, которые будут установлены по умолчанию
temp_color_start — температура цвета по умолчанию изменяется в сторону синего от 127 до 255 и в сторону красного от 127 до 0
bright_start — яркость при подключении питания на светильник. пределы от 1 до 255
bright_step — шаг наращивания яркости. На сколько будет увеличена или уменьшена яркость при каждом повороте на 1 щелчок энкодера.
btn_long_push — это время длинного нажатия кнопки. Для того, что бы светильник ушел в сон. минимум 1000 мс
Обработчик энкодера может отрабатывать следующие функции:
«Нажатие» — переключает режимы светильника. Режимы переключаются последовательно друг за другом и циклически, то есть поле последнего режима включится первый и так далее по кругу.
«Вращение без нажатия» — управляет регулировкой яркости, плавность изменения яркости можно менять в настройках скетча, Но нужно при этом принять во внимание, что чем плавней регулировка, тем больше придется вращать ручку энкодера.
«Вращение с нажатием» -в зависимости от выбранного режима, может иметь разный функционал, но как правило это частота, скорость, температура цвета или количество светодиодов в эффекте.
«Длинное нажатие» — выключает свет и отправляет микроконтроллер в глубокий сон, выход из из которого лучше всего осуществлять вращением энкодера. Можно так же использовать нажатие, но при этом при выходе из сна светильник переключится на следующий режим.
Спасибо, что дочитали до конца!
Надеюсь, эта статья вам понравилась и вы сможете воспользоваться моей наработкой в своих проектах.
Если у Вас остались вопросы и замечания, то можете задать их в комментариях. Я с удовольствием на них отвечу.