Файлы DLL

Светодиодная лента rgb arduino. RGB-светодиоды: адресуемая светодиодная лента

Светодиодная лента rgb arduino. RGB-светодиоды: адресуемая светодиодная лента

В данной статье мы расскажем о цветных светодиодах, отличии простого RGB-светодиода от адресуемого, дополним информацией о сферах применения, о том, как они работают, каким образом осуществляется управление со схематическими картинками подключения светодиодов.

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

Основных назначений у них два :

Демонстрация работы оборудования или оповещение о каком-либо событии;
применение в декоративных целях (подсветка и визуализация).

Внутри светодиод состоит из красного (red), зеленого (green) и синего (blue) кристаллов, собранных в одном корпусе. Отсюда такое название – RGB (рис.1).

2. С помощью микроконтроллеров

С помощью него можно получить множество различных оттенков света. Управление RGB-светодиодом осуществляется с помощью микроконтроллера (MK), например, Arduino (рис.2).

Конечно, можно обойтись простым блоком питания на 5 вольт, резисторами в 100-200 Ом для ограничения тока и тремя переключателями, но тогда управлять свечением и цветом придется вручную. В таком случае добиться желаемого оттенка света не получится (рис.3-4).

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

3. Контроллер для управление RGB

Для разгрузки выводов МК применяются специальные контроллеры WS2801 (5 вольт) или WS2812B (12 вольт) (рис.5).

С применением отдельного контроллера нет необходимости занимать несколько выходов MK, можно ограничиться лишь одним сигнальным выводом. МК подает сигнал на вход «Data» управляющего контроллера светодиода WS2801.

В таком сигнале содержится 24-битная информация о яркости цвета (3 канала по 8 бит на каждый цвет), а также информация для внутреннего сдвигового регистра. Именно сдвиговый регистр позволяет определять, к какому светодиоду информация адресовывается. Таким образом можно соединять несколько светодиодов последовательно, при этом использовать все так же один вывод микроконтроллера (рис.6).

4. Адресуемый светодиод

Это RGB-светодиод, только с интегрированным контроллером WS2801 непосредственно на кристалле. Корпус светодиода выполнен в виде SMD компонента для поверхностного монтажа. Такой подход позволяет расположить светодиоды максимально близко друг другу, делая свечение более детализированным (рис.7).

В интернет-магазинах можно встретить адресные светодиодные ленты, когда в одном метре умещается до 144 штук (рис.8).

Стоит учесть, что один светодиод потребляет при полной яркости всего 60-70 мА, при подключении ленты, например, на 90 светодиодов, потребуется мощный блок питания с током не менее 5 ампер. Ни в коем случае не питайте светодиодную ленту через контроллер, иначе он перегреется и сгорит от нагрузки. Используйте внешние источники питания (рис.9).

5. Недостаток адресуемых светодиодов

Адресуемая светодиодная лента не может работать при слишком низких температурах: при -15 контроллер начинает подглючивать, на более сильном морозе велик риск его выхода из строя.

Второй недостаток в том, что если выйдет из строя один светодиод, следом по цепочке откажутся работать и все остальные: внутренний сдвиговый регистр не сможет передать информацию дальше.

6. Применение адресуемых светодиодных лент

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

Получается интересное решение, если светодиодную ленту использовать в качестве фоновой подсветки Ambilight для монитора компьютера (рис.10-11).

Если вы будете использовать микроконтроллеры на базе Arduino, вам понадобится библиотека FastLed для упрощения работы со светодиодной лентой ().

Светодиодная RGB лента представляет собой гибкую ленту, с нанесенными на ней проводниками и RGB-светодиодами (полноцветными). В последнее время светодиодные ленты получили широкое распространение в архитектуре, авто и мото тюнинге, костюмах, декорациях и т.п. Также бывают водонепроницаемые ленты, которые можно использовать к примеру в бассейнах.

Светодиодные ленты бывают двух типов: аналоговые и цифровые .
В аналоговых лентах все светодиоды включены в параллель. Следовательно, вы можете задавать цвет всей светодиодной ленты, но не можете установить определенный цвет для конкретного LED. Эти ленты просты в подключении и не дорогие.
Цифровые светодиодные ленты устроены немного сложнее. К каждому светодиоду дополнительно устанавливается микросхема, что делает возможным управлять любым светодиодом. Такие ленты намного дороже обычных.

