Адресная светодиодная лента для Arduino: маркировка, характеристики, подключение

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

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

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

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


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

Лампа на светодиодной ленте с красивыми эффектами

Сразу скажу, что проект не мой, а является немного доработанной версией лампы от Alex Gyver, за что ему большое спасибо!

Вот ссылка на оригинальный проект: огненный светильник.

Из изменений:

  • корпус напечатан на 3D-принтере (файлы для печати ниже)
  • разъем для подключения блока питания
  • не сенсорная а обычная кнопка, размещенная сбоку внизу

Лампу делал не с целью улучшения, а в подарок, но решил все-таки добавить описание на сайт — вдруг кому-то пригодится.

Подготовка

Итак, для реализации проекта использовался все тот же плафон из Леруа-мерлен «плафон цилиндр»:

Все остальное можно заказать у китайцев:

  • Arduino Nano:   
  • Адресная RGB-лента WS2812B:   
  • Блок питания на 5 вольт (3А, но хватит и 2A):   
  • Кнопка (использовал самую большую):   
  • Резистор на 220 Ом:   
  • Разъем питания использовал такой:

Были использованы следующие инструменты:

  • Паяльник (пользуюсь таким давно, идеальный по соотношения цена/качество):   
  • 3D-принтер (закрытый корпус, можно печатать и PLA, и ABS без проблем): ,  
  • Инструмент для зачистки и обжима проводов (фирменный китайский LAOA): ,  

Сборка

Файлы для печати верхней и нижней части: lamp.zip.

При печати следует учесть, что, хоть размеры подгонялись под конкретный плафон, все же могут быть небольшие расхождения в размерах. Зависит от того, на каком 3D-принтере вы печатаете, с какими настройками и каким пластиком. Поэтому для плотного прилегания плафона к напечатанным частям может понадобится чуть подкорректировать размер моделей и перепечатать, либо применить изоленту/напильник.

Для лампы я использовал 4 куска светодиодной ленты по 10 светодиодов на каждом. У вас может быть другое количество светодиодов, в зависимости от типа ленты. Главное: лента должна быть именно адресная WS2812B.

После печати нижней части можно приступать к сборке. В модели предусмотрено гнездо для кнопки. Сажаем ее туда, приклеив на любой подходящий клей (я использовал клеевой пистолет). Предварительно нужно отломать 2 из 4 ножек, а 2 оставшиеся должны пропускать ток при нажатии (они расположены рядом). Просовываем их в отверстие сверху от углубления. И вставляем разъем питания.

Ну и наклеиваем куски ленты

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

Далее — спаиваем 4 части адресной ленты — контакты 5v, gnd и сигнальный. Как именно — подробно показано в видео на странице оригинального проекта. Если вы только учитесь паять — не следует бояться паять адресную ленту, паяется все она очень легко. Единственный совет — я использую жидкий флюс ЛТИ-120. Он в разы лучше, чем твердая канифоль. Наносить его удобнее всего кисточкой от лака для ногтей. Также он не является активным, поэтому после его применения не нужно очищать контакты.

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

Код

Код был полностью взять с оригинального проекта. Единственное изменение, которое нужно сделать, это поменять тип используемой кнопки. Для этого в основном файле прошивки (на данный момент это gyverLight_v1.4.ino) меняем строчку 39:

на

В общем то и все.

Блок питания

Также нужно будет позаботиться о питании устройства.

Блок питания нам понадобится на 12 вольт, а мощность варьируется в зависимости от длины ленты и плотности светодиодов. 

К примеру, лента со светодиодами 5050, плотностью 60 светодиодов на метр потребляет максимум 0,8 А на метр. Данные выведены чисто экспериментально, ибо в даташитах на ленты с этими светодиодами красуется цифра 14,4 ватт на метр, что означает 1,2 Ампера при 12 вольтах.

Значит для 5-ти метровой ленты достаточно блока питания 4А. И это для максимальной яркости в режиме белого цвета. Также, если цвет отличается от белого, то потребление снижается.

Чтобы было легче выбрать блок питания я тут заморочился и нарисовал таблицу потребления для ленты.

 Максимально потребляемый светодиодной лентой ток , Ампер:


Расчёт потребления тока светодиодными лентами

