Андрей Смирнов
Время чтения: ~25 мин.
Просмотров: 27

Ws2812b

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

РАСШИФРОВКА

  • Black PCB / White PCB — цвет подложки ленты, чёрная / белая
  • 1m/5m — длина ленты в метрах
  • 30/60/74/96/100/144 — количество светодиодов на 1 метр ленты
  • IP30 лента без влагозащиты (как на видео)
  • IP65 лента покрыта силиконом
  • IP67 лента полностью в силиконовом коробе

Лента

Screenshot_1-4.jpg

Полоски

Screenshot_16-1.jpg

Кольца

Screenshot_27-1-1.jpg

Матрицы

КОНТРОЛЛЕРЫ

Адресные ленты можно подключить к готовому контроллеру и переключать режимы пультом/со смартфона

Контроллер 0

Контроллер 1

Контроллер 2

Контроллер 3

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

Обычная светодиодная лента представляет собой ленту с напаянными светодиодами и резисторами, на питание имеет два провода: плюс и минус. Напряжение бывает разное: 5 и 12 вольт постоянки и 220 переменки. Да, в розетку. Для 5 и 12 вольтовых лент нужно использовать блоки питания. Светит такая лента одним цветом, которой зависит от светодиодов.

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

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

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

1) Команды в ленте передаются от диода к диоду, паровозиком. У ленты есть начало и конец, направление движение команд на некоторых моделях указано стрелочками. Для примера рассмотрим ws2812b, у нее три контакта. Два на питание, а вот третий в начале ленты называется DI (digital input), а в конце – DO (digital output). Лента принимает команды в контакт DI! Контакт DO нужен для подключения дополнительных кусков ленты или соединения матриц.

2) Цифровой вход ленты идёт напрямую на «сырой» вход микроконтроллера внутри диода, поэтому между ним и управляющим пином ардуино нужен токоограничиваюший резистор с номиналом 200-500 ом. Без него есть большой шанс выгорания пина Ардуино или первого светодиода в ленте. Не испытывайте удачу, поставьте резистор. Точность резистора? Любая. Мощность резистора? Любая. Да, даже 1/4.

2.1) Если между лентой и контроллером (Arduino) большое расстояние, т.е. длинные провода (длиннее 10-15 см), то сигнальный провод и землю нужно скрутить в косичку для защиты от наводок, так как протокол связи у ленты достаточно скоростной (800 кГц), на него сильно влияют внешние наводки, экранирование земляной скруткой поможет этого избежать. Без этого может наблюдаться такая картина: лента не работает до тех пор, пока не коснёшься рукой сигнального провода.

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

4) Питание. Один цвет одного светодиода при максимальной яркости кушает 20 миллиампер. В одном светодиоде три цвета, итого 60 мА на диод. Пусть у вас есть метр ленты с плотностью 60 диод/метр, тогда 60*60 = 3.6 Ампера при максимальной яркости (белый цвет), соответственно нужно брать БП, который с этим справится, но заранее подумать, в каком режиме будет работать лента. Если это режимы типа «радуга», то мощность можно принять как половину от максимальной.

5) Продолжая тему питания, хочу отметить важность качества пайки силовых точек (подключение провода к ленте, подключение этого же провода к БП), а также толщину проводов. Как показывает мой опыт, брать нужно провод сечением минимум 1.5 квадрата, если нужна полная яркость. Пример: на проводе 0.75 кв.мм. на длине 1.5 метра при токе 2 Ампера падает 0.8 вольта, что критично для 5 вольт питания. Первый признак просадки напряжения: заданный программно белый цвет светит не белым, а отдаёт в жёлтый/красный. Чем краснее, тем сильнее просело напряжение!

6) Мигающая лента создаёт помехи на линию питания, а если лента и контроллер питаются от одного источника – помехи идут на микроконтроллер и могут стать причиной нестабильной работы, глюков и даже перезагрузки (если БП слабый). Для сглаживания таких помех рекомендуется ставить электролитический конденсатор 6.3В ёмкостью 470 мкФ (ставить более ёмкий нет смысла) по питанию микроконтроллера, а также более “жирный” конденсатор (1000 или 2200 мкФ) на питание ленты. Ставить их необязательно, но очень желательно. Если вы заметите зависания и глюки в работе системы (Ардуино + лента + другое железо), то причиной в 50% является как раз питание.

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