В данной статье мы рассмотрим работы только с аналоговыми светодиодными лентами.

Аналоговые RGB светодиодные ленты

Техническая спецификация:
- 10.5мм ширина, 3мм толщина, 100мм длина одного сегмента
- водонепроницаемая
- снизу скотч 3М
- макс. потребление тока (12В, белый цвет) - 60мА на сегмент
- цвет свечения (длина волны, нм): 630нм/530нм/475нм

Схема светодиодной RGB ленты

Лента поставляется в рулонах и состоит из секций длиной по 10 см. В каждой секции размещается 3 RGB светодиода, типоразмера 5050. Т.е. в каждой секции получается, что содержится 9 светодиодов: 3 красных, 3 зеленых и 3 синих. Границы секций отмечены и содержат медные площадки. Поэтому, при необходимости, ленту можно обрезать и спокойно припаиваться. Схема светодиодной ленты:

Энергопотребление

В каждой секции ленты, последовательно подключены по 3 светодиода, поэтому питание 5В не подойдет. Питание должно быть 12В, но можно подавать напряжение и 9В, но тогда светодиоды будут гореть не так ярко.

Одна LED-линия сегмента потребляет приблизительно 20мА при питании 12В. Т.о. если зажечь белый цвет (т.е. красный 100%, зеленый 100% и синий 100%), то энергопотребление секции составит около 60мА.

Теперь, можно легко посчитать потребление тока всей ленты. Итак, длина ленты составляет 1 метр. В ленте 10 секций (по 10 см каждая). Потребление ленты при белом цвете составит 60мА*10=600мА или 0.6А. Если использовать ШИМ fade-эффект между цветами, то энергопотребление можно снизить вдвое.

Подключение ленты

Для того, чтобы подключить ленту, необходимо припаять провода к 4 контактным площадкам. Мы использовали белый провод для +12В, а остальные цвета в соответствии с цветами светодиодов.

Срежьте защитную пленку на конце ленты. С какой стороны будет производится подключение - не важно, т.к. лента симметричная.

Зачистите слой изоляции, чтобы оголить контактные площадки.

Залудите их.

Припаяйте четыре провода. Лучше использовать многожильный провод (например ПВ3 или кабель ПВС), он более гибкий.

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

Работа с светодиодной лентой

Ленту легко можно использовать с любым микроконтроллером. Для управления светодиодами рекомендуется использовать широтно-импульсную модуляцию (ШИМ). Не подключайте выводы ленты напрямую к выводам МК, т.к. это большая токовая нагрузка и контроллер может сгореть. Лучше использовать транзисторы.

Вы можете использовать NPN-транзисторы или еще лучше N-канальные мосфеты. При подборе транзистора не забудьте, что максимальный коммутируемый ток транзистора нужно брать с запасом.

Подключение светодиодной ленты к контроллеру Arduino

Рассмотрим пример подключения светодиодной ленты к популярному . Для подключения, можно использовать недорогие и популярные мосфеты . Можно также использовать и обычные биполярные транзисторы, к примеру TIP120. Но по сравнению с мосфетом, у него больше потери напряжения, поэтому все же рекомендуется использовать первые.
На схеме ниже показано подключение RGB светодиодной ленты при использовании N-канальных мосфетах. Затвор мосфета подключается к pin1 контроллера, сток к pin2 и исток к pin3.

Ниже, показана схема подключения при использовании обычных биполярных транзисторов (например TIP120). База транзистора подключается к pin1 контроллера, коллектор к pin2 и эмиттер к pin3. Между базой и выводом контроллера необходимо поставить резистор сопротивлением 100-220 Ом.

К контроллеру Arduino подключите источник питания с напряжением 9-12 Вольт, а +12В от светодиодной ленты необходимо подключить к выводу Vin контроллера. Можно использовать 2 раздельных источника питания, только не забудьте соединить "земли" источника и контроллера.

Пример программы