Соответственно выбираем блок питания способный выдать ток НЕ МЕНЬШИЙ чем способна потребить ваша лента.

Светодиодная матрица и сдвиговые регистры

В нашем уроке мы будем подключать к Ардуино Уно самую простую светодиодную матрицу 8×8 красного свечения. Нумерация выводов начинается с нижнего левого угла. При этом, нумерация ног 1-16 не связана никакой логикой с нумерацией колонок и строк C и R.

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

Принципиальная схема

Важное замечание №1. Необходимо, чтобы резисторы в этой схеме были на линиях, идущих от первого сдвигового регистра

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

Важное замечание №2. Указанная выше схема носит сугубо ознакомительный характер

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

Отличие лент ws2812, ws2812b, ws2811

Наиболее распространенные модели со встроенными микросхемами имеют маркировку WS2812 или WS2812b. С внешними – WS2811.

Чем модель ws2812 отличается от ws2812b? Первые имеют 6 контактов (PIN) для управления, а вторые, с буковкой “b” – всего четыре.

На 2812 питание светодиода и чипа разнесены. У 2812b питание интегрированного драйвера и светодиода вынесено на один PIN (VDD).

А в чем главные отличия между ws2812b и ws2811?

ws2812b – работает от 5v

ws2811 – питание 12v (в 2015г прекращен выпуск последних моделей на 5в)

WS2812 управляет кластерами по одному диоду, WS2811 управляет тремя светодиодами одновременно.

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

Ардуино – принцип действия

Плата Ардуино – это устройство, на котором установлен программируемый микроконтроллер. К нему подключены различные датчики, органы управления или encoder и, по заданному скетчу (программе), плата управляет моторами, светодиодами и прочими исполнительными механизмами, в том числе и другими платами Ардуино по протоколу SPI. Контроль устройства может осуществляться через дистанционный пульт, модуль Bluetooth, HC-06, Wi-Fi, ESP или internet, и кнопками. Одни из самых популярных плат – Arduino Nano и Arduino Uno, а также Arduino Pro Mini – устройство на базе микроконтроллера ATmega 328

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

Светодиодная лента WS2811 12 В против светодиодной ленты WS2812B 5 В

Этого не всегда достаточно для точного воспроизведения выбранных вами цветов.

Если вместо этого вы начнете с 12 вольт и получите такое же падение на 2,5 вольт, это будет представлять собой только изменение напряжения 21%, а оставшиеся 9,5 вольт будут давать значительно более точные цвета, чем 5-вольтовая светодиодная лента ws2812b.

Вы можете увидеть разницу в точности цветопередачи между 12-вольтовой WS2811 и 5-вольтовой адресной светодиодной лентой ws2812B здесь, когда они обе выдают яркость 100% для всей светодиодной ленты.

Решение этой проблемы заключается в подаче питания на оба конца цифровой светодиодной ленты методом, называемым инжекцией мощности.

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

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

Самое главное, что самые дешевые версии светодиодной ленты WS2811 не имеют индивидуальной адресации, обычно светодиодная лента WS2811 имеет один микроконтроллер, который фактически питает 3 светодиодных пикселя или в общей сложности 9 каналов.

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

В моих тестах адресная светодиодная лента WS2811 показала одно из самых высоких значений энергопотребления, когда светодиоды не горели.

Потребляя 1,27 Вт мощности для своих микроконтроллеров и освещая всю полосу чистым белым светом, мы получаем 1,64 ампера.

Что составляет около 19,68 Вт при полной яркости, вы также можете видеть, что точность цветопередачи действительно хороша на всей 5-метровой полосе, даже без какой-либо подпитки.

Что, как я упоминал ранее, является огромным преимуществом 12-вольтовой адресуемой светодиодной ленты ws2811 по сравнению с 5-вольтовой адресуемой светодиодной лентой ws2812b.

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

Далее в списке идет наиболее распространенный тип адресной цифровой светодиодной ленты, светодиодные ленты ws2812B, в которых, в отличие от WS2811, микросхема контроллера правильно встроена в светодиодный корпус, светодиодная лента ws2812B выпускается только в 5-вольтовом исполнении. , поэтому ему потребуется больше энергии, чем 12-вольтовой пиксельной светодиодной ленте WS2811.

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

