Как сделать подсветку для пк из ардуино и адресной ленты много эффектов переключение кнопками

Добавил пользователь Алексей Ф.
Обновлено: 09.10.2024

Схема подключения адресной ленты 5 Вольт к Ардуино

WS2812B Arduino Uno Arduino Nano Arduino Mega
GND GND GND GND
5V 5V 5V 5V
DO 10 10 10

Для работы с лентой используются три популярные библиотеки — FastLED, AdafruitNeoPixel и LightWS2812. Все библиотеки доступны для скачивания на нашем сайте здесь. Работать с библиотеками FastLED и Adafruit NeoPixel просто, отличаются они в функциональности и объеме занимаемой памяти. После сборки этой простой схемы и установки библиотек, загрузите скетч для адресной светодиодной ленты.

Скетч. Тестирование адресной ленты WS2812

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

Схема подключения адресной ленты 12 Вольт к Ардуино

Если у вас лента на 12 Вольт, то ее нужно подключать по схеме, размещенной выше. Резистор на цифровом пине защищает его от выгорания (если питание к ленте будет отключено, то она начнет питаться от цифрового пина, при этом пин может выгореть. Также не стоит подключать питание ленты к плате Ардуино, иначе может выгореть защитный диод на Ардуино или USB порт на компьютере (в худшем случае).

Скетч. Управление адресной лентой Ардуино

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

  1. с помощью библиотеки Adafruit NeoPixel довольно просто управлять адресной лентой. В примерах к библиотеке можно найти много различных эффектов. Мы продемонстрировали простой вариант с циклом for для включения ленты.

Заключение. В этом обзоре мы рассмотрели лишь подключение и возможность управления адресной лентой от Ардуино. Так как возможности работы с библиотеками FastLED, AdafruitNeoPixel довольно разнообразны. Больше интересных примеров на Arduino и WS2812B размещено в разделе Проекты на Ардуино, где представлены проекты с бегущей строкой на адресной ленте и другие световые эффекты.

1Описание RGB светодиодов WS2812 и WS2812B

Светодиод WS2812 (или его модификация WS2812B, которая и будет использована в данной статье) представляет собой RGB светодиод. То есть в одном корпусе представлены сразу три светодиода разных цветов: красный, зелёный и синий.

Внешний вид и габариты светодиодов WS2812

Светодиод WS2812 имеет 6 выводов, в то время как WS2812B – лишь 4.

А вот назначение выводов светодиода WS2812B:

Внешний вид и габариты светодиодов WS2812B

Для примера на схеме показано последовательное подключение трёх светодиодов. На вход DIN первого светодиода подаётся управляющий сигнал. Светодиод обрабатывает его и передаёт далее со своего выхода DOUT на вход следующего в цепочке светодиода. И так сигнал проходит по всей цепочке светодиодов, каждый из которых считывает свою управляющую последовательность и изменяет свой цвет и интенсивность в соответствии с пришедшей командой.

Последовательное подключение светодиодов WS2812B

На фотографии представлена панель размером 10 на 10 светодиодов, с которой мы и будем экспериментировать. Как видно, на нижней части панели светодиоды соединены в единую цепочку.

Верхняя сторона панели светодиодов WS2812B Нижняя сторона панели из светодиодов WS2812B

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

Управление светодиодной панелью WS2812B

Приблизительное потребление вашего устройства можно оценть так. Один канал светодиода на максимальной яркости потребляет около 20 мА. В одном корпусе располагаются 3 светодиода. Следовательно, один RGB светодиод в максимуме потребляет до 60 мА тока. Умножаете это число на количество светодиодов в вашей матрице или ленте – это и будет максимально возможное потребление, и ваш источник питания должен иметь возможность выдать такой ток.

Адресная светодиодная лента Ардуино

Адресные ленты отличаются плотностью — от 30 до 144 светодиодов на метр, изготавливаются разном защитном исполнении: IP30, IP65, IP67, IP68. Все варианты исполнения, кроме IP30, могут применяться на улице в диапазоне температур от -25 до +80°C. Еще одна, более надежная лента — WS2813 отличается возможностью передавать сигналы дальше по цепочке даже через сгоревший чип.

Светодиодная лента WS2812B характеристики

  • Размер светодиода — 5 х 5 мм
  • Частота ШИМ — 400 Гц
  • Скорость передачи данных — 800 кГц
  • Размер данных — 24 бита на светодиод
  • Напряжение питания — 5 Вольт
  • Потребление при нулевой яркости — 1 мА на светодиод
  • Потребление при максимальной яркости — 60 мА на светодиод
  • Цветность: RGB, 256 оттенков на канал, 16 миллионов цветов



Характеристики WS2812B адресной светодиодной ленты

Адресная светодиодная лента ws2812b — это вершина эволюции лент. Каждый светодиод в ленте состоит из обычного RGB светодиода и контроллера с тремя транзисторными выходами. Благодаря этому есть возможность управлять цветом любого светодиода и создавать потрясающие цветовые и световые эффекты. Именно поэтому устройство пользуется популярностью, несмотря на высокую стоимость.

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

При подключении обращайте внимание на направление стрелок

Многих интересует, как включить адресную ленту без Ардуино и проверить ее на работоспособность. Если просто подключить питание к ленте, то ничего не произойдет — проверить ленту без контроллера нельзя. Если задеть цифровой вход адресной ленты, то могут загореться несколько светодиодов из-за случайных помех, которые воспринимаются контроллерами ws2812b светодиодов, как команды.

Если под рукой нет платы Ардуино, то можно использовать для проверки специальный контроллер. В крайнем случае, просто потрогать цифровой провод, чтобы понять будут гореть светодиоды на ленте или нет. Другого надежного способа проверить работу ws2812b ленты нет, поэтому рассмотрим далее управление и программирование адресной светодиодной ленты на микроконтроллере Ардуино Нано или Уно.

Немного теории

Заметьте, что эффект свечения возникает только при совпадении плюсов и минусов. То есть, если вы подключите светодиод к источнику переменного тока, то он начнет моргать. Но и это еще не все. Кристаллы эти довольно малы – не более пяти миллиметров в диаметре. Если через них пропустить бытовой ток в 15 А, то они попросту сгорят. По этой причине светодиодные ленты подключают к особым источникам питания, понижающим напряжение и выпрямляющим его.

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

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

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

Плюсы и минусы

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


У таких устройств масса достоинств.



Но есть и недостатки.

  • Нужен отдельный источник питания на 5 или 12 В. Блок Arduino может дать только 800 мА тока, которого хватит только на 13 пикселей (один пиксель потребляет 40-60 мА).
  • Соединения требовательны к качеству пайки.

Если вы умеете хорошо паять, то собрать схему не составит труда. А если не умеете, то самое время научиться. Так что смело приступайте к выбору светотехники.


Светодиодные ленты

Светодиодная лента представляет собой цепь соединённых светодиодов. Соединены они не просто так, например обычная 12V лента состоит из сегментов по 3 светодиода в каждом. Сегменты соединены между собой параллельно, то есть на каждый приходят общие 12 Вольт. Внутри сегмента светодиоды соединены последовательно, а ток на них ограничивается общим резистором (могут стоять два для более эффективного теплоотвода):

Таким образом достаточно просто подать 12V от источника напряжения на ленту и она будет светиться. За простоту и удобство приходится платить эффективностью. Простая математика: три белых светодиода, каждому нужно по ~3.2V, суммарно это 9.6V. Подключаем ленту к 12V и понимаем, что 2.5V у нас просто уходят в тепло на резисторах. И это в лучшем случае, если резистор подобран так, чтобы светодиод горел на полную яркость.

Подключаем к Arduino

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

Конечно же, можно воспользоваться китайским мосфет-модулем! Пин VCC кстати можно не подключать, он никуда не подведён на плате.

Управление

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

Про RGB и адресные светодиодные ленты мы поговорим в отдельных уроках.

Питание и мощность

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

  • Яркость. Максимальная мощность будет потребляться на максимальной яркости.
  • Напряжение питания (чаще всего 12V). Также бывают 5, 24 и 220V ленты.
  • Качество, тип и цвет светодиодов: одинаковые на вид светодиоды могут потреблять разный ток и светить с разной яркостью.
  • Длина ленты. Чем длиннее лента, тем больший ток она будет потреблять.
  • Плотность ленты, измеряется в количестве светодиодов на метр. Бывает от 30 до 120 штук, чем плотнее – тем больший ток будет потреблять при той же длине и ярче светить.

Лента всегда имеет характеристику мощности на погонный метр (Ватт/м), указывается именно максимальная мощность ленты при питании от номинального напряжения. Китайские ленты в основном имеют чуть меньшую фактическую мощность (в районе 80%, бывает лучше, бывает хуже). Блок питания нужно подбирать так, чтобы его мощность была больше мощности ленты, т.е. с запасом как минимум на 20%.

  • Пример 1: нужно подключить 4 метра ленты с мощностью 14 Ватт на метр, лента может работать на максимальной яркости. 14*4 == 56W, с запасом 20% это будет 56*1.2 ~ 70W, ближайший блок питания в продаже будет скорее всего на 100W.
  • Пример 2: берём ту же ленту, но точно знаем, что яркость во время работы не будет больше половины. Тогда можно взять блок на 70 / 2 == 35W.

Важные моменты по току и подключению:

  • Подключение: допустим, у нас подключено ленты на 100W. При 12 Вольтах это будет 8 Ампер – весьма немаленький ток! Ленту нужно располагать как можно ближе к блоку питания и подключать толстыми (2.5 кв. мм и толще) проводами. Также при создании освещения есть смысл перейти на 24V ленты, потому что ток в цепи будет меньше и можно взять более тонкие провода: если бы лента из прошлого примера была 24-Вольтовой, ток был бы около 4 Ампер, что уже не так “горячо”.
  • Дублирование питания: лента сама по себе является гибкой печатной платой, то есть ток идёт по тонкому слою меди. При подключении большой длины ленты ток будет теряться на сопротивлении самой ленты, и чем дальше от точки подключения – тем слабее она будет светить. Если требуется максимальная яркость на большой длине, нужно дублировать питание от блока питания дополнительными проводами, или ставить дополнительные блоки питания вдоль ленты. Дублировать питание рекомендуется каждые 2 метра, потому что на такой длине просадка яркости становится заметной уже почти на всех лентах.
  • Охлаждение: светодиоды имеют не 100% КПД, плюс ток в них ограничивается резистором, и как результат – лента неслабо греется. Рекомендуется приклеивать яркую и мощную ленту на теплоотвод (алюминиевый профиль). Так она не будет отклеиваться и вообще проживёт гораздо дольше.

Шаг 6. Скетч Arduino Ambilight

Ниже вы можете скачать или скопировать код для нашей подсветки Ардуино Эмбилайт.

Ардуино и адресная светодиодная лента

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

Теперь, когда мы рассмотрели схему с обычной светодиодной лентой, перейдем к адресным светодиодным лентам SPI RGB лента.

Светодиодная лента Ардуино – Яркие идеи.

Эти ленты требуют меньшего количества компонентов для запуска, и есть некоторая свобода в отношении именно того, какие значения компонентов вы можете использовать. Конденсатор в этой цепи гарантирует, что светодиоды 5v получают постоянный источник питания. Резистор становится гарантом того, что сигнал данных, полученный от Arduino, не загружен всяческими помехами.

? Светодиодная лента 5v WS2811/12/12B; Все три модели имеют встроенные микросхемы и работают одинаково.

? 1 x Arduino Uno или аналогичная совместимая плата;

? 1 x резистор 220-440 Ом;

? 1 x конденсатор microFarad 100-1000 (все, что между этими двумя значениями, отлично подойдет);

? Макет и монтажные провода;

? Блок питания 5 В.

Настройте схему, как показано на рисунке:

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

На этот раз мы задействуем Arduino, используя источник питания 5 В. Это позволит устройству работать автономно

Вы можете понять, какая сторона прикрепляется к рейке земля, ища знак минуса (-) на корпусе конденсатора. На этот раз мы задействуем Arduino, используя источник питания 5 В. Это позволит устройству работать автономно.

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

Кроме того, рекомендуется убедиться, что несколько отдельных источников питания не подключены к Arduino – отсоединяйте USB-кабель всякий раз, когда используете внешний источник питания.

Светодиодная лента Ардуино – Бегущий огонь или световая волна

Чтобы безопасно запрограммировать нашу плату, отсоедините линию VIN от линии электропередач. Вы подключите ее позже обратно.

Все, что вам нужно изменить, — это переменная DATA_PIN, чтобы она соответствовала значку 13 и переменной NUM_LEDS для определения количества светодиодов, находящихся в полосе, которую вы используете. В этом случае я применяю только небольшую линию из 10 светодиодов, вырезанных из более длинной полосы.

Используйте большее количество для красивейшего светового шоу!

Загрузите эскиз на свою плату, отсоедините USB-кабель и включите источник питания 5 В.

Наконец, подключите VIN Arduino к линии электропередач и наслаждайтесь представлением.

Светодиодная лента Ардуино – Безграничные возможности

Демо-эскиз демонстрирует некоторые из многих возможных комбинаций эффектов, которые могут быть достигнуты с помощью светодиодных лент. Наряду с тем, что они являются украшением интерьера, их также можно использовать для практических целей. Хорошим проектом будет создание вашей собственной атмосферы для медиацентра или рабочего места.
Хотя эти полосы определенно функциональнее, чем SMD5050, пока не списывайте со счетов стандартные 12-вольтовые светодиодные полосы. Они являются непревзойденными с точки зрения цены. Плюсом будет то, что существует огромное количество приложений для светодиодных лент.

Учиться работать со светодиодными лентами — хороший способ познакомиться с базовым программированием на Arduino, но лучший способ учиться — изменять коды. Побалуйтесь с приведенным выше кодом и посмотрите, что вы можете сделать! Если все это слишком сложно для вас, подумайте о проектах Arduino для начинающих.

Светодиодная лента Ардуино – написание кода.

Начните с определения штырей, которые будут использоваться для управления МОП-транзисторами.

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

int brightness = 255;
int gBright = 0;
int rBright = 0;
int bBright = 0;
int fadeSpeed = 10;

В вашей настройке мы установим выводы Arduino. Мы также будем вызывать пару функций с задержкой в 5 секунд. Этих функций еще не существует, но не беспокойтесь, мы доберемся до них.

void setup() pinMode(GREEN_LED, OUTPUT);
pinMode(RED_LED, OUTPUT);
pinMode(BLUE_LED, OUTPUT);

TurnOn();
delay(5000);
TurnOff();
>
Теперь создайте метод TurnOn ():
void TurnOn() for (int i = 0; i

Закончив этот код, сохраните его. Проверьте код и загрузите на плату Arduino. Если вы видите ошибки, проверьте код снова на предмет каких-либо опечаток или отсутствующих точек с запятой.

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


Теперь вы должны увидеть, что ваша светодиодная лента Ардуино наращивает яркость, удерживая белый оттенок в течение 5 секунд, а затем равномерно исчезает до нуля:


После переноса старого Эффектора на платформу Arduino (ATmega328P) стало возможно развивать проект дальше. И вот теперь к Эффектору я подключил умную ленту (NeoPixels) WS2812.
При этом новый Эффектор WS2812 не просто выводит свои эффекты на умную ленту вместо обычных светодиодов, но еще и обзавелся внушительным количеством нового функционала.

Новые плюшки:
— переделан алгоритм формирования уровней, теперь яркость каналов имеет 255 градаций (по сравнению с 8 в предыдущем варианте)

— переделаны встроенные эффекты, теперь они стали плавней
— количество встроенных эффектов увеличено с 8 до 16.

Правда из программы управления Эффектор-12 доступны, как и в предыдущем варианте, только 8 (не стал переделывать программу, дабы осталась совместимость со всеми вариантами Эффекторов), но с самого Эффектора и пульта можно переключать все 16

— как и в предыдущем Эффекторе осталось управление от ИК-пульта, но добавились новые команды управления, связанные с умной лентой
— так как умная лента цветная, то для формирования разных цветов от монохромных сигналов уровня каналов, были задействованы палитры цветов. Можно выбрать одну из 8 палитр (включая динамическую палитру переливающихся цветов)
— теперь Эффектор может быть участником сети ЗиЧип как сателлит

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

Как это выглядит вживую.

Сборка

Так как устройство работает на готовой плате Arduino Nano (или Uno), собирать/паять ничего особо и не придется. Достаточно подключить к Ардуине умную ленту (к выводу 13), залить прошивку (через стандартный ардуиновский USB шнур) и устройство заработает.


Если у Вас количество пикселей WS2812 не превышает 2-3 десятка, то и блока питания отдельного не понадобится – все будет работать от USB-порта. Если лента длинная — USB-порт не сможет обеспечить нужный ток. В этом случае понадобится внешний мощный блок питания 5 вольт.

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

Если хотите получить от устройства большего – добавляете переменные резисторы, кнопки и TSOP т.д.


Описание работы

Новым способом управления в этом устройстве являются аналоговые входа (АЦП). Посредством напряжения на них (в пределах 0 – 5 вольт) можно изменять картинку, отображаемую на ленте. Линии АЦП подтянуты к 5 вольтам, то есть если к линии ничего не подключено, устройство воспринимает это как максимальный уровень.

– strip_Pixels Number – количество пикселей в ленте, воспроизводящих картинку (5 вольт – 255шт., 0 – 0)
– strip_Scale – масштабирование картинки на ленте (5 вольт – масштаб 1канал:1пиксель, 0 – на всей ленте проецируется 1 канал)
– strip_Offset – смещение рисунка по ленте
– strip_Bright – общая яркость свечения ленты (5 вольт – максимум, 0 – минимум)

Управление посредством уровня напряжения открывает новые возможности использования устройства. Например, если подключить к входу strip_Pixels Number аналоговый сигнал с усилителя, то мы получим линейку-индикатор уровня. Еще, задействовав палитру огня и подключив к strip_Bright сигнал с градусника можно визуализировать температуру и т.д.

Управление устройством посредством бытового пульта.

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

4 – последовательно нажать на пульту 9 кнопок в очередности функций (кнопок устройства 0 All Off … 8 strip_IR Out)
5 – после этого устройство автоматически начинает работать в штатном режиме

Каждое нажатие кнопки на пульте будет подтверждаться индикаторным светодиодом.

Если какая либо кнопка не нужна в устройстве (например, 8 strip_IR Out советую пока не задействовать), то в процессе ее изучения нужно нажимать ранее изученную клавишу.

Управление устройством посредством программы Эффектор-12.

Несмотря не значительные изменения, устройство осталось совместимым с программой Эффектор-12 (за исключением некоторых нюансов, связанных с палитрами и дополнительным функционалом). Встроенный в Ардуину USB-UART, позволяет без каких либо проблем, подключить устройство к компьютеру и управлять им. Напомню, что программа управления умеет управлять каналами и эффектами устройства в ручном режиме, визуализировать музыку (с возможностью самостоятельно создавать различные способы визуализации), выполнять различные действия по времени и т.д. Подробней читайте в соответствующей статье .

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

Адресные светодиодные ленты

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

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

Как правило, лента содержит 3-4 контакта для подключения. Два вывода используются для питания – 5 Вольт и земля, остальные один или два – логический, для управления свечением.
Управление умной лентой производится по цифровому протоколу. Это значит, что без управляющего контроллера управлять устройством нельзя. Кстати, при прикосновении к цифровому входу может загореться несколько диодов – это связано с тем, что появляются помехи, которые контроллер принимает за команды.

Самыми популярными адресными светодиодными лентами являются устройства на чипах WS2812B и WS2811. В первом случае чип находится прямо внутри светодиода, то есть один прибор управляет свечением одного излучающего диода. Питание ленты составляет 5 вольт. Во втором случае чип помещается отдельно, и к нему подключаются 3 диода. Мощность – 12 вольт.

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

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

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

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

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

Лента на базе WS2812B

Лента на чипе WS2812B является более совершенной, чем ее предшественник WS2811. ШИМ драйвер в адресной ленте компактен, и размещается прямо в корпусе светоизлучающего диода.

Основные преимущества ленты на основе WS2812:

  • компактные размеры
  • легкость управления
  • управление осуществляется всего по одной линии + провода питания
  • количество включенных последовательно светодиодов не ограничено
  • невысокая стоимость – покупка отдельно трех светодиодов и драйвера к ним выйдет значительно дороже

Лента оснащена четырьмя выходами:

  • питание
  • выход передачи данных
  • общий контакт
  • вход передачи данных.

Пример подключения к Arduino

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

Лента WS2812B подключается к Ардуино следующим образом:

Подключение WS2812 к Arduino

Схема подключения WS2812 к Arduino

Выходы питания с ленты 5В и земля соединяются с соответствующими контактами на микроконтроллере Ардуино. При подключении отрезка с более чем 13 светодиодами потребуется выносной блок питания. Земля и минус блока питания должны быть соединены друг с другом. DIN можно подключить к любому цифровому порту на плате Arduino. Он используется для получения данных с контроллера.
Цифровой вход ленты идет на вход контроллера, поэтому между ними нужен токоограничивающий резистор номиналом 100-500 Ом. С его использованием нагрузка на пин будет ниже.
На другом конце ленты также есть 3 контакта, к которым можно подключить отрезки различной длины.

Каждый блок ленты состоит из трех светодиодов. Соответственно, для управления подсветкой потребуется 3 байта – по одному на каждый свет. Каждый байт принимает значение от 0 до 255 – это значит, что есть возможность задания более 16 миллионов оттенков. Данные передаются следующим образом:

  • ШИМ драйвер забирает первые 3 байта, остальные передаются на выход D0
  • затем пауза длительностью 50 мкс
  • второй драйвер принимает следующие 3 байта

И так далее. Когда длительность задержки становится более 50 мкс, передача окончена и начинается второй цикл.

Причины проблем при работе с адресной светодиодная лентой:

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

Библиотеки Ардуино для работы со светодиодной лентой

Для управления адресной светодиодной лентой существует 3 библиотеки: FastLED, AdafruitNeoPixel и LightWS2812 . Наиболее популярной является первая. Она поддерживает все версии Ардуино и различные протоколы данных, которые используются не только для адресной ленты. Но надо иметь в виду, что FastLED более ресурсоемкая.

Вторая библиотека, AdafruitNeoPixel , чаще используется при работе со светодиодными кольцами. Возможностей меньше, скорость ниже, но она менее требовательна к ресурсам, в ее составе только самое нужное. Поддерживает все версии Ардуино. Третья библиотека используется не очень часто.

Работать с библиотеками FastLED и Adafruit NeoPixel одинаково просто. Их отличия заключаются в функциональности и объеме занимаемой памяти.

Основные моменты подключения ленты:

  • Команды передаются друг за другом, и нужно не перепутать начало и конец. D1 принимает команды, D0 используется для подключения дополнительных отрезков
  • Для подключения цифрового входа нужно резистор
  • При монтаже адресной светодиодной ленты нельзя допускать статического электричества
  • Если между лентой и Ардуино расстояние более 15 см, сигнальный провод и землю нужно перекрутить в косичку. Это поможет избежать наводок.
  • Питание. Каждому светодиоду в сегменте нужно 20 мА. Суммарный ток будет составлять 60 мА. Нужно просчитать общий ток ленты, и, исходя из полученного значения, подбирать блок питания. Например, лента длиной 1 м с 60 диодами будет потреблять 60*60=3600 мА=3,6 Ампер. Блок питания подбирается с похожей мощностью
  • Силовые точки должны быть запаяны качественно. Провода должны иметь такое сечение, чтобы выдерживать подаваемую нагрузку. Минимальное сечение 1,5 кв.м. При тонких проводах заданный программно белый цвет будет отдавать красным оттенком
  • Помехи. Лента, которая мигает, может создать помехи на линии. Если она с контроллером получает напряжение от одного источника, то помехи пойдут на микроконтроллер. Это может привести к нестабильности работы и различным сбоям. Решением проблемы будет установка электролитического конденсатора емкостью 470 мкФ на питание микроконтроллера и конденсатор на 1000 или 2200 мкФ на питание ленты
  • Если лента и устройство управления питаются от источников с разным напряжением, нужно использовать преобразователь уровня
  • Рекомендуется подавать на ленту менее 5 В питания
  • Питание в длинной ленте советуется распределить по всей длине. В ином случае моет произойти перегрев токопроводящих дорожек
  • На ленте имеется толстый слой меди. От точки питания по ленте может падать напряжение. Для удаления подобной проблемы нужно дублировать питание при помощи медного провода сечением минимум 1,5 кв.м. через каждый метр

Соблюдение основных моментов и следование инструкции позволяет самостоятельно подключить адресную светодиодную ленту к вашему проекту.

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

Светодиодная лента на базе WS2812B

Отличие адресной LED-ленты от стандартной RGB заключается в том, что яркость и соотношение цветов каждого элемента регулируются отдельно. Это позволяет получить световые эффекты, принципиально недоступные для других типов осветительных приборов. Управление свечением адресной LED-ленты производится известным способом – с помощью широтно-импульсной модуляции. Особенностью системы является оснащение каждого светодиода своим собственным ШИМ-контроллером. Микросхема WS2812B представляет собой трехцветный светоизлучающий диод и схему управления, объединенные в одном корпусе.

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

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

Внешний вид адресной ленты.

Шина управления микросхемы WS2812B состоит из одной линии – по ней передаются данные. Данные кодируются в виде импульсов постоянной частоты, но с разной скважностью. Один импульс – один бит. Длительность каждого бита составляет 1,25 мкс, нулевой бит состоит из высокого уровня длительностью 0,4 мкс и низкого 0,85 мкс. Единица выглядит, как высокий уровень в течение 0,8 мкс и низкий 0,45 мкс. Каждому светодиоду отправляется посылка из 24 бит (3 байт), дальше следует пауза в виде низкого уровня в течение 50 мкс. Это означает, что дальше будут передаваться данные для следующего LED, и так для всех элементов цепочки. Завершается передача данных паузой в 100 мкс. Это означает, что цикл программирования ленты завершен, и можно отправлять следующий набор пакетов данных.

Данные для управления адресной лентой.

Такой протокол позволяет обойтись для передачи данных одной линией, но требует точности выдержки временных интервалов. Расхождение допускается не более 150 нс. Кроме того, помехозащищенность такой шины очень низкая. Любые помехи достаточной амплитуды могут быть восприняты контроллером, как данные. Это накладывает ограничения на длину проводников от схемы управления. С другой стороны, это дает возможность проверки исправности ленты без дополнительных приборов. Если на светильник подать питание и дотронуться пальцем до контактной площадки шины управления, некоторые светодиоды могут хаотически загораться и гаснуть.

Технические характеристики элементов WS2812B

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

Габариты LED5x5 мм
Частота модуляции ШИМ400 Гц
Потребляемый ток на максимальной яркости60 мА на один элемент
Напряжение питания5 вольт

Стариков Михаил

Потребляемая светильником мощность достаточно высока. Она определяется не только током, необходимым для инициации свечения p-n переходов, но и коммутационными потерями при формировании ШИМ. Для полотна из 15 элементов источник питания и проводники рассчитываются на ток не менее 1 ампера.

Arduino и WS2812B

Популярная в мире платформа Ардуино позволяет создавать скетчи (программы) для управления адресными лентами. Возможности системы достаточно широки, но если их на каком-то уровне перестанет хватать, полученных навыков будет достаточно, чтобы безболезненно перейти на С++ или даже на ассемблер. Хотя начальные знания проще получить на Arduino.

Подключение ленты на базе WS2812B к Arduino Uno (Nano)

На первом этапе достаточно простых плат Arduino Уно или Ардуино Нано. В дальнейшем для построения более сложных систем можно будет использовать более сложные платы. При физическом подключении адресной светодиодной ленты к плате Arduino надо следить за соблюдением нескольких условий:

  • из-за низкой помехоустойчивости соединительные проводники линии данных должны быть как можно короче (надо постараться сделать их в пределах 10 см);
  • подключать проводник данных надо к свободному цифровому выходу платы Arduino – он потом будет указан программно;
  • из-за высокого энергопотребления не надо запитывать ленту от платы – для этой цели предусматриваются отдельные источники питания.

Общий провод питания светильника и Ардуино надо соединить.

Схема подключения WS2812B.


Основы программного управления WS2812B

Уже упоминалось, что для управления микросхемами WS2812B надо сформировать импульсы с определенной длиной, выдерживая высокую точность. В языке Ардуино для формирования коротких импульсов есть команды delayMicroseconds и micros. Проблема в том, что разрешение этих команд составляет 4 микросекунды. То есть, сформировать временные задержки с заданной точностью не получится. Надо переходить к средствам С++ или Ассемблера. А можно организовать управление адресной светодиодной лентой через Arduino с помощью специально созданных для этого библиотек. Начать знакомство можно с программы Blink, заставляющей светоизлучающие элементы мигать.

FastLed

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

Сначала библиотеку надо подключить. Это делается до блока setup, а строка выглядит так:

Следующим шагом надо создать массив для хранения цветов каждого светоизлучающего диода. Он будет иметь наименование strip и размерность 15 – по числу элементов (этому параметру лучше назначить константу).

CRGB strip[15]

В блоке setup надо указать, с какой лентой будет работать скетч:

void setup()

FastLED.addLeds (strip, 15);

int g;

Параметр RGB устанавливает порядок чередования цветов, 15 означает количество светодиодов, 7 – номер вывода, назначенного для управления (последнему параметру тоже лучше назначить константу).

Блок loop начинается с цикла, который последовательно записывает в каждый раздел массива Red (красное свечение):


for (g=0; g

Адресная светодиодная лента на Arduino – отличное решение для создания SMART освещения в любом помещении либо создания цветомузыки / эффекта декоративной подсветки. LED-ленты давно перестали быть роскошью в интерьерах, на сегодняшний момент этот сегмент рынка технологий активно развивается. И это совсем не удивительно, ведь такие модули экономны в потреблении энергии, безопасны, при этом достаточно надежны (не пожароопасные, тк. не нагреваются), да и стоят просто копейки.

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

Важно! Для 5 и 12-вольтовых лент следует использовать блоки питания. Если источник ниже 5V, возможны перепады яркости свечения.

Вернемся к схеме. Для реализации выше обозначенного проекта понадобятся библиотеки. Тут выбор также есть: FastLED (поддержка всех Ардуино-платформ) или Adafruit NeoPixel (меньшее потребление памяти и др.ресурсов).

Напишем скетч с применением 1-ого софта:

Цветомузыка на Ардуино

Читайте также: