Управление адресной лентой ws2812

Управление адресной лентой ws2812

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

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

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

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

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

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

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

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

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

Ленты ws2812 достаточно распространены на российском рынке, их без труда можно найти в многочисленных специализированных магазинах. Можем посоветовать интернет-магазин Giant4.Ru с достаточно широким ассортиментом различных светодиодных лент и вполне низкими ценами, сопоставимыми с али. Если же есть возможность и желание ждать товар с Алиэкспресса, то ниже мы собрали вместе некоторые популярные варианты у надежных поставщиков:

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

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

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

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

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

Видео инструкции и ролики

Обучающее видео на канале HomeMade:


Видео по созданию бегущей строки на базе ленты ws2112

Лента на базе ws2812b

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

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

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

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

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

Максимальный ток одного адресного светодиода равняется 60 миллиамперам. Рабочие температуры лежат в пределах от -25 до +80 градусов. Напряжение питания составляет 5 В +-0,5.

ШИМ драйверы ленты 8-мибитные – для каждого цвета возможно 256 градация яркости. Для установки яркости нужно 3 байта информации – по 8 бит с каждого светодиода. Информация передается по однолинейному протоколу с фиксированной скоростью. Нули и единицы кодируются высоким и низким уровнем сигнала по линии.

1 бит передается за 1,25 мкс. Весь пакет из 24 бит для одного светодиода передается за 30 мкс.

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

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

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

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

Еще один вариант подключения:

Подключение ws2128 к Ардуино

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

Цифровой вход ленты идет на вход контроллера, поэтому между ними нужен токоограничивающий резистор номиналом 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. Лента состоит из RGB пикселей WS2812B в корпусе LED 5050 (физические размеры каждого элемента составляют 5×5 мм).

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

Так как каждый WS2812B состоит из трёх светодиодов и контроллера ШИМ, будет лучше называть их пикселями, а не светодиодами. На фото справа можно увидеть устройство такого пикселя.

Немного о характеристиках адресных светодиодов WS2812B:

  • Напряжение питания: 5 ± 0.5 В;
  • Потребление тока:

20 мА один светодиод, т.е.

60 мА весь пиксель.

В начале нам необходимо подключить светодиоды к Arduino. Сделать это предельно просто. Контакты +5V и GND подключаем к плюсу и минусу источника питания, соответственно. Din подключаем к любому цифровому пину Arduino, по умолчанию это будет 6-ой цифровой пин, но можно использовать любой другой.

Кроме того, желательно соединить землю Arduino с землей источника питания. Нежелательно использовать Arduino в качестве источника питания, так как выход +5V может обеспечить ток лишь в 800 мА. Этого хватит не более чем на 13 пикселей светодиодной ленты.

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

Далее будем разобираться с управлением лентой. Описание протокола управления присутствует в Datasheet к WS2812B.

Все пиксели по умолчанию подключены друг к другу последовательно. Вход Din каждого их них подключается к выходу Do следующего. Сигнал управления должен поступать на первый из них.

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

Длительность любого бита – 1,25 мкс. Бит “1” кодируется импульсом длительностью 0,8 мкс и паузой в 0,45 мкс. Бит “0”– 0,4 и 0,85 мкс. Возможны расхождения по времени до 150 нс. Такой пакет должен быть отправлен для каждого пикселя в светодиодной ленте. На диаграмме изображён требуемый сигнал.

Глядя на данную схему, несложно догадаться, что такое невозможно воплотить в жизнь стандартными функциями Wiring, вроде digitalWrite и delay. Однако ленты WS2812B достаточно популярны и для них уже есть библиотеки на языках более низкого уровня. Вам достаточно только выбрать любую из них.

Самые популярные библиотеки:

Поддерживает все версии Ардуино и множество протоколов передачи данных (не только для нашей ленты). Язык программирования, на котором она написана – чистый C.

Библиотека предназначена для работы со светодиодными кольцами NeoPixel Ring, разработки и производства Adafruit. Работает медленнее, обладает меньшими возможностями, но содержит в себе лишь самое нужное. Написана на C, языке ассемблера и немного на Wiring. Поддерживает всю линейку Ардуино.

Подключение WS2812B в Arduino IDE

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

По умолчанию, количество пикселей в ленте – 30, но при необходимости это можно изменить в скетче.

Читайте также:  Чем полезна сауна хамам

Пример с использованием библиотеки FastLED:

Скетч займёт 3758 байт в программной памяти Arduino и 187 байт ОЗУ.

Теперь попробуем тоже самое с библиотекой Adafruit NeoPixel:

Скетч займёт 2592 постоянной и 40 байт оперативной памяти Arduino.