Для управления лентой будет использовать ШИМ-выход контроллера, для этого можно использовать функцию analogWrite() для выводов 3, 5, 6, 9, 10 или 11. При analogWrite(pin, 0) светодиод не будет гореть, при analogWrite(pin, 127) светодиод будет гореть в полнакала, а при analogWrite(pin, 255) светодиод будет гореть с максимальной яркостью. Ниже приведен пример скетча для Arduino:

#define REDPIN 5 #define GREENPIN 6 #define BLUEPIN 3 #define FADESPEED 5 // чем выше число, тем медленнее будет fade-эффект void setup() { pinMode(REDPIN, OUTPUT); pinMode(GREENPIN, OUTPUT); pinMode(BLUEPIN, OUTPUT); } void loop() { int r, g, b; // fade от голубого к фиолетовому for (r = 0; r 0; b--) { analogWrite(BLUEPIN, b); delay(FADESPEED); } // fade от красного к желтому for (g = 0; g 0; r--) { analogWrite(REDPIN, r); delay(FADESPEED); } // fade от зеленого к зеленовато-голубому for (b = 0; b 0; g--) { analogWrite(GREENPIN, g); delay(FADESPEED); } }

Здравствуйте Хабр-сообщество.

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

К таким лентам можно купить источник питания, диммер, диммер с пультом управления. Это позволит вам использовать светодиодную ленту для посветки. Однако если вы захотите запи запрограммировать алгоритм изменения цвета, или сделать управление из компьютера - то тут начинается разочарование. Вы в продаже не найдете диммеров с управлением через COM-порт или Ethernet.

Добро пожаловать под кат.

Теоретическая часть

Для реализации плавного изменения свечения всех 3 каналов нам потребуется сделать собственный димер. Сделать его очень просто, для этого требуется взять силовые ключи и управлять ими с помощью ШИМ сигнала. Также наш диммер должен быть программируемым и/или управляемым из вне.

В качестве мозгов идеально подходит Arduino. В её программу можно записать любой алгоритм изменения цветов, а также её можно управлять как с помощью модулей Arduino, так и удаленно по Ethernet, Ик-порту, Bluetooth, используя соответствующие модули.

Для реализации задуманного я выбрал 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В.

Пример такого модуля является «L298N Module Dual H Bridge Stepper Motor Driver Board Modules for Arduino Smart Car FZ0407». Такой модуль основан на микросхеме L298N, которая представляет из себя 2 моста. Однако мостовое включение полезно для двигателя (от этого он может менять направление вращения), а в случае RGB ленты, оно бесполезное.

Мы будем использовать не весь функционал этой микросхемы, а только 3 её нижних ключа, подключив ленту как показано на рисунке.

Практическая часть часть

Для реализации потребуется Arduino Leonardo, Модуль управления двигателями L298N, Источник 12В (для запитки ленты), сама RGB лента, соединительные провода.
Для удобства подключения я еще использовал Fundruino IO Expansion, но он никакой функциональной нагрузки не несет.

Схема подключения показана на рисунке.

Хочу дополнительно описать питание системы. В данной схеме питание подается на модуль управления двигателями, в нем стоит понижающий источник питания на 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А. По этому если вы хотите использовать длинные и яркие ленты - возможно потребуется схему модернизировать (подключать ленту по сегментам, или взять более мощный драйвер) или использовать ленты по проще.

Данный проект посвящен тому, как сделать светодиодную подсветку, управляемую с соседней комнаты, чтобы не вставать с дивана. Светодиодная RGB-подсветка одинаково хорошо украшает как маленький аквариум, так и большую комнату.

Можно засветить разными цветами баню от RGB ленты на Arduino. Создать, так сказать, баню на микропроцессорном управлении от Arduino.

Всего лишь понадобятся для сборки RGB-подсветки такие компоненты:

  1. Bluetooth модуль HC-05 для беспроводной связи с Arduino.
  2. Плата Arduino nano, mini, Uno с микропроцессором ATmega 8, ATmega 168, ATmega 328.
  3. Светодиодная лента RGB, при необходимости во влагозащитном исполнении IP65 или без него.
  4. Смартфон с Android как пульт управления RGB-подсветкой.
  5. Полевые MOSFET транзисторы, такие как P3055LD, P3055LDG, PHD3355L, но лучше с выводами для закрепления в монтажных отверстиях. Биполярные транзисторы работают хуже .
  6. Резисторы 10 кОм, 0.125 Вт - 3 штуки.

