Управление светодиодной rgb лентой через arduino

Как задать цвет свечения rgb лентой по wi-fi.

Мы определили команду и параметры приема для задания цвета ленты. Для удобства мы будем принимать значения в стандартном виде RGBA(100,255,255,255). Яркость у нас определяется значением пин, т.е. если мы дадим команду analogWrite (LED_R, 255), то у нас загорится красный цвет и яркость будет равна 25%. Зная это мы будем приводить наш стандартный вид к виду удобному arduino. Для этого нам необходимо принимаемое значение цвета(по стандарту максимум 255) умножить на 4 и умножить на процент яркости(параметр A). Отсюда получается – нам нужна функция, которая распарсит 4 параметра(A,Red,Green,Blue), приведет их в необходимый вид для ардуино и зажжет нужный цвет. Получается на стороне платы мы работаем с тремя значениями RGB, а яркость уходит в значение цвета. Потом обнуляем переменную с принимаемыми значениями.


void LightRGB() {
  Serial.println("LightRGBComand");
  int re = 0;
  int gr = 0;
  int bl = 0;
  int a = 100;
  a = String((strtok (NULL, " "))).toInt();
  re = String((strtok (NULL, " "))).toInt();
  gr = String((strtok (NULL, " "))).toInt();
  bl = String((strtok (NULL, " "))).toInt();
  if (a > 100)a = 100;
  if (a < 0)a = 0;

  if (re >= 255 || re < 0 ) re = 256;
  if (gr >= 255 || gr < 0 ) gr = 256;
  if (bl >= 255 || bl < 0 ) bl = 256;

  re = round(float(re) * 4 * float(a) / 100);
  gr = round(float(gr) * 4 * float(a) / 100);
  bl = round(float(bl) * 4 * float(a) / 100);

  Serial.println("alfa: " + String(a));
  Serial.println("LED_R: " + String(re));
  Serial.println("LED_G: " + String(gr));
  Serial.println("LED_B: " + String(bl));
  LightRed(re);
  LightGreen(gr);
  LightBlue(bl);
  Str = "0";
  Serial.println("EndLightRGBComand");
}

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

Светодиодная лента Ардуино — Подключение

Чтобы подключить 12v светодиодную ленту к Arduino, вам понадобится несколько компонентов: ● 12v RGB светодиодная лента(SMD5050); ● 1 x Arduino Uno (любая совместимая плата подойдет); ● 3 x 10 кОм резисторов; ● 3 x логических уровня N-канальных МОП-транзисторов (MOSFET); ● 1 х макет; ● Монтажные провода; ● Блок питания на 12 В.

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

Всякий раз, когда вы управляете прибором с более высоким напряжением, чем у вашего микроконтроллера, вам нужно установить что-нибудь между ними, чтобы избежать поломки или даже возгорания. Один из простых способов сделать это — использовать MOSFET. Передавая сигналы широтно-импульсной модуляции (ШИМ), вы можете контролировать количество энергии, проходящее между стоками и источником. Пропустив каждый из цветов светодиодной полосы через МОП-транзисторы, вы можете регулировать яркость каждого цвета на светодиодной ленте. При использовании микроконтроллеров не забывайте о компонентах логического уровня для обеспечения стабильной работы. Убедитесь, что ваши МОП-транзисторы являются логическим уровнем, а не стандартным.

Настройте свою схему следующим образом:

1. Подключите контакты Arduino 9, 6 и 5 к концам затвора трех МОП-транзисторов и подключите резистор 10 кОм в соответствии с заземлением. 2. Подключите ножки источника к заземлению. 3. Подключите дренажные опоры к разъемам Green, Red и Blue на светодиодной ленте. 4

Подключите шину питания к разъему +12v светодиодной полосы (обратите внимание, что на изображении выше провод питания черный, чтобы соответствовать цветам разъемов на моей светодиодной полосе). 5

Подключите заземление Arduino. 6. Подключите стабилизатор питания 12 В в сеть. Большинство светодиодных полосок имеет разъемы Dupont, к которым легко подключиться. Если у вас нет таких, вам понадобится припаять провода к диодной ленте. Не паникуйте, если вы новичок в пайке — это легкая работа. В интернете есть множество руководств по началу работы с паяльником, с которыми можно ознакомиться, если пайка доставляет вам трудности. Для этого проекта мы будем управлять нашей платой Arduino по USB . Вы можете выбрать питание платы с помощью вывода VIN, но перед этим убедитесь, что вы знаете ограничения мощности для своего устройства.