КАК ДЕЛАТЬ НЕЛЬЗЯ

Как мы уже поняли, для питания ленты нужен источник 5 Вольт с достаточным запасом по току, а именно: один цвет одного качественного светодиода на максимальной яркости потребляет 0.02 А (20 мА), соответственно весь светодиод – 0.06 А (60 мА) на максимальной яркости. У китайцев есть “китайские” ленты, которые потребляют меньше и светят тускло. Я всегда закупаюсь в магазине BTF lighting (ссылки в начале статьи), у них ленты качественные. Я понимаю, что порой очень хочется запитать ленту напрямую от Ардуино через USB, либо используя бортовой стабилизатор платы. Так делать нельзя. В первом случае есть риск выгорания защитного диода на плате Arduino (в худшем случае – выгорания USB порта), во втором – синий дым пойдёт из стабилизатора на плате. Если всё-таки очень хочется, есть два варианта:

  • Не подключать больше количества светодиодов, при котором ток потребления будет выше 500 мА, а именно 500/60 ~ 8 штук
  • Писать код на основе библиотеки FastLED, где можно ограничить ток специальной функцией. НО! В случае отключения пина Din от источника сигнала есть риск случайного включения ленты, и никакие софтварные ограничения не спасут от выгорания железа

Вы наверное спросите: а как тогда прошивать проект с лентой? Ведь судя по первой картинке так подключать нельзя! Оч просто: если прошивка не включает ленту сразу после запуска – прошивайте. Если включает и есть риск перегрузки по току – подключаем внешнее питание на 5V и GND.

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

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

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

ПОЧЕМУ НЕ РАБОТАЕТ?!

  • Убедись, что земля ленты соединена с землёй ардуино КАК НА СХЕМЕ

  • Убедись, что сигнальный провод идёт в начало ленты (контакт DI) КАК НА СХЕМЕ

  • Убедись, что не перепутал 5в и GND. КАК НА СХЕМЕ

  • Цвет отдаёт в красный? У тебя слабый БП, некачественная пайка линии питания или слишком тонкие провода питания

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

WS2811 и WS2812b

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

Подключение ленты WS2811

Если вы вдруг купили ленту на чипах WS2811 (12-вольтовую версию), подключить её можно вот по этим двум схемам. Но следует помнить, что в прошивке нужно указать втрое меньшее количество светодиодов, так как каждый чип на этой ленте управляет тремя диодами, задаёт им один и тот же цвет!

УПРАВЛЕНИЕ С ARDUINO

ВНИМАНИЕ! Во время загрузки и выполнения этого примера должно быть подключено внешнее питание! Иначе выгорит защита по току (диод) на плате Ардуино!

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

ПРИМЕР 1

#define PIN 13        // пин DI  #define NUM_LEDS 16   // число диодов    #include "Adafruit_NeoPixel.h"  Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);    void setup() {    strip.begin();    strip.setBrightness(50);    // яркость, от 0 до 255      strip.clear();                          // очистить    strip.show();                           // отправить на ленту  }  void loop() {    // заливаем трёмя цветами плавно    for (int i = 0; i < NUM_LEDS / 3; i++ ) {   // от 0 до первой трети      strip.setPixelColor(i, 0xff0000);     // залить красным      strip.show();                         // отправить на ленту      delay(100);    }      for (int i = NUM_LEDS / 3; i < NUM_LEDS * 2 / 3; i++ ) {   // от 1/3 до 2/3      strip.setPixelColor(i, 0x00ff00);     // залить зелёным      strip.show();                         // отправить на ленту      delay(100);    }      for (int i = NUM_LEDS * 2 / 3; i < NUM_LEDS; i++ ) {   // от 2/3 до конца      strip.setPixelColor(i, 0x0000ff);     // залить синим      strip.show();                         // отправить на ленту      delay(100);    }      delay(1000);      // заливаем белым    for (int i = 0; i < NUM_LEDS; i++ ) {   // всю ленту      strip.setPixelColor(i, 0xffffff);     // залить белым      strip.show();                         // отправить на ленту      delay(10);    }      delay(1000);      // заливаем чёрным    for (int i = 0; i < NUM_LEDS; i++ ) {   // всю ленту      strip.setPixelColor(i, 0x000000);     // залить чёрным      strip.show();                         // отправить на ленту      delay(10);    }    delay(1000);      // включаем случайные диоды жёлтым    for (int i = 0; i < 50; i++ ) {         // 50 раз      strip.setPixelColor(random(0, NUM_LEDS), 0xffff00);     // залить жёлтым      strip.show();                         // отправить на ленту      delay(500);    }  }