Как можно увидеть, библиотека FastLED более ресурсоёмка. Кроме того, используя её в Arduino с 2 Кб ОЗУ (таковой является, например, UNO) можно управлять не более чем 600 пикселями светодиодной ленты. Это связано с тем, что на каждый пиксель резервируется 3 байта памяти.

А вот в Adafruit NeoPixel минимум нужных функций и меньший расход памяти. Какую из них использовать – ваш выбор. Удачи в проектах!

Товары, используемые в материале

Arduino Uno R3 (ATmega 328P / CH340G)

NeoPixel 12 – кольцо из светодиодов WS2812B

WS2812 – светодиодный модуль (8 светодиодов)

Шлейф проводов «Папа — Папа» (20см, 40шт.)

Самые популярные материалы в блоге

За все время

За сегодня

25 комментариев . Оставить новый

Ваш код не работает. Выдаётся ошибка no matching function for call to ‘CFastLED::addLeds(CRGB [30], int)’ с указанием строки FastLED.addLeds(strip, LED_COUNT);

Вы правили исходный скетч? Если да, напишите, наши специалисты посмотрят и ответят в комментариях.

в первом коде ошибка в инициализации ленты, строку 16 надо заменить на:
FastLED.addLeds (strip, LED_COUNT);

и будет вам счастье))

Огромное спасибо за комментарий! Исправили в коде скетча.

Скажите пожалуйста, можно ли на ардуино подключить с десяток разных лент и каждой управлять отдельно? Вся земля лент так же проходят через минус ардуины?

Здравствуйте! Вся земля лент должна объединяться на единую шину питания данных лент, от ардуино к ленте питание подать не получится (только передачу данных). Количество светодиодов зависит от используемой библиотеки.

В библиотеке FastLED к Arduino можно подключить не более 600 пикселей ленты, используя Adafruit NeoPixel – около 800.

Скажите пожалуйста, а как в таком случае: Если я хочу собрать большой стенд из, допустим 10-000 пикселей, как это делается? Картинка при этом общая. Это каждые 3 матрицы 16*16 необходимо приваривать свой ледпин и стыковать общую картинку? А если картинка-анимация, это усложнит работы в разы

Кто может объяснить как работает DIN и можно ли без ардуино регулировать цвет каждого из светодиодов?

Выше указано что необходимо подавать на пин DIN чтобы светодиоды светились нужными цветами.
А именно подавать на пин напряжение с интервалами в 40-45мкс и 80-85мкс, а так же между пакетами 50мкс и окончание >100мкс.
Удачи!

Всем привет на монохромную ленту какой должен быть код, при добавлении ленты в setap

Что подразумеваете под “монохромностью”. Чтобы она светила черно-белым или нужно просто одним определенным цветом?

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

Здравствуйте. Можно посмотреть примеры стандартной библиотеки adafruit, уверены, что бегущий маячок там есть.

Добрый день.
Подскажите а возможно сделать так что бы:
Через ПК я передаю цвет который нужно отправить на ленту.
То есть получается связка ПК- АРДУИНО- ЛЕНТА.
например я на компе выбираю цвет и он отправляется на ленту.

На ПК можно в порт (Serial) отправлять информацию, на ардуиной получать инфу и, собственно, творить…
arduino1507@gmail.com

Здравствуйте ,подскажите как добавить дублирующий выход 12 к имеющемуся выходу 11 чтобы работали синхронно ?
#include

int b1=0;
int b2=0;
int b3=0;
int p_top, p_bottom;
int t_top, t_bottom;
int state_top, state_bottom;

char buf[32];
unsigned long prev_top, prev_bottom;
int pin_bottom = 11;
int pin_top = 13;
int tick = 200;

unsigned long prev_t;

int thermoDO = 4;
int thermoCLK = 5;
int thermoCS_b = 6;
int thermoCS_t = 7;
MAX6675 thermocouple_b(thermoCLK, thermoCS_b, thermoDO);
MAX6675 thermocouple_t(thermoCLK, thermoCS_t, thermoDO);

void setup()
<
Serial.begin(9600);
pinMode(pin_top, OUTPUT);
digitalWrite(pin_top, 0);
pinMode(pin_bottom, OUTPUT);
digitalWrite(pin_bottom, 0);
t_top = 10;
t_bottom = 10;
p_top = 0;
p_bottom = 0;

state_top = LOW;
state_bottom = LOW;
prev_top = millis();
prev_bottom = millis();
>

void loop()
<
if (Serial.available() > 0) <
b3 = b2; b2 = b1;
b1 = Serial.read();
if ((b1 == ‘T’) && (b2 == ‘E’) && (b3 == ‘S’)) <
p_top = Serial.parseInt();
if (p_top 100) p_top = 100;
p_bottom = Serial.parseInt();
if (p_bottom 100) p_bottom = 100;
t_bottom = thermocouple_b.readCelsius();
t_top = thermocouple_t.readCelsius();
sprintf (buf, “OK%03d%03d%03d%03d
”, p_top, p_bottom, t_top, t_bottom);
Serial.print(buf);
>
>