После всех процедур схема и Светодиодная лента Ардуино должна выглядеть примерно так:

Теперь, когда вы все связали, пришло время сделать простой код Arduino, чтобы контролировать его.

Это интересно: Утюг не работает после чистки солью: что делать?

Как подключить светодиодную ленту к Ардуино

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • источник постоянного тока 12 Вольт;
  • светодиодная лента;
  • полевые / биполярные транзисторы;
  • реле Ардуино 12 Вольт;
  • датчик движения;
  • макетная плата;
  • резисторы;
  • провода «папа-папа», «папа-мама».


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

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

Программа для светодиодной ленты Ардуино

void setup() {
   pinMode(12, OUTPUT); // объявляем пин 12, как выход
}

void loop() {
   digitalWrite(12, HIGH);
   delay(1000);
   digitalWrite(12, LOW)
   delay(1000);
}

Пояснения к коду:

  1. Для зажигания LED ленты через реле можно использовать цифровой пин;
  2. Код повторяет программу для мигания светодиода на Ардуино;
  3. Для данного примера датчик движения к Ардуино можно не подключать.

Скетч для светодиодной ленты с датчиком движения

unsigned long counttime;
byte w = 1;

#define LED  12 // назначаем порт для реле
#define PIR  2    // назначаем порт для датчика

void setup() {
   pinMode(LED, OUTPUT); // объявляем пин LED, как выход
   pinMode(PIR, INPUT);      // объявляем пин PIR, как вход
   }

void loop() {
   delay(200);

   // если есть движение - включаем свет
   if (digitalRead(PIR) == HIGH) { digitalWrite(LED, HIGH); w = 1; }

   // если движения нет - включаем счетчик
   if (digitalRead(PIR) == LOW) { counttime = millis(); w = 0;

       while (w == 0) {
         delay(200);

         // если движения нет в течении 10 секунд - выключаем свет и выходим из цикла
         if (millis() - counttime > 10000) { digitalWrite(LED, LOW); w = 1; }

         // если обнаружено движение в течении 10 сек. - включаем свет и выходим из цикла
         if (digitalRead(PIR) == HIGH) { digitalWrite(LED, HIGH); w = 1; }
      }

   }
}

Пояснения к коду:

  1. В выражении можно поставить любое значение в миллисекундах, при котором свет не будет выключаться;
  2. Задержка может влиять на скорость срабатывания датчика, но позволяет немного разгрузить процессор.

Подключение светодиодной RGB ленты

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

Правильный порядок подключения

Запомните. Участки ленты, длиной больше 5 метров, должны подключаться только параллельно.

Что будет, если подключить последовательно?

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

Неправильное подключениеПравильное подключение

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

RGB коннектор

Соединять ленту между собой можно с помощью пайки или клеммами. Для одноцветных вариантов продаются двухвыводные клеммы (коннекторы), для RGB – четырёх или пяти. Уточняйте этот момент при покупке.

Подробнее как соединять rgb ленту между собой.

Блок питания подключается в сеть 220В (клеммы AC, полярность не важна), преобразует переменное напряжение в постоянное 12В (клеммы V+, V-)

При подключении следующих элементов цепи важно соблюдать полярность

Клеммы подключения на БП

RGB контроллер подключается после блока питания (с соблюдением полярности), а в него подключается ргб лента. Каждый вывод на корпусе предназначен для конкретного вывода светодиодов. Если перепутаете местами, ничего страшного не произойдет, просто цвета будут перепутаны.

Клеммы подключения контроллера к светодиодам

В результате готовая схема в сборе должна иметь вид:

Схема в сборе

Усилитель внешне похож на контроллер, отдельно подключается к БП, только имеет не одну плашку с клеммами, а две. Маркируется чаще всего как Led Amplifier, устанавливается в разрыв ленты. Подключается по схеме:

Порядок подключения RGB усилителя в цепьНазначение клемм led amplifier

