Адресные светодиодные ленты. Описание и схемы подключения. Различия WS2811 & WS2812.
Теория
КОМПОНЕНТЫ
- Адресуемая светодиодная лента
- Геркон
- Диод
- Зуммер
- Кнопка
- Кварцевый резонатор
- Конденсатор
- Макетная плата
- Резистор
- Реле
- Светодиод
- Светодиодные индикаторы
- Сервопривод
- Симистор
- Транзистор
ARDUINO
- Что такое Arduino?
- Среда разработки Arduino IDE
- Сравнение плат Arduino. Какую выбрать?
- Как прошить плату Arduino с помощью другой Arduino (ArduinoISP)
- Онлайн-сервис TinkerCAD – эмулятор Arduino
- Визуальная среда разработки Mixly для Arduino
- Настройка поддержки чипа STM32F103C8T6 средой Arduino IDE
RASPBERRY
ИНТЕРФЕЙСЫ ПЕРЕДАЧИ ДАННЫХ
ОБЫЧНАЯ СВЕТОДИОДНАЯ ЛЕНТА
Примеры обычных светодиодных лент:
RGB СВЕТОДИОДНАЯ ЛЕНТА
Примеры RGB светодиодных лент:
АДРЕСУЕМАЯ (СМАРТ) СВЕТОДИОДНАЯ ЛЕНТА
Лента “умная” и управляется по специальному цифровому протоколу. Это означает, что если просто подать питание, то ничего не произойдет, таким образом проверить ленту без управляющего контроллера невозможно. Если вы потрогаете цифровой вход ленты, то скорее всего несколько светодиодов загорятся случайными цветами, потому что вы вносите случайные помехи, которые воспринимаются контроллерами светодиодов как команды. Для управления лентой используются готовые контроллеры, но гораздо интереснее управлять такой лентой вручную, используя, например, плату Arduino/WeMos, для чего ленту необходимо правильно подключить.
Примеры адресуемых светодиодных лент:
Примеры готовых контроллеров:
Пример светомузыки (контроллер SP106E):
ЧЕМ ОТЛИЧАЮТСЯ WS2811 и WS2812?
Чип WS2812 размещён внутри светодиода, таким образом один чип управляет цветом одного диода, а питание ленты – 5V.
Чип WS2811 размещён отдельно и от него питаются сразу 3 светодиода, таком образом можно управлять цветом только сегментами по 3 диода в каждом. А вот напряжение питания у таких лент составляет 12V.
ПРИМЕР ПОДКЛЮЧЕНИЯ К ARDUINO ЛЕНТЫ WS2812 (5V)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// пример с «бегущей радугой» для библиотеки FastLED #include "FastLED.h" #define NUM_LEDS 60 // количество упр. светодиодов #define PIN 13 // пин подключения к Arduino CRGB leds[NUM_LEDS]; byte counter; void setup() { FastLED.addLeds<WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip ); FastLED.setBrightness(50); pinMode(13, OUTPUT); } void loop() { for (int i = 0; i < NUM_LEDS; i++ ) { leds[i] = CHSV(counter + i * 2, 255, 255); // HSV. Увеличивать HUE (цвет) // умножение i уменьшает шаг радуги } counter++; // counter меняется от 0 до 255 (тип данных byte) FastLED.show(); delay(5); // скорость движения радуги } |
ПРИМЕР ПОДКЛЮЧЕНИЯ К ARDUINO ЛЕНТЫ WS2811 (12V)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// пример с «бегущей радугой» для библиотеки FastLED #define NUM_LEDS 50 #include "FastLED.h" #define PIN 13 CRGB leds[NUM_LEDS]; byte counter; void setup() { FastLED.addLeds<WS2811, PIN, GRB>(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); // скорость движения радуги } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
// пример с «бегущим сегментом» для библиотеки FastLED #include "FastLED.h" #define NUM_LEDS 144 // количество упр. светодиодов #define PIN 8 // пин подключения к Arduino CRGB leds[NUM_LEDS]; int count = 7; // количество светодиодов в сегменте void setup() { FastLED.addLeds<WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip ); FastLED.setBrightness(50); pinMode(8, OUTPUT); } void loop() { int j = NUM_LEDS - count; // цикл кол-ва светодиодов for (int i = 0; i < NUM_LEDS ; i++) { leds[j].setRGB(0, 0, 0); leds[i].setRGB(255, 255, 255); FastLED.show(); j++; if (j >= NUM_LEDS) j = 0; delay(10); } } |
ОТ ЧЕГО ПИТАТЬ ЛЕНТУ?
Powerbank 5V: берём провод с USB-штекером и подключаем по схемам выше. Через Arduino не питаем, не рекомендуется! Ёмкость Powerbank очень высокая. По току обычно можно снять 2-3 А.
Обычные батарейки: можно взять АА-батарейки, 3 штуки полностью заряженных (дадут 4,5 В), либо 4 штуки чуть разряженных (дадут 5.5 В). Ёмкость батареек очень небольшая. По току можно снять 1-2 А.
Никелевые аккумуляторы: имеют напряжение ~1.2 В, можно поставить 4 штуки (~4.8 В). Ёмкость сборки весьма достойная, по току можно снять 2-3 А.
Литиевые аккумуляторы: напряжение в процессе разряда меняется с 4.2 до 3.0 В, значит ленту можно питать, но светить будет на 10-30% менее ярко. Также нельзя забывать следить за напряжением, литий боится переразряда. Ёмкость – параллельно можно поставить много банок, по току – с обычных банок можно снять 3 А (если стоят в параллель – то с каждой).
Литиевый аккумулятор + повышающий DC-DC: отличный способ сохранить полную яркость при небольшом количестве светодиодов, почти тот же powerbank, но можно более компактно разместить.
ПОЧЕМУ НЕ РАБОТАЕТ?
- Убедитесь, что “земля” ленты соединена с “землёй” Arduino.
- Убедитесь, что сигнальный провод идёт в начало ленты (контакт DI).
- Убедитесь, что не перепутали 5V и GND.
- Цвет отдаёт в красный? Это означает, что у вас слабый БП, некачественная пайка линии питания или слишком тонкие провода питания.
- Подключили без резистора и теперь не работает даже с резистором? Пин Arduino мог выйти из строя, попробуйте подключить в другой.
КАЛЬКУЛЯТОР