Пример с бегущей радугой

ПРИМЕР 2

// пример с "бегущей радугой" для библиотеки FastLED    #define NUM_LEDS 144  #include "FastLED.h"  #define PIN 6  CRGB leds[NUM_LEDS];  byte counter;    void setup() {    FastLED.addLeds(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );    FastLED.setBrightness(50);    pinMode(13, OUTPUT);  }    void loop() {    for (int i = 0; i < NUM_LEDS; i++ ) {         // от 0 до первой трети      leds[i] = CHSV(counter + i * 2, 255, 255);  // HSV. Увеличивать HUE (цвет)      // умножение i уменьшает шаг радуги    }    counter++;        // counter меняется от 0 до 255 (тип данных byte)    FastLED.show();    delay(5);         // скорость движения радуги  }

НЕКОТОРАЯ ИНФА

  • Цвет кодируется 3-мя байтами, то бишь глубина его составляет 24 бита. У нас есть три цвета, каждый кодируется числом от 0 до 255, итого имеем 256*256*256 = 16 777 216 цветов, 16.8 миллионов оттенков может принимать КАЖДЫЙ светодиод в ленте. Цвета при программировании задаются в шестнадцатеричной кодировке вида 0xFFFFFF. Сам цвет здесь задаётся тремя байтами: красный зелёный синий, красный будет FF0000, синий 0000FF, зелёный 00FF00, то есть у каждого цвета есть яркость, которая задаётся шестнадцатеричным числом от 00 до FF. Например бледно жёлтый будет вот так 555500. При использовании библиотеки FastLED вам доступна куча преднастроенных цветов, их названия и коды можно посмотреть здесь.

    Надыбать коды цветов можно здесь http://getcolor.ru/

before—>

Нас часто спрашивают о адресной светодиодной ленте (иногда ее называют «умная лента» или «пиксельная лента»).Первое, что большинство людей хотят знать, это то, что делает Адресная светодиодная лента и чем она отличается от стандартной ленты RGB LED. Кроме того, существуют пиксельные светодиодные модули , поэтому люди, естественно, хотят знать, как они работают.

p, blockquote<dp>1,0,0,0,0—> p, blockquote<dp>2,0,0,0,0—>

Содержание

h2<dp>1,0,0,0,0—>

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

p, blockquote<dp>3,0,0,0,0—>

Что такое адресная светодиодная лента?

h2<dp>2,0,0,0,0—>

Адресная светодиодная лента — это гибкая печатная плата, которая заполнена разноцветными адресуемыми поверхностными (SMD) светодиодами. Гибкая печатная плата обычно имеет клейкую подложку, что облегчает быструю и простую установку.

p, blockquote<dp>4,0,0,0,0—>

В отличие от стандартной ленты RGB, каждый светодиод имеет свою собственную микросхему, которая позволяет управлять им для индивидуальной реакции (например, изменение цвета, выключение и т. Д.). Пиксельная лента все еще может делать все, что может делать стандартная лента RGB… только больше.

p, blockquote<dp>5,0,0,0,0—>

Типы адресных светодиодных лент.

h2<dp>3,0,0,0,0—> p, blockquote<dp>6,0,0,0,0—>

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

h2<dp>4,0,0,0,0—> p, blockquote<dp>7,0,0,0,0—>

Серия чипов WS первой будет WS2801. Это интересный в своем роде драйвер-микросхема для RBGW-светодиодов с поддержкой последовательного интерфейса SPI.

p, blockquote<dp>8,0,0,0,0—>

С применением отдельного контроллера нет необходимости занимать несколько выходов микроконтроллера, можно ограничиться лишь одним сигнальным выводом. Микроконтроллер подает сигнал на вход «Data» управляющего контроллера светодиода WS2801.