Разберем теперь схемы подключения лент разной длины с усилителем и без, с одним или несколькими блоками питания.

Схема подключения RGB светодиодной ленты без усилителя

Это простейшая схема включения rgb светодиодной ленты длиной до 5 метров через контроллер с пультом.

Электрическая схема подключения RGB освещения

Для подключения светодиодной RGB ленты длиной 10 или 15 метров, убедитесь, что хватает мощности контроллера и БП (с запасом), и подключайте по следующей схеме:

Схема подключения 10 или 15 

Схема подключения ленты с RGB усилителем

Усилитель используем, если не хватает мощности контроллера. Если мощность блока питания позволяет подключить контроллер и усилитель, используем следующую схему:

Когда суммарная мощность контроллера и усилителя выше мощности БП или блок такой мощности использовать нерационально (большой, сильно греется или шумит), тогда подключаем led amplifier к отдельному питанию по схеме:

Схема подключения усилителя с 2 блоками питания

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

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

Схема параллельного подключения нескольких RGB усилителей с одним блоком питания.

Схема: один БП несколько усилителей

Схема с несколькими параллельными усилителями с отдельным питанием.

Схема: несколько параллельных усилителей с отдельными БП

Если клемм нет – используйте паяльник и монтажный провод, НО не перегревайте контактные площадки. Подробнее как соединять ленту.

Правильная схема подключения 20 метров RGB ленты показана на видео.

Плавное управление RGB светодиодом

Управление rgb светодиодом на Arduino можно сделать плавным, используя аналоговые выходы с «ШИМ». Для этого ножки светодиода необходимо подключить к аналоговым выходам, например, к пинам 11, 10 и 9. И подавать на аналоговые выходы микроконтроллера различные значения ШИМ (PWM), для этого воспользуемся циклом for, с помощью которого можно повторять нужные команды в программе.

Скетч для плавного мигания RGB светодиода

#define RED 11  // присваиваем имя RED для пина 11
#define GRN 10 // присваиваем имя GRN для пина 10
#define BLU  9   // присваиваем имя BLU для пина 9
 
void setup() {
   pinMode(RED, OUTPUT);  // используем Pin11 для вывода
   pinMode(GRN, OUTPUT); // используем Pin10 для вывода
   pinMode(BLU, OUTPUT);  // используем Pin9 для вывода
}
 
void loop() {
   // плавное включение/выключение красного цвета
   for (int i = 0; i <= 255; i++) {
      analogWrite(RED, i);
      delay(2);
   }
   for (int i = 255; i >= 0; i--) {
      analogWrite(RED, i);
      delay(2);
   }

   // плавное включение/выключение зеленого цвета
   for (int i = 0; i <= 255; i++) {
      analogWrite(GRN, i);
      delay(2);
   }
   for (int i = 255; i >= 0; i--) {
      analogWrite(GRN, i);
      delay(2);
   }

   // плавное включение/выключение синего цвета
   for (int i = 0; i <= 255; i++) {
      analogWrite(BLU, i);
      delay(2);
   }
   for (int i = 255; i >= 0; i--) {
      analogWrite(BLU, i);
      delay(2);
   }
}

Пояснения к коду:

  1. с помощью директивы мы заменили номера пинов 9, 10 и 11 на соответствующие имена , и . Это сделано для удобства, чтобы не запутаться в скетче и понимать какой цвет мы включаем;
  2. пины 9, 10 и 11 мы использовали, как аналоговые выходы .
#define RED 11  // присваиваем имя RED для пина 11
#define GRN 10 // присваиваем имя GRN для пина 10
#define BLU  9   // присваиваем имя BLU для пина 9
 
void setup() {
   pinMode(RED, OUTPUT);  // используем Pin11 для вывода
   pinMode(GRN, OUTPUT); // используем Pin10 для вывода
   pinMode(BLU, OUTPUT);  // используем Pin9 для вывода
}
 