Немного теории про подключение RGB ленты к Arduino

Нельзя подключить светодиодную полоску напрямую к плате Arduino. Светодиодная лента светиться от 12 В, тогда как микропроцессору нужно для работы всего 5 В.

Но, самая главная проблема в том, что выходы микропроцессора не имеют достаточной мощности для питания целой ленты светодиодов. В среднем метровой длины светодиодная полоса потребляет 600 мА. Такой ток точно выведет из строя плату Arduino.

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

Для развязки по питанию, в качестве ключей, рекомендуется использовать транзисторы. Лучше использовать полевые MOSFET транзисторы: им для открытия нужен мизерный ток на «затвор», к тому же они имеют большую мощность в сравнении с биполярными ключами такого же размера.

RGB ленты к Arduino

На электромонтажной схеме на управление лентой задействованы ШИМ-выхода: 9 (красный), 10 (зеленый), 11 (голубой).

Три резистора по 10 кОм, 0.125 Вт повешены на «затвор» каждого транзистора.

Плюс от блока питания 12 В (красный провод) идет напрямую на RGB ленту.

Минус от блока питания 12 В (черный провод) распределяется по «истокам» полевых транзисторов.

«Сток» каждого транзистора связан с отдельным контактом ленты: R, G, B. Рекомендуется для удобства при подключении использовать провода красного, зеленого, голубого цвета.

Контакт заземления GND платы Arduino следует посадить на минус входного питания.

Сама плата Arduino Uno запитывается от отдельного сетевого адаптера. Для Arduino nano, mini потребуется собрать простенький источник питания на интегральном стабилизаторе 7805.

Подключение Bluetooth модуля HC-05:

  • VCC - 5V (питание +5 В);
  • GND - GND (земля, общий);
  • RX - TX на Arduino nano, mini, Uno;
  • TX - RX на Arduino nano, mini, Uno;
  • LED - не используется;
  • KEY - не используется.

Приведенный ниже эскиз программы является универсальным для управления как одним светодиодом, так и светодиодной полосой. Главное оставить нужные строчки, а ненужные удалить или сделать комментариями в косых черточках.

Unsigned long x; int LED = 9; // зеленый подключен к 9 пину int LED2 = 10; // синий подключен к 10 пину int LED3 = 11; // красный подключен к 11 пину int a,b,c = 0; void setup() { Serial.begin(9600); Serial.setTimeout(4); pinMode(LED, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); } void loop() { if (Serial.available()) { x = Serial.parseInt(); if (x>=0 && x<=255) { a = x; // для RGB ленты //a = 255-x; // для светодиода analogWrite(LED, a); } if (x>=256 && x<=511) { b = x-256; // для RGB ленты //b = 511-x; // для светодиода analogWrite(LED2, b); } if (x>=512 && x<=767) { c = x-512; // для RGB ленты //c = 767-x; // для светодиода analogWrite(LED3, c); } /* Serial.println(x); Serial.println(a); Serial.println(b); Serial.println(c); */ } }

Если понадобиться подключить один RGB светодиод, тогда есть электромонтажная схема его подключения.

Установка приложения на телефон

Скачиваем приложение с коротким названием RGB на телефон. .

После установки запускаем приложение по иконке.

Кликаем по надписи

Находим в списке установленный Bluetooth модуль HC-05.

При наличии связи вместо надписи будет отображаться адрес и название установленного модуля Bluetooth.

Ну, вот и всё, управление RGB подсветкой налажено!

Вот видео-пример работы нашего проекта:

GPS часы на Arduino Биометрический замок – Схема и сборка ЖК дисплея


В преддверии Нового Года предлагаю вам собрать елочную программируемую RGB гирлянду с возможностью создавать различные узоры.

Что понадобится для гирлянды?