p, blockquote<dp>9,0,0,0,0—>

В таком сигнале содержится 24-битная информация о яркости цвета (3 канала по 8 бит на каждый цвет), а также информация для внутреннего сдвигового регистра. Именно сдвиговый регистр позволяет определять, к какому светодиоду информация применяется. Таким образом можно соединять несколько светодиодов последовательно, при этом использовать все так же один вывод микроконтроллера.

p, blockquote<dp>10,0,0,0,0—> p, blockquote<dp>11,0,1,0,0—>

У WS2801 было 4 контакта: +5v, GND (минус), DI (Digital input) и CO (тактовая линия). Таких лент сегодня практически уже не найти, на их место пришли WS2811 и WS2812B, более компактные модели с последовательным однолинейным интерфейсом. Теперь за данные отвечает только один контакт, обычно обозначаемый как DI (digital input) и с другой стороны DO (digital output).

p, blockquote<dp>12,0,0,0,0—>

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

h2<dp>5,0,0,0,0—>

h2<dp>6,0,0,0,0—>

Основные отличия адресной светодиодной ленты ws2811 от ws2812b:

p, blockquote<dp>13,0,0,0,0—>

  • Драйвер WS 2811 гораздо больше чем его потомок WS 2812b, поэтому он припаян прямо на подложку ленты перед каждым диодом (черный прямоугольник на фото выше).
  • У 2812B чип установлен внутрь диода (темная точка в диоде на фото ниже).

p, blockquote<dp>14,0,0,0,0—>

  • Адресная светодиодная лента WS 2811, в основном, рассчитана на напряжение 12 вольт.
  • Если Адресная светодиодная лента WS 2811 на 12v, у нее один чип управляет группой из трех диодов одновременно, а не по одному (как в WS2812b).
  • Адресная светодиодная лента WS 2811 на напряжение 12v гораздо дешевле, чем ws 2812b (разница в цене 30 %)
  • Благодаря низкой цене на Адресную светодиодную ленту WS 2811 — напряжением 12v наиболее распространена. Тем не менее, ее сменила более совершенная модель WS 2812В. Все же в один SMD корпус интегрированны  как драйвер, так и сами светодиоды. Кроме того, каждый диод управляется отдельно.

Практические способы включения адресной светодиодной ленты, правила подключения, частые ошибки.

h2<dp>7,0,0,0,0—>

  • Подключайте к адресной светодиодной ленте (между линиями питания) конденсатор, вплоть до 1000 мкФ
  • В разрыв линии данных (от Контроллера к адресной светодиодной ленте) добавляйте резистор  300 — 500 Ом, устанавливая его ближе к ленте.
  • Кабельная линия данных от контроллера до адресной светодиодной ленты, требуется делать как можно коротким.
  • При подключении адресной светодиодной ленты, подключайте «землю» первой (отключайте последней).
  • Не допускайте разрядов статического электричества при монтаже адресной светодиодной ленты.
  • Используйте преобразователь уровня, если адресная светодиодная лента и устройство управления подключены от источников питания с разным напряжением.
  • Максимальный ток каждого пикселя составляет 60мА (при полной яркости белого цвета). Если Вы не планируете использовать ленту WS2812B как источник света (для этого лучше взять обычную светодиодную ленту с белыми светодиодами), принято считать, что, усреднено, каждый пиксель потребляет 20мА.

минимальный ток Драйвера = 20мА*количество_пикселей. максимальный ток Драйвера = 60мА*количество_пикселей

p, blockquote<dp>15,0,0,0,0—>

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

p, blockquote<dp>16,0,0,0,0—>

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

h2<dp>8,0,0,0,0—>

Есть несколько способов управлять адресной светодиодной лентой:

p, blockquote<dp>17,0,0,0,0—>

  • Аппаратный при помощи контроллера SPI

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

p, blockquote<dp>18,0,0,0,0—>

  • Аппаратный при помощи UART-интерфейса

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

p, blockquote<dp>21,0,0,0,0—>

  • Программный

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

p, blockquote<dp>24,0,0,0,0—> p, blockquote<dp>25,0,0,0,0—>

Адресная светодиодная лента DMX 512.

h2<dp>9,0,0,0,0—>

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

p, blockquote<dp>26,0,0,0,0—>

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