void loop() {
   // плавное включение красного и зеленого цвета
   for (int i = 0; i <= 255; i++) {
      analogWrite(RED, i);
      analogWrite(GRN, i);
      delay(2);
   }
   for (int i = 255; i >= 0; i--) {
      analogWrite(RED, i);
      analogWrite(GRN, i);
      delay(2);
   }

   // плавное включение красного и синего цвета
   for (int i = 0; i <= 255; i++) {
      analogWrite(RED, i);
      analogWrite(BLU, i);
      delay(2);
   }
   for (int i = 255; i >= 0; i--) {
      analogWrite(RED, i);
      analogWrite(BLU, i);
      delay(2);
   }
}

Принцип управления нагрузкой через Ардуино

Плата Ардуино имеет два типа портов вывода: цифровой и аналоговый (ШИМ-контроллер). У цифрового порта возможно два состояния – логический ноль и логическая единица. Если подключить к нему светодиод он либо будет светиться, либо не будет.

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

Через аналоговый порт возможно не только включать и выключать нагрузку, а и изменять напряжение (ток) на ней.

Синтаксис команд

Цифровой вывод:

pinMode(12, OUTPUT); — задаём порт 12 портом вывода данных; digitalWrite(12, HIGH); — подаём на дискретный выход 12 логическую единицу, зажигая светодиод.

Аналоговый вывод:

analogOutPin = 3; – задаём порт 3 для вывода аналогового значения; analogWrite(3, значение); – формируем на выходе сигнал с напряжением от 0 до 5В

Значение – скважность сигнала от 0 до 255. При значении 255 максимальное напряжение

Способы управления светодиодами через Ардуино

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

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

Что нужно для монтажа и установки led-ленты

Для монтажа и установки LED-ленты необходима исправная светодиодная плата с правильными техническими характеристиками:

  1. Длина. Стандартная длина платы в бобине составляет 5 метров, но при этом максимальная длина параллельно соединенных участков – 15 метров. При наибольшей длине дальние участки имеют более тусклый свет и высокую вероятность износа проводников.
  2. Показатель плотности характеризует количество диодов установленных на 1 метре платы. Например, 30, 60 или 120 диодов на 1 метр.

Плотность размещения диодов на плате

От плотности кристаллов зависит потребляемая мощность, ток нагрузки и напряжение питания.

  1. Степень защиты от частиц и влаги (IP). Параметр составляет от 00 (отсутствие защиты) до 68 (полная изоляция). Так СДЛ с IP20 применяются в помещениях, например, для интерьерной подсветки мебели, а с IP67 – для внешней подсветки зданий, бассейнов и внутри саун/бань.

Таблица степени защиты от частиц и влаги

  1. Цвет светового потока (монотонная/одноцветная или разноцветная RGB-лента).

Характеристики RGB-ленты

  1. Напряжение питания. Плата состоит из групп последовательно соединенных кристаллов, которые параллельно соединены между собой. Каждый кристалл получает напряжение питания не более 3,3 Вольт. Таким образом, зная плотность кристаллов, на плату подается питающее напряжение значением 12 или 24 Вольт.

За выстраивание необходимого уровня напряжения в плате отвечает специальный трансформатор, устанавливаемый между СДЛ и источником переменного напряжения. Он подает электрический ток требуемой величины.

Блок питания

  1. Протяженность питающей кабельной линии. Главное правило – значение падения напряжения питающего кабеля не должно превышать 8%. Для этого необходимо просчитать уровень нагрузки и выбрать кабель с соответствующим сечением.

Допустимый длительный ток для проводов и шнуров с резиновой и поливинилхлоридной изоляцией с медными жилами

Расчет мощности светодиодной ленты

Показатель потребляемой мощности напрямую зависит от плотности размещения кристаллов на плате:

Плотность, штМощность, потребляемая на 1 метр, ВтОбщая мощность, Вт
302,4

Произведение потребляемой мощности на 1 метр  на длину платы.

Например, для 3-х метровой ленты с плотностью 60 мощность составит: 4,8*3=14,4 Вт.

604,8
1209,6
24019,2

Для выбора блока питания значение мощности составляет на 20 — 30% больше мощности потребляемой платой. Например:

Светодиодная лента с плотностью 120 кристаллов на 1 метр. Общая протяженность СДЛ 11 метров. Потребляема мощность составит:

Pлен = 9,6 * 11 = 105,6 Вт.

Pблока = 105,6 * 1,25 = 132 Вт.