WS2811 RGB Full Color 12mm LED String DC 5V можно приобрести на Aliexpress за 20 долларов. Обычной конец одной такой гирлянды можно соединять с другой, чтобы увеличить длину. Эта статья рассчитана на построение световых узоров, так что, если у вас под рукой есть программируемая LED гирлянда с другим протоколом, вам надо будет, переписать программу и подключить гирлянду в соответствии с datasheet.
5 вольтовый источник тока, рассчитанный на ток, потребляемый вашей гирляндой. Обычно продавец указывает ток, потребляемый гирляндой.
Arduino любой версии. Автор использовал стандартный Arduino Uno.
Зеленая акриловая краска
Изолента
Провод.
Желательно иметь разъемы JST чтобы было легче соединять гирлянду с контроллером

Перед тем как начать собирать елочную гирлянду, убедитесь, что все светодиоды исправны. В интернете можно найти, как подключить WS2811 к Arduino.

Определите выводы +5V и GND по datasheet на вашу WS2811
Красный = + 5В
Синий = GND
Белый = Данные

Подключение получается такое, как на картинке.

Установите популярную библиотеку WS2811 Arduino от Adafruit. Скачать и прочитать инструкцию по установке можно здесь:
Измените прилагаемый код в соответствии с длиной вашей гирлянды в #define LED_COUNT . Загрузите и запустите программу на Arduino. Обратите внимание, что пиксели меняют цвет от красного к зеленому, потом к синему, потом к белому в течении 5 сек. Это гарантирует, что все 3 светодиода внутри пикселя исправны.

(скачиваний: 1085)

Оценка падения напряжения.

Каждый светодиодный пиксель и последующая подключенная LED гирлянда, вызовет какое-то падение напряжения. Так что после 50 светодиода в вашей LED гирлянде напряжение источника питания упадет на какую-то заметную величину. Например, с 5в до 4.7В. Это означает, что следующая гирлянда, которую вы подключите к первой, будет запитана не от 5в, а от 4.7в и напряжение после нее упадет еще ниже. В результате каждый светодиод будет темнее, чем предыдущий. В конечном итоге, когда напряжение упадет до 3.3в, микросхема, обслуживания протокола WS2811, просто перестанет работать.

Так как в каждом пикселе по 3 светодиода и белый цвет свечения гирлянды означает, что все 3 светодиода светятся одинаково, на ней будет падать напряжение больше, чем, если бы горели, к примеру, только красные светодиоды. При запуске программы тестирования вы заметили сильные затемнения на концах гирлянды? Можете подключить туда дополнительно питание 5в. Автор сделал это через каждые 100 пикселей

Покраска гирлянды.

Нормальные новогодние гирлянды окрашены в зеленый цвет, чтобы сливаться с елкой. У вашей светодиодной гирлянды провода разного цвета. Подвесьте гирлянду и покрасьте провода в зеленый цвет акриловой краской, это займет немного времени. Корпуса WS2811 заверните в черную изоленту, это будет быстрее, чем красить их.


Определение позиции X и Y каждого пикселя

Повесьте собранную гирлянду на елку. После этого можно рассчитать положение каждого пикселя по X и Y и вставить эти данные в код программы. Для этого используйте вот этот файл с кодом. Раскомментируйте первую функцию loop () , которая зажигает секции по 10 светодиодов. Если у вас есть больше чем 50 светодиодов, то вы можете продлить эту секцию простым копированием, не забывая указывать нужное количество в #define LED_COUNT

Постарайтесь наложить сетку так, чтобы самый нижний левый светодиод попал в ячейку 1.1. Это делается для того, чтобы программа смогла определить середину дерева в обоих X и Y направлениях. Ввод X и Y координат это ручной процесс, каждую координату вы будете получать, смотря на видео. 200 координат звучит, конечно, устрашающе, но времени это займет в пределах 20 минут.

Можно распечатать сетку и приложить ее к монитору компьютера или дисплею телефона, чтобы не возиться с видеоредакторами.

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

(скачиваний: 1240)

По видео вы можете понять логику работы программы и написать свои шаблоны или поменять код под себя. Другой прикрепленный файл - это файл настройки, чтобы Arduino управлялся через последовательный интерфейс с другого устройства. Автор использовал Raspberry Pi для управления Arduino.

Вот такая новогодняя гирлянда с использованием Arduino и комплекта WS2811.

(скачиваний: 1132)