Адресная светодиодная лента и её подключение к Arduino


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

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

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

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

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

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

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

FAQ

Основные вопросы

В: Как скачать с этого грёбаного сайта? О: На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP

В: Скачался какой то файл .zip, куда его теперь? О: Это архив. Можно открыть стандартными средствами Windows, но думаю у всех на компьютере установлен WinRAR, архив нужно правой кнопкой и извлечь.

В: Компьютер никак не реагирует на подключение Ардуины! О: Возможно у тебя зарядный USB кабель, а нужен именно data-кабель, по которому можно данные передавать

В: Ошибка! Скетч не компилируется! О: Путь к скетчу не должен содержать кириллицу. Положи его в корень диска.

В: Сколько стоит? О: Ничего не продаю.

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

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

Адресная светодиодная лент 1m/4m/5m WS2812B 30/60/144 pixels,IP30/IP65/IP67 DC5VСветодиодная лента DC5V WS2812B 1m/4m/5m 30/60/74/96/144 pixels/leds/m от надежного поставщикаАдресная светодиодная лента DC5V 1m/4m/5m WS2812B

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

УПРАВЛЕНИЕ С 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 = CHSV(counter + i * 2, 255, 255); // HSV. Увеличивать HUE (цвет) // умножение i уменьшает шаг радуги } counter++; // counter меняется от 0 до 255 (тип данных byte) FastLED.show(); delay(5); // скорость движения радуги }

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

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

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

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

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

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

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

Данные передаются следующим образом:

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

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

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

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

  • Убедись, что земля ленты соединена с землёй ардуино КАК НА СХЕМЕ
  • Убедись, что сигнальный провод идёт в начало ленты (контакт DI) КАК НА СХЕМЕ
  • Убедись, что не перепутал 5в и GND. КАК НА СХЕМЕ
  • Цвет отдаёт в красный? У тебя слабый БП, некачественная пайка линии питания или слишком тонкие провода питания
  • Подключил без резистора и теперь не работает даже с резистором? Пин ардуино отбросил ласты, подключай в другой
Рейтинг
( 2 оценки, среднее 4.5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]