Таким образом, выбирается блок мощностью ближайшей по значению, это 135 Вт. При выборе блока мощностью ниже значения, которое потребляет плата, последняя не загорится. А отсутствие запаса мощности в 20-30% приведет к выходу блока из строя.

Как работать с FastLED

Коротко рассмотрим как работать с библиотекой FastLED и самые основные инструменты.

Логика работы с адресной лентой сводится к следующему: лента представляется в виде одномерного массива, каждый элемент – светодиод, точнее его цвет. Цвет светодиода кодируется тремя байтами, то есть 256 значений на каждый канал: красный, зелёный, синий. В программе можно производить различные манипуляции с этим массивом, то есть задавать цвета светодиодам при помощи различных инструментов библиотеки. Как только построение “кадра” закончено – массив можно отправить на ленту и светодиоды включатся соответственно заданным цветам.

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

#define LED_PIN 5     // пин
#define LED_NUM 50    // количество светодиодов

Подключаем библиотеку:

#include "FastLED.h"

Создаём массив цветов, он имеет тип данных . Размер – сколько светодиодов в ленте, то есть наша константа. Пусть массив будет глобальным, чтобы доступ к нему был у всей программы:

CRGB leds;

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

void setup() {
  FastLED.addLeds< WS2812, LED_PIN, GRB>(leds, LED_NUM);
}

Отлично! Всё настроено и готово к работе.

Общие функции

Помимо задания цветов в массиве, существуют следующие управляющие функции:

  • – выводит массив на ленту, т.е. обновляет её текущими цветами
  • – очищает ленту, буквально обнуляет все цвета в массиве, задаёт “чёрный” цвет. Для применения нужно вызвать show()
  • – устанавливает яркость всей ленты. Не меняет значения в массиве светодиодов, просто “приглушает” итоговую отображаемую яркость. Для применения нужно вызвать show()
  • – включает автоматическое ограничение яркости по настроенному току и напряжению. Полезно для длинных лент и/или слабых блоков питания
  • – залить всю ленту указанным цветом

Тип данных CRGB

Библиотека организована так, что переменной типа CRGB можно задать значение несколькими способами. Рассмотрим задание цвета первому светодиоду в нашей ленте, то есть элемент массива под номером ноль:

leds = 0xFF44DD;             // цвет в HEX формате
leds.setRGB(255, 68, 221);   // RGB, 0-255
leds.setHSV(224, 187, 255);  // HSV, 0-255
leds.setHue(224);            // Hue из HSV, S и V будут 255

// готовый цвет. весь список тут https://github.com/FastLED/FastLED/wiki/Pixel-reference#colors
leds = CRGB::Red;

Подробнее про цветовые модели RGB и HSV можно почитать вот здесь.

Схема проекта

Схема подключения адресной светодиодной ленты WS2812 к плате Arduino представлена на следующем рисунке.

Резистор в схеме необходим для защиты от повреждений светодиодов NeoPixel и для корректной передачи данных. Наилучшее расстояние для связи между модулем светодиодов NeoPixel и микроконтроллерной платой составляет от 1 до 2 метров.

Примечание: если вы используете адресную светодиодную ленту с большим количеством светодиодов, то в этом случае рекомендуется подключать конденсатор большой емкости (приблизительно 1000 мкФ) параллельно + и – источника питающего напряжения.

Способ подключения RGB ленты и способ соединения с применением RGB усилителя

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

Второй способ с применением RGB усилителя. В этом случае обязательно использовать два БП, потому что один из них питает контроллер, а второй – RGB усилитель. Этот способ более дорогостоящий, но зато более надежный. Соединяйте диодные ленты между собой параллельно друг другу. Если соединять их последовательно друг за другом.

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

Эти советы помогут разобраться в том, как правильно выбрать трансформатор для диодной ленты 12 вольт, как выполнить расчеты и установить устройство, соединив его со всеми остальными элементами.

Принцип работы транзистора для плавного управления светодиодной лентой

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

Подключив транзистор к аналоговому порту Ардуино, присваиваем ему значение от 0 до 255, изменяем напряжение, подаваемое на коллектор либо сток от 0 до 5В. Через цепочку коллектор-эмиттер будет проходить от 0 до 100% опорного напряжения нагрузки.