В моем тесте адресная светодиодная лента ws2812B потребляла вдвое меньше энергии, чем ws2811, когда светодиоды не горели.

Но, как и ожидалось, потребляемая мощность светодиодов была почти одинаковой — около 60 мВт на канал, а полная адресуемая светодиодная лента потребляла всего 13,6 Вт. что примерно на 6 Вт меньше, чем у ws2811.

У меня также есть еще одна новая разновидность ws2812B, называемая Eco, в моем тесте версия Eco имела самое низкое базовое энергопотребление, требующее всего 56 мВт при отсутствии горящих светодиодов.

5-вольтовые светодиодные ленты обоих типов действительно изо всех сил пытались воспроизвести точные цвета ближе к концу цифровой светодиодной ленты из-за падения напряжения.

Эко-версия в целом работает немного хуже, чем неэко-версия.

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

Подключение более 5 метров.

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

Когда количество пикселей на контроллере позволяет
подключить большую длину, вы без проблем стыкуете коннекторы DI и DO между
собой. Но вот питание (5В или 12В), все равно придется тянуть отдельно
(параллельно).

Есть контроллеры с дополнительными проводами под “лишнее”
питание на такой случай.

Ошибка №6
Нельзя подключать несколько кусков ленты последовательно и при этом подавать на них изначально большее напряжение.

Например, взять три куска ws2812b (5м+5м+5м)
и подать на них в самом начале ленты 15 вольт, рассчитывая при этом на
последовательное падение напряжения.

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

Ошибка №7
Лента вместо белого светится с оттенком желтоватого или красного цвета.

Скорее всего дело здесь в неправильно подобранном сечение
проводов. Всегда берите минимум 1,5мм2.

Недостаток цвета – это первый признак просадки
напряжения. Уход в красноту объясняется тем, что для синего и зеленого цветов
на чипе 2812b требуется порядка 3,5В, а вот для
красного достаточно и 2В.

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

Провода и разъемы

Цифровая лента на конце имеет минимум не два, а три провода.

V+ (5V или 12V)

V- (GND)

управляющий провод

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

DI (Digital Input) или цифровой вход в начале ленты

DO (Digital Output) цифровой выход

При наличии таких разъемов подключить ленту неправильной стороной у вас не получится. Второй конец DO требуется при наращивании длины световой конструкции.

Ошибка №4

А вот без таких разъемов начало и конец ленты можно и перепутать.

В этом случае ничего гореть и светиться у вас не будет.

Ошибка №5

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

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

В этом случае попробуйте их скрутить косичкой. В некоторых ситуациях помогает.

Объяснение программы для Arduino

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

Первым делом в коде программы подключим библиотеку FastLED. Затем укажем осмысленные имена для используемых контактов платы. Если ваша светодиодная лента неправильно отображает цвета вы можете изменить это с помощью COLOR_ORDER в представленном фрагменте кода программы. Объявим другие необходимые переменные и объекты.

Arduino

#include <FastLED.h>
#define LED_PIN 2
#define NUM_LEDS 8
#define BRIGHTNESS 10
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
CRGB leds;
#define UPDATES_PER_SECOND 100
CRGBPalette16 currentPalette;
TBlendType currentBlending;
extern CRGBPalette16 myRedWhiteBluePalette;
extern const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM;

1
2
3
4
5
6
7
8
9
10
11
12

#include <FastLED.h>
#define LED_PIN     2
#define NUM_LEDS    8
#define BRIGHTNESS  10
#define LED_TYPE    WS2812B
#define COLOR_ORDER GRB

CRGBledsNUM_LEDS;

#define UPDATES_PER_SECOND 100

CRGBPalette16currentPalette;

TBlendTypecurrentBlending;

externCRGBPalette16myRedWhiteBluePalette;

externconstTProgmemPalette16myRedWhiteBluePalette_pPROGMEM;

В функции setup() мы инициализируем библиотеку FastLED и установим яркость ленты. Также мы установим первую палитру цветов для Rainbow.

Arduino

void setup() {
delay( 3000 ); // power-up safety delay
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
FastLED.setBrightness( BRIGHTNESS );
currentPalette = RainbowColors_p;
currentBlending = LINEARBLEND;
}

1
2
3
4
5
6
7