Ребята спасайте. замучился пробовать. С библиотекой Адафруит работает прекрасно и ваш скетч и часы, а с Фастлед ваш тестовый скетч только зажигает нужное количество диодов Белым цветом и стоит не моргает.
Arduino Nano (CH340) v.3 и IDE 1.8.5

“функциями Wiring, вроде digitalWrite и delay. ”
даладно – В ЛЁГКУЮ!, вместо делая просто микроделай юзай
а Диггитал врайт всего 60 тактов тратит – даже на аттини 13 , на 8мГц уже вытянет это!
а если по нормальному делать, то и на 1.2мгц уже справится!

Подскажите, как добавить к скетчу включение и выключение ленты сенсорной кнопкой?

Подскажите почему у меня в скетче написано Red а моргает зеленым?

поменяйте RGB на GRB

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

На сколько памяти хватит. В статье же описано.

какой скачать библиотеку? Adafruit NeoPixel. по ссылке выходит большой список

Просто найдите по названию в менеджере библиотек прямо Ардуино, я лично там нашёл FastLED.

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

RGB светодиодная лента.

На этой ленте стоят RGB светодиоды. Такой светодиод имеет уже 4 выхода, один общий +12 (анод), и три минуса (катода) на каждый цвет, т.е. внутри одного светодиода находится три светодиода разных цветов. Соответственно такие же выходы имеет и лента: 12, G, R, B. Подавая питание на общий 12 и любой из цветов, мы включаем этот цвет. Подадим на все три – получим белый, зелёный и красный, они же в свою очередь дадут много различных цветов и оттенков: жёлтый, розовый, фиолетовый, голубой и так далее. Для таких лент существуют контроллеры с пультами, типичный контроллер представляет собой три полевых транзистора на каждый цвет и микроконтроллер, который управляет транзисторами, таким образом давая возможность включить любой цвет.

Читайте также:  Барбарис кустарник живая изгородь

Адресная светодиодная лента WS2811, WS2812b

Это вершина эволюции лент. Представляет собой ленту из адресных диодов, один такой светодиод состоит из RGB светодиода и контроллера. Внутри светодиода уже находится контроллер с тремя транзисторными выходами. Благодаря такой начинке у нас есть возможность управлять цветом (т.е. яркостью r g b) любого светодиода в ленте и создавать потрясающие эффекты. Адресная лента может иметь 3-4 контакта для подключения, два из них всегда питание (5V и GND например), и остальные (один или два) – логические, для управления.

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

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

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

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


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

Сфера применения адресной ленты

Относительно высокая стоимость светодиодов и лент, собранных на чипах WS2811 и WS2812B, ограничивает их область применения в сравнении с обычными LED-лентами. Главным образом их используют для решения таких задач, с которыми обычной светодиодной ленте не справиться:

  • для сборки полноцветных модулей;
  • в конструировании светильников, управляемых по принципу «soft lights»;
  • в качестве декоративной подсветки чего-либо;
  • в построении LED-видео экранов, используемых в уличной рекламе и шоу-бизнесе.

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

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

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

Схема подключения к Arduino на примере ленты WS2812b

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

Цифровой вход ленты идёт напрямую на «сырой» вход микроконтроллера внутри диода, поэтому между ним и управляющим пином ардуино нужен токоограничиваюший резистор с номиналом 100-500 ом, он ограничит ток, и управляющий пин ардуино не будет перегружаться.

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

Цифровой вход ленты идёт напрямую на «сырой» вход микроконтроллера внутри диода, поэтому между ним и управляющим пином ардуино нужен токоограничиваюший резистор с номиналом 100-500 ом, он ограничит ток, и управляющий пин ардуино не будет перегружаться.


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

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

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

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

Ссылка на основную публикацию
Удаление накипи лимонной кислотой в стиральной машине
Многочисленная реклама пугает: если не защищать стиральную машину-автомат от накипи, она быстро выйдет из строя. Для профилактики поломок производители предлагают...
Три четверти это какой диаметр
Важным параметром цилиндрической трубы является её диаметр. Эта величина для водопроводных и газопроводных труб измеряется не в миллиметрах или сантиметрах,...
Трикотажное вязание крючком корзинка для начинающих
Корзинка из трикотажной пряжи — вещь в доме особо полезная. Она может быть большая для грязного белья или детских игрушек,...
Удалить жир с кафельной плитки
Кафель или керамическую плитку не зря выбирают для кухни – в помещении, где регулярно разлетаются жирные брызги, эти материалы незаменимы....
Adblock detector