Для управления светодиодной лентой arduino необходимо подобрать транзистор подходящей мощности. Рабочий ток для питания метра светодиодов 300-500мА, для этих целей подойдет силовой биполярный транзистор. Для большей длины потребуется полевой транзистор.

Схема подключения LED ленты к ардуино:

Что такое NeoPixel?

RGB светодиод способен излучать любой цвет, комбинируя в нужной пропорции 3 основных базовых цвета – красный, зеленый и синий. Например, красного и синего цвета формирует фиолетовый цвет. То есть если каждым из базовых цветов управлять с помощью соответствующих им значений от 0 до 255, то можно сформировать любой цвет. Например, фиолетовый (magenta) цвет в этом случае будет формироваться совокупностью значений 255 0 255 (в шестнадцатеричном коде – 2550255 = # FF00FF). RGB светодиоды формируют множество цветов, основываясь на этой модели.

Для управления RGB светодиодом необходимо 3 цифровых контакта микроконтроллера (платы Arduino). То есть, к примеру, если мы хотим управлять 60 RGB светодиодами (причем цвет каждого из них настраивать независимо от других), то нам для этой цели понадобится 180 цифровых контактов. Естественно, подобный подход очень неудобен, поэтому для управления большой совокупностью RGB светодиодов, объединенных, к примеру, в ленту, стали использовать адресацию.

Адресуемые (адресные) светодиоды (addressable LEDs) – это новое поколение светодиодов, включающих помимо RGB светодиоды также микросхему (контроллер) управления им. В настоящее время для управления подобными светодиодами наиболее часто используется контроллер WS2812, который позволяет получить доступ к множеству светодиодов с помощью одного цифрового контакта по интерфейсу one wire (1-wire), используя адреса светодиодов.

Но в отличие от обычных светодиодов данные светодиоды не включаются просто при подаче на них напряжения, для управления ими необходим микроконтроллер. NeoPixel – это марка (наименование) компании Adafruit для адресуемых светодиодов.

Купить адресную светодиодную ленту

Адресная светодиодная лент 1m/4m/5m WS2812B 30/60/144 pixels,IP30/IP65/IP67 DC5VСветодиодная лента DC5V WS2812B 1m/4m/5m 30/60/74/96/144 pixels/leds/m от надежного поставщикаАдресная светодиодная лента DC5V 1m/4m/5m WS2812B

Как работает адресная светодиодная лента

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

Маркировка адресной ленты:

Black PCB / White PCB – цвета подложки;

  • 1м/5 м – длина адресной ленты;
  • 30/60/74 и т.д. – сколько светодиодов приходится на 1 метр ленты;
  • IP30, IP65, IP67 – степень влаго- и пылезащищенности ленты =.

Адресные светодиодные ленты используются для сборки полноценных модулей, в конструировании ламп с управлением soft lights, для декоративной подсветки, в построении диодных экранов уличной рекламы.

ОТ ЧЕГО ПИТАТЬ ЛЕНТУ?

Самый простой и понятный вариант – мощный блок питания на 5 Вольт. Если рядом есть источник постоянки 12 Вольт – можно взять понижайку и настроить её на 5 Вольт. Но часто возникает желание сделать “беспроводной” девайс с бортовым источником питания. Как быть в этом случае? Согласно даташиту на WS2812b светодиод будет работать от напряжения 3.5-5.5 Вольт, собственно как и сама Arduino. Помним, что при питании ленты от напряжения ниже 5 Вольт будет уменьшаться максимальная яркость. Отсюда имеем следующие варианты:

  • Powerbank 5V – берём провод с USB штекером и подключаем по схемам выше. Через Ардуино не питаем, нельзя. Ёмкость паурбанков очень высокая, сами знаете. По току обычно можно снять 2 Ампера, есть паурбанки на 3 А
  • Батарейки – можно взять обычные АА батарейки, 3 штуки полностью заряженных (дадут 4,5 Вольт), либо 4 штуки чуть разряженных (дадут 5.5 Вольт). Ёмкость батареек очень небольшая. По току можно снять 1-2 Ампера (алкалин, литий. Солевые сразу в помойку)
  • Никелевые аккумуляторы – имеют напряжение ~1.4В после зарядки, можно смело поставить 4 штуки (~5.5 Вольт). Ёмкость сборки весьма достойная (до 2700 ма*ч), по току можно снять 2-3 Ампера
  • Литиевые аккумуляторы – напряжение в процессе разряда меняется с 4.2 до 3.0 Вольт, значит ленту можно питать, но светить будет на 10-30% менее ярко. Также нельзя забывать следить за напряжением, литий боится переразряда. Ёмкость – параллельно можно поставить много банок, по току – с обычных банок можно снять 3 Ампера (если стоят в параллель – то с каждой)
  • Литиевый акум + повышайка – отличный способ сохранить полную яркость при небольшом количестве светодиодов, у китайцев есть куча повышаек с лития (3-4.2В) до 5 Вольт с максимальным током до 2 Ампер. Считай тот же powerbank, но можно более компактно разместить

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

Через реле

Реле подключается к устройству на цифровой выход. Полоса, управляемая с его помощью имеет только два состояния – включенная и выключенная. Для управления red-blue-green ленточкой необходимы три реле. Ток, который может контролировать такое устройство, ограничен мощностью катушки (маломощная катушка не в состоянии замыкать большие контакты). Для подсоединения большей мощности используются релейные сборки.

С помощью биполярного транзистора

Для усиления выходного тока и напряжения можно использовать биполярный транзистор. Он выбирается по току и напряжению нагрузки. Ток управления не должен быть выше 20 мА, поэтому подается через токоограничивающее сопротивление 1 – 10 кОм.

Транзистор лучше применять n-p-n с общим эмиттером. Для большего коэффициента усиления используется схема с несколькими элементами или транзисторная сборка (микросхема-усилитель).

С помощью полевого транзистора

Кроме биполярных, для управления полосами используются полевые транзисторы. Другое название этих приборов – МОП или MOSFET-transistor.

Такой элемент, в отличие от биполярного, управляется не током, а напряжением на затворе. Это позволяет малому току затвора управлять большими токами нагрузки – до десятков ампер.

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

С помощью плат расширения

Кроме реле и транзисторов используются готовые блоки и платы расширения.

Это может быть Wi-Fi или Bluetooth, драйвер управления электродвигателем, например, модуль L298N или эквалайзер. Они предназначены для управления нагрузками разной мощности и напряжения. Такие устройства бывают одноканальными – могут управлять только монохромной лентой, и многоканальными – предназначены для устройств RGB и RGBW, а также лент со светодиодами WS 2812.

Варианты исполнения блоков питания для светодиодных лент

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

В виде компактного сетевого БП. Такие устройства выглядят как обычные зарядки для мобильных устройств.

Компактные сетевые блоки питания для светодиодных лент

Данное решение можно назвать эконом вариантом, поскольку из всех видов исполнения оно самое низкое по стоимости. Обратная сторона – низкая мощность, как правило, она не превышает 30-36 Вт (встречаются китайские изделия на 60 Вт, но в них этот параметр сильно завышен). Основная сфера применения – подключение простой подсветки. Главное достоинство – не требуется монтаж, драйвер достаточно воткнуть в розетку, предварительно подключив к выходу ленту.

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

Герметичный компактный электронный балласт, закрытый от внешнего воздействия

Отличительные особенности: небольшой вес, компактные размеры, защита от влаги и пыли

Это практически идеальный вариант для организации подсветки в потолочных нишах, если не принимать во внимание высокую стоимость адаптера (почти вдвое дороже аналогов с негерметичным корпусом)

Электронный балласт в герметичном корпусе из алюминия. Этот вариант исполнения рассчитан на суровые условия эксплуатации. Сфера применения таких БП — освещение наружной рекламы, подсветка зданий и других объектов, где производится монтаж светодиодов большой мощности. Установка в качестве адаптера бытовых источников света экономически не обоснована.

Блоки питания Arlight в герметичном алюминиевом корпусе

Отличительные особенности: устойчивость к механическому воздействию и деструктивным природным факторам (дождь, снег, УФ излучение). Что касается мощности, то с учетом нередкого изготовления таких адаптеров по спецзаказам, она может быть в довольно широком диапазоне. У типовых изделий этот параметр, как правило, от 80 до 200 Вт. Цена значительно выше, чем у других вариантов исполнения.

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

БП в негерметичном исполнении

Мощные устройства данного типа могут быть оборудованы принудительной вентиляцией, обеспечивающей охлаждение электронных компонентов, что продлевает срок службы адаптеров. Изготавливаются под напряжение 12 или 24 В. Невысокая цена и широкий ассортимент, позволяющий подобрать наиболее оптимальный вариант, сделали такие БП наиболее популярными. https://www.youtube.com/watch?v=xsyVQBIUFR0

Как это работает

Адресная лента WS2812B поделена на сегменты, в каждом из которых расположен светодиод и конденсатор (для повышения помехоустойчивости). Относительно напряжения питания все они между собой подключены параллельно, то есть +5 В будет присутствовать на каждом сегменте. А вот передача данных осуществляется последовательно: от предыдущего сегмента к последующему. Поэтому при выходе из строя одного из светодиодов цепи все следующие сегменты перестанут светиться. Управление готовыми устройствами и модулями на базе WS2812.

B производится с помощью специализированного контроллера, внутри которого записана программа. На радиолюбительском уровне управлять работой адресной светодиодной ленты удобней всего через Arduino, используя для этого небольшую программу – скетч. Схема подключения к Arduino

У каждой адресной ленты есть начало и конец, которые нельзя менять местами во время сборки схемы. Чтобы не запутаться, производители используют условные обозначения, например, стрелки, указывающие направление сигнала. Подключение адресной светодиодной ленты WS2812B к Arduino производится по трём проводам, как показано на рисунке.Контакты питания +5V и GND соединяют с соответствующими выводами на плате Arduino.

Если подсоединяемый отрезок насчитывает более 13-ти светодиодов, то необходимо использовать выносной блок питания. При этом общий провод (GND) Arduino и «минус» блока питания должны быть соединены между собой. Контакт DIN (digital input) предназначен для приёма данных от контроллера и электрически соединяется с любым из его цифровых портов. С другой стороны адресной ленты (и каждого сегмента тоже) размещено 3 контакта: +5V, DO (digital output) и GND, к которым можно подключить ещё несколько отрезков разной длины.

Так как каждый элемент WS2812B фактически состоит из 3 светодиодов (синего, красного, зелёного), то для управления его свечением потребуется 3 байта (по одному на каждый цвет). В свою очередь, каждый байт может принимать значение от 0 до 255, в результате чего можно задать более 16,5 млн оттенков. Размер скетча будет равен количеству светодиодных сегментов, умноженному на 3. Передача данных происходит следующим образом: ШИМ-драйвер WS2812B первого сегмента забирает из посылки первые 3 байта, пропуская остальные данные на выход DO.

Далее следует пауза длиною до 50 мкс, означающая, что второй по счёту драйвер должен принять следующие 3 байта. И так далее. Длительность паузы больше 50 мкс означает конец передачи и повторение цикла. Для работы с адресными лентами и модулями проще всего использовать библиотеки FastLED и Adafruit NeoPixel. Внутри каждой библиотеки есть готовые скетчи, на основе которых несложно научиться самостоятельно создавать новые световые эффекты. Чтобы скетч заработал с первого раза, необходимо в заголовке правильно указать количество светодиодов в ленте (NUM_LEDS) и номер порта для передачи данных (PIN).

Адресные ленты стоят дороже обычных лент, и применяются обычно там, где простые ленты по какой-то причине не применимы: полноцветные модульные сборки, декоративная подсветка с управлением «soft light», наружная реклама и т. д. Особенность таких сборок в том, что они способны изменять и цвет и яркость отдельных своих сегментов по более сложному алгоритму, нежели простые LED-ленты, даже если эти LED-ленты оснащены умными драйверами. ШИМ-сигнал управления подается со специального запрограммированного контроллера на вход ленты, и передается последовательно на вход одного чипа (digital input – DI), выходит из него (digital output – DO), затем проходит через второй чип, и т. д. Управление легко осуществить при помощи программы на ардуино.

Светодиодная лента в блоком управления.

Поделитесь в социальных сетях:FacebookXВКонтакте
Напишите комментарий