p, blockquote<dp>27,0,0,0,0—>

При записи адресов используется DMX кабель, обозначенный ADR (ADI, ADIN). После выполнения записи, при воспроизведении световых программ, вход ADI драйверов не используется. Если Ваш контроллер не имеет встроенного редактора адресов и не имеет выхода для подключения провода ADI, этот провод должен быть соединен с общим проводом GND, что предотвратит воздействие на него внешних помех и наводок.

p, blockquote<dp>28,0,0,0,0—>

Стоит сказать, что адресных светодиодных лент DMX 512 — Драйвер WS2821, гораздо больше преимуществ перед SPI.

p, blockquote<dp>29,0,0,0,0—>

  • Длинна линии управления до 300 м. против 100 м. у SPI.
  • При выходе из строя диода или группы диодов линия освещения продолжает работать.

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

p, blockquote<dp>30,0,0,0,0—>

  • Требует Большое количество DMX адресов — отсюда высокая стоимость оборудования для управления этой системой.

p, blockquote<dp>31,0,0,0,0—>

Как рассчитать количество адресов для ленты DMX 512

h2<dp>10,0,0,0,0—>

DMX (RGB)

p, blockquote<dp>32,0,0,0,0—> p, blockquote<dp>33,0,0,0,0—>

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

p, blockquote<dp>34,0,0,1,0—>

Например:

p, blockquote<dp>35,0,0,0,0—> p, blockquote<dp>36,0,0,0,0—>

Удобно запомнить:

p, blockquote<dp>37,0,0,0,0—> p, blockquote<dp>38,0,0,0,0—>

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

h2<dp>11,0,0,0,0—>

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

p, blockquote<dp>39,0,0,0,0—> p, blockquote<dp>40,0,0,0,0—>

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

p, blockquote<dp>41,0,0,0,0—>

(ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: приведенный выше чертеж не предназначен для точной научной диаграммы. Это простое визуальное представление, чтобы дать вам приблизительное представление о том типе эффекта, который вы иногда можете наблюдать, когда происходит различный процент падения напряжения.)

p, blockquote<dp>42,0,0,0,0—>

Какой тип поверхности подойдет для установки адресной светодиодной ленты?

h2<dp>12,0,0,0,0—>

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

