В интернете я нашел очень много интересных идей о том, как сымитировать эффект огня при помощи программируемых светодиодов WS2812c и Ардуино. Я попытался сделать свой собственный ночник, который добавит романтики в комнату.

В каждой инструкции использовались разные комбинации типов светодиодов и микроконтроллеров для них. У всех них были различные недостатки, например, насколько большой может быть огненная лампа, для чего она предназначена и т.д. Мой результат вы увидите ниже. Как и любой свой проект, я не хочу называть его завершённым, так как смотря на него, я каждый раз обнаруживаю новые вещи, которые можно улучшить или доработать.

Шаг 1: Создаём электронику




Для проекта нужны:

  1. Светодиодная полоска WS2812b со светодиодами, расположенными очень близко друг к другу. Можно использовать другие светодиоды, например, если вы хотите создать более высокую напольную лампу имитирующую пламя, вместо настольной.
  2. Ардуино нано. Для меня этого модуля было вполне достаточно. Если вы хотите сделать более сложную штуку, то другие типы плат подойдут лучше
  3. Провода для соединения

Так как диоды и Ардуино нано используют 5V, я был привязан к этому вольтажу. Это означает, что для питания лампы можно использовать павербанк и создавать романтическую обстановку где угодно и когда угодно.

На моей светодиодной полосе было 120 диодов, я разделил её на полосы по 20 диодов на цилиндре, это можно увидеть на фото. Также я припаял штекеры папамама, чтобы иметь возможность заменять какие-то части лампы в будущем.

Для программирования светодиодов я использовал библиотеку NeoPixel. Также были использованы части кода, найденные в интернете, я сильно изменил, чтобы адаптировать и придать свечению более реалистичное ощущение.

Код можно найти здесь: ссылка.

Шаг 2: Световые эффекты

Итак, закончив с электроникой, мы видим, что свечение всё еще не выглядит как огонь. Для придания реалистичности нам надо рассеять свет от диодов, так, чтобы свечение каждого отдельного диода перестало быть различимым.

Немного поэкспериментировав с бумагой (которая слишком рассеивала свет) и пластиковой плёнкой, выкрашенной в белый (также не подходившей для моих нужд), я пришёл к выводу, что единственным нормальным решением будет использовать матовое стекло или акрил.

Так как я хотел часто использовать лампу с имитацией огня, я решил просто купить обычную лампу и использовать её как оболочку.

Я убрал из лампы всю электронику и заменил её на свою. Стекло лампы давало приятный рассеивающий эффект, так что пара ухищрений и доработка программного кода сделали меня полностью удовлетворённым получившимся результатом.