voidsetup(){

delay(3000);// power-up safety delay

FastLED.addLeds<LED_TYPE,LED_PIN,COLOR_ORDER>(leds,NUM_LEDS).setCorrection(TypicalLEDStrip);

FastLED.setBrightness(BRIGHTNESS);

currentPalette=RainbowColors_p;

currentBlending=LINEARBLEND;

}

В функции loop() мы будем непрерывно в цикле переключать различные эффекты при помощи вызова функции ChangePalettePeriodically(). Эта функция будет изменять шаблоны цвета через определенные промежутки времени. Функция FillLEDsFromPaletteColors будет использоваться для установки цвета каждого пиксела в соответствии с выбранной палитрой. Затем все указанные цвета отображаются на светодиодной ленте или модуле с помощью функции FastLED.show(). Эту функцию необходимо вызывать после того как вы задали цвета для всех светодиодов в ленте.

Arduino

void loop() {
ChangePalettePeriodically();
static uint8_t startIndex = 0;
startIndex = startIndex + 1; /* motion speed */
FillLEDsFromPaletteColors( startIndex);
FastLED.show();
FastLED.delay(1000 / UPDATES_PER_SECOND);
}

1
2
3
4
5
6
7
8

voidloop(){

ChangePalettePeriodically();

staticuint8_tstartIndex=;

startIndex=startIndex+1;/* motion speed */

FillLEDsFromPaletteColors(startIndex);

FastLED.show();

FastLED.delay(1000UPDATES_PER_SECOND);

}

Сетевой адаптер, как выбрать

Подойдет сетевой адаптер с характеристиками – 15 Вт\ 5 В \ 3 А не герметичный, пластиковый. Такой адаптер (5 вольт 3 ампера 15 ватт) – это решение для небольших проектов с быстрым подключением и отсутствием “возни” с проводами. Отличается адаптер от блока питания, в первую очередь, наличием провода с разъемом – 5,5 х 2.5 мм, который используется, в частности, для светодиодной ленты.

Этот маленький штекер может очень сильно облегчить процесс соединения с лентой, особенно, если вы будете использовать контроллеры – sp104e или sp107e. Кроме того, такие адаптеры обычно снабжены вилкой для быстрого подключения в сеть.

Из минусов такого источника питания можно привести его относительно высокую стоимость в пересчете на 1 ватт мощности и меньшую надежность по сравнению с металлическими блоками питания. Если у вас будет крупный проект, то лучше рассмотреть более мощные металлические блоки 60, 100 или даже 200 ватт.

Подключение блока питания: Вставить штекер от адаптера в контроллер Подключить ленту к контроллеру Вставить адаптер в розетку

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

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

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

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

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

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

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

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

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

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

Соберем подсветку персонально под ваш потолок. Качественно!

Доставим до двери в любой город России.

Подробнее >>

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

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

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

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

Какой бы контроллер вы не выбрали для подсветки, он всегда подключается по одной и той же схеме. Питание контроллера осуществляется через разъем “V+” и “V-”.

На блоке питание тоже есть обозначения “V+” и “V-”. Для подключения контроллера к блоку питания Вам нужно соединить проводом “V+” контроллера с “V+” блока питания и “V-” контроллера с “V-” блока питания. RGB ленту подключают к разъемам контроллера, которые обозначены следующим образом:

  1. R (red)-управление красным цветом
  2. G (green)-управление зеленым цветом
  3. B (blue)-управление синим цветом
  4. “V+” общий провод. Будьте внимательно не перепутайте , цвета RGB ленты и цвета RGB контроллера.

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

Немного инструкции по установке

2. Скачайте архив со страницы проекта, нажав кнопку скачать архив. Если же вы зашли на GitHub – тогда кликните справа вверху на кнопку Clone or download, затем на Download ZIP. Это тот же самый архив! Скачивайте версию как на фото ниже!

3. Извлеките архив. Содержимое папки Библиотека (libraries) нужно поместить в пустое место папки с библиотеками Arduino по этому пути: C:/Program Files (x86)/Arduino/libraries/ как на фото ниже!

4. Папку с прошивкой Arduino из firmware положите по пути без русских букв.

Если в папке с прошивкой несколько файлов – то это вкладки, и они откроются автоматически. Список файлов на фото ниже, они все откроются при открытии программы перед прошивкой.

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