что значит адресная светодиодная лента
Что такое адресная светодиодная лента
Адресные светодиоды входят в состав адресной ленты – это основное ее отличие от обычной. Каждый светодиодный элемент подключен к цепи параллельно, но получает команду на включение или выключение в индивидуальном порядке. Так образуется один из 1,500,000 возможных оттенков. Каждый такой светодиод имеет свой собственный уникальный адрес, то есть месторасположение.
Драйвер управляет им с помощью специальных команд. Каждый из этих элементов имеет собственный микрочип, который обладает тремя выходами – выход и вход для данных, выбор режима работы. В статье разобраны вопросы устройства, строения и использования адресной светодиодной ленты. В качестве дополнения, в статье размещено два ролика и одна подробная научная статья.
Технические характеристики
Адресная светодиодная лента состоит из RGB-светодиодов в SMD корпусе 5050 и микрочипов ШИМ-драйверов. В настоящее время наиболее популярными являются адресные LED-ленты с использованием чипов WS2811 и WS2812B. Модификация WS2811 представляет собой интегральную микросхему (ИМС) в корпусе DIP-8 (9,2х6,4 мм) или SOP-8 (5,1х4,0 мм). Данный 3-канальный драйвер имеет следующую конфигурацию выводов:
Адресная светодиодная лента – каждый светодиод получает питание от общего источника, но включается по индивидуальной команде.
В адресной ленте с использованием чипа WS2811 и питанием 5 вольт микросхема драйвера располагается в непосредственной близости перед каждым RGB-светодиодом SMD 5050, рядом с которым также установлены токоограничивающие резисторы и конденсатор, защищающий от помех. Но на сегодняшний момент такие модели устарели и встречаются крайне редко. Сегодня в продаже имеются адресные светодиодные ленты на чипах WS2811 только с питанием от +12 В. В этом случае чип WS2811 управляет не одним светодиодом, а группой из 3 штук.
Не успела ИМС WS2811 обрести популярность, как её место заняла более совершенная WS2812B. Данный тип ШИМ-драйвера намного компактнее и размещается непосредственно в корпусе светодиода SMD 5050. Если присмотреться, то под прозрачным люминофором можно увидеть миниатюрный чёрный прямоугольник с отходящими позолоченными проводниками.
Подобная унификация позволила значительно упростить сборку адресных светодиодных лент и модулей, а сам WS2812B имеет лишь 4 вывода:
Сфера применения
Относительно высокая стоимость светодиодов и лент, собранных на чипах WS2811 и WS2812B, ограничивает их область применения в сравнении с обычными LED-лентами. Главным образом их используют для решения таких задач, с которыми обычной светодиодной ленте не справиться:
Интерес к адресной светодиодной ленте среди радиолюбителей вызван тем, что на её основе можно собрать подсветку, которая будет изменять цвет и яркость по заданному алгоритму.
Как это работает
Адресная лента WS2812B поделена на сегменты, в каждом из которых расположен светодиод и конденсатор (для повышения помехоустойчивости). Относительно напряжения питания все они между собой подключены параллельно, то есть +5 В будет присутствовать на каждом сегменте. А вот передача данных осуществляется последовательно: от предыдущего сегмента к последующему. Поэтому при выходе из строя одного из светодиодов цепи все следующие сегменты перестанут светиться. Управление готовыми устройствами и модулями на базе WS2812.
У каждой адресной ленты есть начало и конец, которые нельзя менять местами во время сборки схемы. Чтобы не запутаться, производители используют условные обозначения, например, стрелки, указывающие направление сигнала. Подключение адресной светодиодной ленты WS2812B к Arduino производится по трём проводам, как показано на рисунке.Контакты питания +5V и GND соединяют с соответствующими выводами на плате Arduino.
Если подсоединяемый отрезок насчитывает более 13-ти светодиодов, то необходимо использовать выносной блок питания. При этом общий провод (GND) Arduino и «минус» блока питания должны быть соединены между собой. Контакт DIN (digital input) предназначен для приёма данных от контроллера и электрически соединяется с любым из его цифровых портов. С другой стороны адресной ленты (и каждого сегмента тоже) размещено 3 контакта: +5V, DO (digital output) и GND, к которым можно подключить ещё несколько отрезков разной длины.
Далее следует пауза длиною до 50 мкс, означающая, что второй по счёту драйвер должен принять следующие 3 байта. И так далее. Длительность паузы больше 50 мкс означает конец передачи и повторение цикла. Для работы с адресными лентами и модулями проще всего использовать библиотеки FastLED и Adafruit NeoPixel. Внутри каждой библиотеки есть готовые скетчи, на основе которых несложно научиться самостоятельно создавать новые световые эффекты. Чтобы скетч заработал с первого раза, необходимо в заголовке правильно указать количество светодиодов в ленте (NUM_LEDS) и номер порта для передачи данных (PIN).
Адресные ленты стоят дороже обычных лент, и применяются обычно там, где простые ленты по какой-то причине не применимы: полноцветные модульные сборки, декоративная подсветка с управлением «soft light», наружная реклама и т. д. Особенность таких сборок в том, что они способны изменять и цвет и яркость отдельных своих сегментов по более сложному алгоритму, нежели простые LED-ленты, даже если эти LED-ленты оснащены умными драйверами. ШИМ-сигнал управления подается со специального запрограммированного контроллера на вход ленты, и передается последовательно на вход одного чипа (digital input – DI), выходит из него (digital output – DO), затем проходит через второй чип, и т. д. Управление легко осуществить при помощи программы на ардуино.
Протокол
Теперь, когда мы разобрались, как подключить нашу ленту к Arduino, нам надо понять, как ею управлять, для этого в даташите есть описание протокола, который мы сейчас и рассмотрим. Каждый светодиод WS2812B имеет один вход (DIN) и один выход (DO). Выход каждого светодиода подключается ко входу следующего. Подавать сигналы же надо на вход самого первого светодиода, таким образом, он запустит цепь, и данные будут поступать от первого ко второму, от второго к третьему и т. д. Команды светодиодам передаются пачками по 24 бита (3 байта, один байт на каждый цвет, первым передается байт для зеленого, потом для красного, и заканчивает байт для синего светодиода.
Порядок бит – от старшего к младшему). Перед каждой пачкой идет пауза в 50 мкс. Пауза больше 100 мкс воспринимается как окончание передачи. Все биты, будь то 0 или 1, имеют фиксированное время 1.25 мкс. Бит 1 кодируется импульсом в 0.8 мкс, после чего идет пауза в 0.45 мкс. Бит 0 кодируется импульсом в 0.4 мкс, после чего идет пауза в 0.85 мкс. Собственно, наглядная диаграмма на фото ниже. Так же допускаются небольшие погрешности в 0-150 нс на каждый фронт. Ну и следует учесть, что подобное необходимо повторить для каждого светодиода на ленте, после чего сделать паузу минимум в 100 мкс. Потом можно повторить передачу.
Глядя на все эти цифры, становится ясно, что сделать все это, используя стандартные функции digitalWrite, delay и тому подобные – попросту невозможно, ввиду их долгой работы и неточности. Реализовать подобный протокол можно только использовав специальные библиотеки вроде CyberLib или написав собственную на чистом Си или, того хуже для нынешнего программиста, на Ассемблере. Но не все так плохо, как кажется. Светодиоды WS2812B довольно таки популярны в Arduino сообществе, а это значит, что нам не придётся вдаваться в такие сложности, и достаточно выбрать одно из понравившихся решений.
Библиотеки
Поискав в интернете, вы найдете, как минимум, две большие библиотеки для работы со светодиодами WS2812B. Под большими библиотеками я подразумеваю не количество функций и возможностей, хотя и это то же, а количество людей, участвовавших в их разработке. Конечно, поискав, еще можно найти и другие библиотеки, разработанные отдельно взятыми ардуинщиками, но работающими не на всех микроконтроллерах Arduino и с большим количеством багов.
Теперь давайте напишем наш излюбленный пример Blink, используя обе эти библиотеки, и затем сравним их.
Заключение
Лента основана на светодиодах WS2812B в корпусе LED 5050, куда в корпус производители поместили не только три встроенных светодиода (Красный, Зеленый, Синий), но и управляемый ШИМ драйвер, управляющий их яркостью. Благодаря этому мы можем получить произвольный цвет, изменяя яркость встроенных светодиодов, а так же управлять отдельно взятым пикселем на ленте. Собственно, три встроенных разноцветных светодиода вместе с ШИМ драйвером и образуют светодиод WS2812B.
В статье описано строение и монтаж адресной ленты. Более подробная информация на данную тему содержится Практикум по адресным лентам. В нашей группе ВК можно задавать вопросы и получать на них подробные ответы от профессиональных электронщиков. Чтобы подписаться на группу, вам необходимо будет перейти по следующей ссылке: https://vk.com/electroinfonet.
В завершение статьи хочу выразить благодарность источникам, откуда мы черпали информацию:
Адресная светодиодная лента, в отличие от обычной, содержит так называемые адресные светодиоды. Это значит, что каждый светодиод хотя и получает питание параллельно от общего источника, включается каждый светодиод по индивидуальной команде, и значит, на каждом светодиоде можно получить собственный уникальный оттенок, один из 255 3 = 16581375 возможных.
В отличие от светодиодной RGB-ленты, в которой все светодиоды одинаково реагируют на сигнал с RGB-контроллера, в адресной LED-ленте каждый светодиод получает индивидуальную команду управления
Каждый светодиод в адресной ленте имеет свой уникальный адрес, по которому драйвер обращается к нему при помощи трехбитной команды. Команды отправляются в линию последовательно, для этого служит третий на ленте провод «DATA INPUT».
Возле каждого светодиода на адресной ленте установлен свой микрочип. Сегодня очень распространены адресные ленты с ШИМ-чипами WS2811.
Корпуса микрочипов DIP-8 либо SOP-8. Каждый чип имеет три выхода — каждый на свой цвет, вход передачи данных, выход передачи данных, вывод питания, вход установки режима и общий вывод.
Есть ленты с питанием чипов 5 вольт, но наиболее часто встречаются ленты с питанием 12 вольт, где один такой чип управляет сразу тремя светодиодами. Чипы на ленте соединены друг с другом последовательно через входы и выходы передачи данных.
WS2812B – более компактная модификация чипа, предназначенная для монтажа внутри корпуса светодиода SMD 5050. Так вся сборка имеет всего 4 выхода: питание, общий вывод, вход передачи данных и выход передачи данных.
Светодиоды WS2812B имеют встроенную интегральную схему (интегральную схему, микросхему) в направлении светодиода
Адресные ленты стоят дороже обычных лент, и применяются обычно там, где простые ленты по какой-то причине не применимы: полноцветные модульные сборки, декоративная подсветка с управлением «soft light», наружная реклама и т. д.
Особенность таких сборок в том, что они способны изменять и цвет и яркость отдельных своих сегментов по более сложному алгоритму, нежели простые LED-ленты, даже если эти LED-ленты оснащены умными драйверами.
Для взаимодействия с адресными лентами подходят библиотеки ардуино FastLED и Adafruit NeoPixel. Внутри библиотек содержатся полноценные скетчи, приняв которые за основу легко освоить самостоятельное создание новых световых эффектов. В заголовке скетча необходимо правильно указать количество светодиодов ленты и номер порта передачи данных.
Каждый RGB-светодиод на самом деле имеет в себе три светодиода (красный, зеленый и синий), поэтому для управления одним сегментом (один сегмент — это RGB-светодиод с чипом) требуется 3 байта информации, один байт — один цвет.
Каждый байт может принимать одно из 255 значений, поэтому в принципе каждый RGB-светодиод способен дать свет одним из 255 3 = 16581375 оттенков. Количество байт в одной команде равно таким образом 3 умножить на количество последовательных рабочих сегментов в ленте.
Посылаемая строка попадает на первый чип, который принимает первые три байта информации, пропуская остальные дальше через выход digital output (DO) – в следующий чип. Выдерживается пауза 50 мкс, означающая что следующий в очереди чип должен принять свои три байта информации. Если пауза будет длиться более 50 мкс, это значит что цикл закончен, и предстоит повторение рабочего цикла.
Светомузыка на адресной светодиодной ленте WS2812B и Arduino:
Адресная светодиодная лента Ардуино
Адресная светодиодная лента WS2812B привлекает многих радиолюбителей за возможность создания интересных и ярких проектов на Ардуино с ws2812b светодиодами. Но прежде, чем приступать к новому крутому проекту, следует понять, как подключить и правильно управлять адресной лентой от Ардуино. Рассмотрим в этой статье несколько простых примеров по работе с WS2812B Arduino Uno.
Адресная светодиодная лента Ардуино
Светодиодная лента WS2812B характеристики
Адресная светодиодная лента ws2812b — это вершина эволюции лент. Каждый светодиод в ленте состоит из обычного RGB светодиода и контроллера с тремя транзисторными выходами. Благодаря этому есть возможность управлять цветом любого светодиода и создавать потрясающие цветовые и световые эффекты. Именно поэтому устройство пользуется популярностью, несмотря на высокую стоимость.
Как проверить адресную ленту без Ардуино
Многих интересует, как включить адресную ленту без Ардуино и проверить ее на работоспособность. Если просто подключить питание к ленте, то ничего не произойдет — проверить ленту без контроллера нельзя. Если задеть цифровой вход адресной ленты, то могут загореться несколько светодиодов из-за случайных помех, которые воспринимаются контроллерами ws2812b светодиодов, как команды.
Если под рукой нет платы Ардуино, то можно использовать для проверки специальный контроллер. В крайнем случае, просто потрогать цифровой провод, чтобы понять будут гореть светодиоды на ленте или нет. Другого надежного способа проверить работу ws2812b ленты нет, поэтому рассмотрим далее управление и программирование адресной светодиодной ленты на микроконтроллере Ардуино Нано или Уно.
Как подключить адресную ленту к Ардуино
Для занятия нам понадобятся следующие детали:
WS2812B светодиоды довольно энергоемкие, один светодиод потребляет до 60 мА при максимальной яркости. Для ленты со 100 диодами потребуется блок питания на 6 и более Ампер. Микроконтроллер Arduino и светодиодная лента могут быть подключены к разным источникам питания, но «земля» должна быть общая. Дело в том, что пин GND тоже участвует в управлении адресной лентой от платы Ардуино Уно.
Схема подключения адресной ленты 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 Вольт, то ее нужно подключать по схеме, размещенной выше. Резистор на цифровом пине защищает его от выгорания (если питание к ленте будет отключено, то она начнет питаться от цифрового пина, при этом пин может выгореть. Также не стоит подключать питание ленты к плате Ардуино, иначе может выгореть защитный диод на Ардуино или USB порт на компьютере (в худшем случае).
Скетч. Управление адресной лентой Ардуино
Пояснения к коду:
Заключение. В этом обзоре мы рассмотрели лишь подключение и возможность управления адресной лентой от Ардуино. Так как возможности работы с библиотеками FastLED, AdafruitNeoPixel довольно разнообразны. Больше интересных примеров на Arduino и WS2812B размещено в разделе Проекты на Ардуино, где представлены проекты с бегущей строкой на адресной ленте и другие световые эффекты.
Работа с адресными светодиодами WS2812B
Исходные данные
Ситуация: светодиодная лента горит красным цветом, и нам надо чтоб 4-й светодиод загорелся синим цветом. Для этого, чтобы изменить цвет 4 светодиода нам по любому на шину данных придется отправить 96 битов данных. Из них биты с 73 по 96 как раз будут задавать новый цвет для 4-го светодиода. При этом, чтобы первые три светодиода не изменили свой цвет, биты с 1 го по 72 должны быть те же самые, которые использовались при зажигании ленты в красный цвет. В этом случае визуально будет казаться, что мы обновили цвет только 4 светодиода. На самом деле обновятся все 4 светодиода, но новый цвет на первых 3 светодиодах мы оставляем тот же самый. Если в полоске 100 светодиодов, и нам надо изменить только первые 4 светодиода, после 96 бита передачу данных можно остановить.
Теперь расскажу об уровнях и таймингах информационных сигналов. Для работы с микросхемами я использую такую схему (рис 4).
Причем ножка микроконтроллера находится в режиме ВХОД (DDRB.6=0). На порт подан логический ноль (PORTB.6=0). При такой схеме и при таких настройках, на информационной ножке ленты устанавливается логическая единица (из-за подтянутого резистора на 3,3 кОм). Подача логического нуля на ленту осуществляется путем установки ножки в режим ВЫХОД (DDRB.6=1).
Теперь тайминги
Изначально на ножке стоит лог. единица. Для перевода светодиода в режим получения сигнала необходимо подать логический ноль в течение 5 мс. После этого идут биты данных: для передачи «нулевого» символа необходимо подать логическую единицу, и сразу подать логический ноль. Для передачи «единичного» символа необходимо подать логическую единицу, подождать 3 мкс и подать логический ноль. Интервал между сигналами от 6 до 20 мкс. Временные интервалы можете увидеть на осциллограммах в разных временных развертках.(рис3, рис2, рис1).
После подачи последнего информационного бита на шину необходимо подать логическую единицу. Установленные таким образом цвета будут светиться пока вы не выключите питание или не обновите цветовой рисунок новым пакетом данных.
Уважаемые форумчане, не знаю, может на моих светодиодах такой глюк. А возможно пользуюсь неправильным алгоритмом для взаимодействия с светодиодами. Поэтому если кто нибудь знает почему может возникнуть такой глюк пишите в комментариях. На этом все. Всем удачи!
Теория работы импульсных источников питания и варианты схемотехники.
Несколько методов точного измерения емкости конденсаторов. Теория и практика.
Модернизируем промышленный графический эквалайзер Прибой Э-014С.
Подключение адресной светодиодной ленты WS2812 (NeoPixel LEDs) к Arduino
В настоящее время адресные светодиодной ленты (NeoPixel LEDs) на базе светодиодов WS2812 находят широкое применение в различных областях. В данной статье мы рассмотрим подключение подобной ленты к плате Arduino и научимся управлять ею в различных режимах.
Ранее на нашем сайте применение адресной светодиодной ленты (NeoPixel LEDs) рассматривалось в следующих проектах:
Необходимые компоненты
Что такое NeoPixel?
После своего изобретения в 1962 году светодиоды стали неотъемлемой частью нашей жизни. В большинстве электронных проектов используются светодиоды одного цвета, но использование светодиодов разных цветов выглядело настолько привлекательно, что следом за обычными светодиодами появились трехцветные светодиоды (RGB LEDs) – их еще называют полноцветными или многоцветными светодиодами. На нашем сайте можно прочитать статью о подключении подобного светодиода к плате Arduino.
Для управления RGB светодиодом необходимо 3 цифровых контакта микроконтроллера (платы Arduino). То есть, к примеру, если мы хотим управлять 60 RGB светодиодами (причем цвет каждого из них настраивать независимо от других), то нам для этой цели понадобится 180 цифровых контактов. Естественно, подобный подход очень неудобен, поэтому для управления большой совокупностью RGB светодиодов, объединенных, к примеру, в ленту, стали использовать адресацию.
Адресуемые (адресные) светодиоды (addressable LEDs) – это новое поколение светодиодов, включающих помимо RGB светодиоды также микросхему (контроллер) управления им. В настоящее время для управления подобными светодиодами наиболее часто используется контроллер WS2812, который позволяет получить доступ к множеству светодиодов с помощью одного цифрового контакта по интерфейсу one wire (1-wire), используя адреса светодиодов.
Но в отличие от обычных светодиодов данные светодиоды не включаются просто при подаче на них напряжения, для управления ими необходим микроконтроллер. NeoPixel – это марка (наименование) компании Adafruit для адресуемых светодиодов.
Почему NeoPixel?
Способность управлять отдельно каждым светодиодом в адресной светодиодной ленте дает вам возможность создать уникальные визуальный эффекты для своих проектов. Но помните о том, что если вам требуются очень высокие скорости переключения светодиодов, то использование подобной адресной светодиодной ленты нежелательно. Еще одним достоинством адресной светодиодной ленты NeoPixel является ее низкая цена по сравнению с другими типами адресуемых светодиодов. Светодиоды NeoPixel доступны в форме колец, лент, прямоугольников и поверхностей круглой формы – вы можете выбрать любой ее тип для своих проектов.
Примечание : чем больше светодиодов NeoPixel вы используете, тем больше оперативной памяти и больше мощности необходимо для управления ими, также при этом увеличивается время обработки, поэтому выбирайте оптимальное количество светодиодов NeoPixel исходя из возможностей используемого вами микроконтроллера.
Схема проекта
Схема подключения адресной светодиодной ленты WS2812 к плате Arduino представлена на следующем рисунке.
Резистор в схеме необходим для защиты от повреждений светодиодов NeoPixel и для корректной передачи данных. Наилучшее расстояние для связи между модулем светодиодов NeoPixel и микроконтроллерной платой составляет от 1 до 2 метров.
Примечание : если вы используете адресную светодиодную ленту с большим количеством светодиодов, то в этом случае рекомендуется подключать конденсатор большой емкости (приблизительно 1000 мкФ) параллельно + и – источника питающего напряжения.