p, blockquote<dp>43,0,0,0,0—> p, blockquote<dp>46,0,0,0,1—>after—></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp></dp>Уже несколько лет на рынке светотехники можно встретить такие названия, как: «smart led strip», «smart led pixel» и подобные. Как правило, «умный пиксель» — это сборка из миниатюрного 3-х канального светодиодного драйвера (с интегрированным стабилизатором тока, PWM модулятором и сдвиговым регистром), подключенная к RGB светодиоду. На базе таких пикселей многие производители выпускают «умные» гибкие светодиодные ленты, LED «гвозди» и LED кластера. Также можно встретить такие модели чипов, как WS2812, WS2813, с интегрированным LED драйвером непосредственно в корпус 5050 RGB светодиода. Малые габариты, большое количество последовательно включенных пикселей (более 1000 шт.), простота управления по 1(2) проводу и сравнительно низкая стоимость решения — более чем оправдывают их применение. d2d9da10f6474ff9a656b8e198b5f204.jpg Эта моя первая публикация на Хабре, в которой я хочу донести мой опыт использования и обозначить недостатки таких пикселей. За несколько последних лет я успел поработать со следующими LED драйверами: LPD6803, WS2801, WS2811, WS2812(B), TM1903, UCS1903, TM1804, TM1803, SM16716 и другими менее ходовыми. В интернете часто можно встретить такой термин как «светодиодная лента с пиксельной адресацией» — я с этим совершенно не согласен, и это является первым ограничением. Информация в такие ленты/пиксели загружается по последовательному каналу, а именно через сдвиговые регистры с 24-х битной разрядностью (как правило), т.е. 3 канала по 8 бит для RGB. Никаких адресов такие LED пиксели не помнят и работают исключительно по последовательному принципу. Отсутствие сигнала управления на линии данных или синхронизации (если таковая есть), служит командой для преобразования значений в регистрах в PWM сигналы для RGB светодиодов. По этой причине, при выходе из строя информационного канала одного из пикселей, последующие пиксели перестанут корректно работать. Многие неопытные LED «рекламисты» наступили на эти грабли, применяя такие пиксели для уличных экранов. Рисунок ниже демонстрирует «битые» полоски.f80c9acf215b4b5e80160847ba2980f3.pngВторое ограничение связанно с температурой использования. В большинстве случаев у пикселей, что управляются только по одному проводу «DATA», к примеру, WS2812B — нижняя температура использования -25 градусов. На практике, часто от -15 градусов. Это связанно с отсутствием хорошего кварцевого блока регенерации сигнала внутри чипа. Таким образом, при низких температурах пиксель перестает корректно работать, наблюдаются «сверчки» и т.п. до полного отсутствия картинки. Другое дело — чипы с синхронизацией: WS2801, LPD6803, к примеру. Здесь имеется хорошая регенерация сигналов по уровням, по времени — регенерация не нужна, поскольку имеется линия синхронизации. Рабочая температура в этом случае от -40 градусов. Но и стоят эти чипы вдвое дороже. Третье ограничение — глубина цвета. Рисунок ниже демонстрирует экраны собранный на чипах WS2801.8c1ddd6855144297aa66d68355c1310f.png Не вооруженным глазом заметно, что экран с фоном засвечен. Низкие уровни градиента «умные пиксели» (WS2812, WS2801 и т.п. практически все) не способны воспроизводить так, как это делают современные экраны. Это связанно с низкой разрядностью интегрированного в чип PWM генератора (всего 8 бит на канал) и как следствие – отсутствие полноценной гамма коррекции. Проще говоря, светодиод светит слишком ярко, когда хочется совсем чуть-чуть и ничего с этим нельзя поделать. Ощутимым минусом, во всяком случае для меня, было отсутствие хорошего софта подготовки и конвертирования анимации, непосредственно для вывода на «железки». Это явилось четвертым ограничением. Поначалу я использовал софт «LedEdit». fb1795fd17b74f07a6a40d0ccc74eac6.jpg «LedEdit» обеспечивает возможность создания и редактирования видео анимации, захвата и последующего конвертирования на «железо». Но использовать этот софт я могу только совместно с их контроллерами. Также я выявил большие недостатки софта «LedEdit» в плане качества видео захвата и стабильности обработки кадров. Поскольку в этой теме я был очень заинтересован и обладал неплохими знаниями в области программирования, в том числе микроконтроллеров, я написал свой «граббер» видео с последующей конвертацией на «пиксели». Идею объединить в одной программе возможности создания и конвертирования анимации я сразу отложил, поскольку это не профессиональный подход. Анимацию нужно создавать и редактировать в специализированных программах, к примеру, я выбрал FREE программное обеспечение «Jinx!».30d531868ccd40fda035ca8fa27eb553.png На выходе ПО «Jinx!» можно получить открытый бинарный файл *.out представляющих битовое представление данных прямоугольной матрицы из пикселей для каждого кадра. Теперь дело остается за немногим: сопоставить прямоугольную матрицу из данных для каждого кадра с реальным расположением «умного пикселя» на пиксельном поле и произвести граб анимации. Так у меня родилось FREE программное обеспечение «LS Terminal».1c0d72f5a82c4684a72fe65265f95d23.png Сейчас ПО «LS Terminal» позволяет работать с большинством видео форматов *.avi, *.flv и д.р., использовать десятки портов, качественно обрабатывать видео захват для десятков тысяч «умных пикселей» расставленных по полю пользователем. Для обработки и визуализации видео я использовал библиотеки OpenCV и OpenGL. Выгрузку данных на «умные пиксели» осуществляю посредством микроконтроллера, который считывает данных с SD карты. В целом, я привел все основные недостатки «умных пикселей» и если их вынести за скобки, то мы можем увидеть десятки тысяч реализованных проектов. Вот некоторые из них выполненные с помощью моего граббера видео: — для LED костюмов: — WS2815 VS WS2813 — APA102 vs SK9822 — Барабанное шоу — в этом объекте несколько тысяч «умных пикселей» WS2801:Используемые источники:

  • https://alexgyver.ru/ws2812_guide/
  • https://lightru.pro/adresnaya-svetodiodnaya-lenta/
  • https://habr.com/post/305876/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации