Здравствуйте Хабр-сообщество.
В данное время стали доступны светодиодные ленты с изменяемым цветом свечения. Они классно выглядят, не дорого стоят и их можно хорошо приспособить для декоративной подсветки интерьера, рекламы, и т.д.
К таким лентам можно купить источник питания, диммер, диммер с пультом управления. Это позволит вам использовать светодиодную ленту для посветки. Однако если вы захотите запрограммировать алгоритм изменения цвета, или сделать управление из компьютера — то тут начинается разочарование. Вы в продаже не найдете диммеров с управлением через COM-порт или Ethernet.
Я решил эту проблему с помощью Arduino, и хочу поделиться своим вариантом решения с Вами.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/7a0/123/d2f/7a0123d2fb2840f6d8d52d5757f694a8.jpg)
Добро пожаловать под кат.
Для реализации плавного изменения свечения всех 3 каналов нам потребуется сделать собственный димер. Сделать его очень просто, для этого требуется взять силовые ключи и управлять ими с помощью ШИМ сигнала. Также наш диммер должен быть программируемым и/или управляемым из вне.
В качестве мозгов идеально подходит Arduino. В её программу можно записать любой алгоритм изменения цветов, а также её можно управлять как с помощью модулей Arduino, так и удаленно по Ethernet, Ик-порту, Bluetooth, используя соответствующие модули.
![Arduino Leonardo](https://habrastorage.org/r/w780q1/getpro/habr/post_images/109/7ff/9ce/1097ff9ceab46a28772dcf5d142fdf35.jpg)
Для реализации задуманного я выбрал Arduino Leonardo. Она одна из самых дешевых плат Arduino, и она имеет много выводов с поддержкой ШИМ.
И так, источник ШИМ у нас имеется, остаётся придумать с силовыми ключами. Если побродить по интренет магазинам, то выяснится, что не существует модуля Arduino для управления RGB лентами. Или просто универсальных модулей с силовыми транзисторами. Также можно найти огромное количество сайтов радиолюбителей, которые делают платы с силовыми ключами сами.
Однако есть способ проще! Нас выручит модуль Arduino для управления двигателями. Этот модуль имеет все необходимое для нас — на нем установлены мощные ключи на 12В.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/791/cfe/e22/791cfee2229dd69405c7b6dac43a7327.jpg)
Пример такого модуля является «L298N Module Dual H Bridge Stepper Motor Driver Board Modules for Arduino Smart Car FZ0407». Такой модуль основан на микросхеме L298N, которая представляет из себя 2 моста. Однако мостовое включение полезно для двигателя (от этого он может менять направление вращения), а в случае RGB ленты, оно бесполезное.
Мы будем использовать не весь функционал этой микросхемы, а только 3 её нижних ключа, подключив ленту как показано на рисунке.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/df2/7a1/d12/df27a1d12dfecb5235f0f1fe6b746327.png)
Для реализации потребуется Arduino Leonardo, Модуль управления двигателями L298N, Источник 12В (для запитки ленты), сама RGB лента, соединительные провода.
Для удобства подключения я еще использовал Fundruino IO Expansion, но он никакой функциональной нагрузки не несет.
Схема подключения показана на рисунке.
![](https://habrastorage.org/r/w780q1/getpro/habr/post_images/78c/b82/13c/78cb8213cc2067dc370498dade802f91.jpg)
Хочу дополнительно описать питание системы. В данной схеме питание подается на модуль управления двигателями, в нем стоит понижающий источник питания на 5В, и эти 5В я подаю на вход Vin питания Arduino. Если разорвать эту связь (естественно земли оставив соединенными), то запитывать Arduino и силовые ключи можно от разных источников питания. Это может быть полезно когда к Arduino много всего подключено, и источник в модуле управления двигателями не справляется (выключается по перегреву).
Управляется RGB лента с помощью команд analogWrite, которая настраивает выход для формирования ШИМ сигнала.
Исходный код программы для arduino:
На видео можно увидеть как это работает:
Итого $37,65 = 1 300 руб
Для тех, кто захочет повторить описанную здесь схему — хочу заметить, что драйвер L298N рассчитан на ток 2-3А на канал, а RGB светодиодные ленты, на светодиодах 5050 с плотностью 60 светодиодов на метр, продающиеся по 5 метров, могут потреблять до 6А (2А на канал). По этому если вы хотите использовать ленты длинной более 5М — возможно потребуется схему модернизировать (подключать ленту по сегментам, или взять более мощный драйвер).
В данное время стали доступны светодиодные ленты с изменяемым цветом свечения. Они классно выглядят, не дорого стоят и их можно хорошо приспособить для декоративной подсветки интерьера, рекламы, и т.д.
К таким лентам можно купить источник питания, диммер, диммер с пультом управления. Это позволит вам использовать светодиодную ленту для посветки. Однако если вы захотите запрограммировать алгоритм изменения цвета, или сделать управление из компьютера — то тут начинается разочарование. Вы в продаже не найдете диммеров с управлением через COM-порт или Ethernet.
Я решил эту проблему с помощью Arduino, и хочу поделиться своим вариантом решения с Вами.
![](https://habrastorage.org/getpro/habr/post_images/7a0/123/d2f/7a0123d2fb2840f6d8d52d5757f694a8.jpg)
Добро пожаловать под кат.
Теоретическая часть
Для реализации плавного изменения свечения всех 3 каналов нам потребуется сделать собственный димер. Сделать его очень просто, для этого требуется взять силовые ключи и управлять ими с помощью ШИМ сигнала. Также наш диммер должен быть программируемым и/или управляемым из вне.
В качестве мозгов идеально подходит Arduino. В её программу можно записать любой алгоритм изменения цветов, а также её можно управлять как с помощью модулей Arduino, так и удаленно по Ethernet, Ик-порту, Bluetooth, используя соответствующие модули.
![Arduino Leonardo](https://habrastorage.org/getpro/habr/post_images/109/7ff/9ce/1097ff9ceab46a28772dcf5d142fdf35.jpg)
Для реализации задуманного я выбрал Arduino Leonardo. Она одна из самых дешевых плат Arduino, и она имеет много выводов с поддержкой ШИМ.
PWM: 3, 5, 6, 9, 10, 11, and 13. Provide 8-bit PWM output with the analogWrite() function.
И так, источник ШИМ у нас имеется, остаётся придумать с силовыми ключами. Если побродить по интренет магазинам, то выяснится, что не существует модуля Arduino для управления RGB лентами. Или просто универсальных модулей с силовыми транзисторами. Также можно найти огромное количество сайтов радиолюбителей, которые делают платы с силовыми ключами сами.
Однако есть способ проще! Нас выручит модуль Arduino для управления двигателями. Этот модуль имеет все необходимое для нас — на нем установлены мощные ключи на 12В.
![](https://habrastorage.org/getpro/habr/post_images/791/cfe/e22/791cfee2229dd69405c7b6dac43a7327.jpg)
Пример такого модуля является «L298N Module Dual H Bridge Stepper Motor Driver Board Modules for Arduino Smart Car FZ0407». Такой модуль основан на микросхеме L298N, которая представляет из себя 2 моста. Однако мостовое включение полезно для двигателя (от этого он может менять направление вращения), а в случае RGB ленты, оно бесполезное.
Мы будем использовать не весь функционал этой микросхемы, а только 3 её нижних ключа, подключив ленту как показано на рисунке.
![](https://habrastorage.org/getpro/habr/post_images/df2/7a1/d12/df27a1d12dfecb5235f0f1fe6b746327.png)
Практическая часть часть
Для реализации потребуется Arduino Leonardo, Модуль управления двигателями L298N, Источник 12В (для запитки ленты), сама RGB лента, соединительные провода.
Для удобства подключения я еще использовал Fundruino IO Expansion, но он никакой функциональной нагрузки не несет.
Схема подключения показана на рисунке.
![](https://habrastorage.org/getpro/habr/post_images/78c/b82/13c/78cb8213cc2067dc370498dade802f91.jpg)
Хочу дополнительно описать питание системы. В данной схеме питание подается на модуль управления двигателями, в нем стоит понижающий источник питания на 5В, и эти 5В я подаю на вход Vin питания Arduino. Если разорвать эту связь (естественно земли оставив соединенными), то запитывать Arduino и силовые ключи можно от разных источников питания. Это может быть полезно когда к Arduino много всего подключено, и источник в модуле управления двигателями не справляется (выключается по перегреву).
Управляется RGB лента с помощью команд analogWrite, которая настраивает выход для формирования ШИМ сигнала.
Исходный код программы для arduino:
#define GRBLED_PIN_R 9 // пин для канала R
#define GRBLED_PIN_G 10 // пин для канала G
#define GRBLED_PIN_B 11 // пин для канала B
int rgbled_r=0, rgbled_g=0, rgbled_b=0;
void setup(){
//enable serial datada print
Serial.begin(9600);
Serial.println("RBG LED v 0.1");
// RGBLED
pinMode(GRBLED_PIN_R, OUTPUT);
pinMode(GRBLED_PIN_G, OUTPUT);
pinMode(GRBLED_PIN_B, OUTPUT);
}
void loop(){
// change color
rgbled_r = (rgbled_r+1)%1024;
rgbled_g = (rgbled_g+2)%1024;
rgbled_b = (rgbled_b+3)%1024;
// Output
Z1_output_rgbled();
delay(1);
}
void Z1_output_rgbled() {
analogWrite(GRBLED_PIN_R, rgbled_r);
analogWrite(GRBLED_PIN_G, rgbled_g);
analogWrite(GRBLED_PIN_B, rgbled_b);
}
На видео можно увидеть как это работает:
Экономическая часть
Модуль | Стоимость | Количество |
---|---|---|
L298N Module Dual H Bridge Stepper Motor Driver Board Modules for Arduino Smart Car FZ0407 | $ 5.31 | 1 |
Leonardo R3 Development Board for Arduino Compatiblae + USB Cable Wire FZ0437 | $ 10.00 | 1 |
5050 LED Strip RGB and single color 5M DC12V/24V 60leds/m Waterproof Flexible Car auto Strip Light saving light | $ 12.38 | 1 |
Retail AC85~265V to DC 12V/6A power supply adaptor transformer switching for led light | $ 9.98 | 1 |
Итого $37,65 = 1 300 руб
Вместо заключения
Для тех, кто захочет повторить описанную здесь схему — хочу заметить, что драйвер L298N рассчитан на ток 2-3А на канал, а RGB светодиодные ленты, на светодиодах 5050 с плотностью 60 светодиодов на метр, продающиеся по 5 метров, могут потреблять до 6А (2А на канал). По этому если вы хотите использовать ленты длинной более 5М — возможно потребуется схему модернизировать (подключать ленту по сегментам, или взять более мощный драйвер).