Arduino светодиодная лента: Гайд по адресной светодиодной ленте

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

Лента на базе WS2812B

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

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

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

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

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

Максимальный ток одного адресного светодиода равняется 60 миллиамперам. Рабочие температуры лежат в пределах от -25 до +80 градусов. Напряжение питания составляет 5 В +-0,5.
ШИМ драйверы ленты 8-мибитные – для каждого цвета возможно 256 градация яркости. Для установки яркости нужно 3 байта информации – по 8 бит с каждого светодиода. Информация передается по однолинейному протоколу с фиксированной скоростью. Нули и единицы кодируются высоким и низким уровнем сигнала по линии.

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

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

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

Схема подключения WS2812 к Arduino

Выходы питания с ленты 5В и земля соединяются с соответствующими контактами на микроконтроллере Ардуино. При подключении отрезка с более чем 13 светодиодами потребуется выносной блок питания. Земля и минус блока питания должны быть соединены друг с другом. DIN можно подключить к любому цифровому порту на плате Arduino. Он используется для получения данных с контроллера.
Цифровой вход ленты идет на вход контроллера, поэтому между ними нужен токоограничивающий резистор номиналом 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 кв.м. через каждый метр

Соблюдение основных моментов и следование инструкции позволяет самостоятельно подключить адресную светодиодную ленту к вашему проекту.

Оригинал статьи на сайте ArduinoMaster.Ru.
 

Похожие статьи

Информационная система сопровождения деятельности федеральных инновационных площадок

МОДЕЛЬ ИНТЕГРАЦИИ ИНЖЕНЕРНО-ТЕХНОЛОГИЧЕСКОГО ОБРАЗОВАНИЯ В ШКОЛЬНУЮ СРЕДУ НА ОСНОВЕ ДЕЯТЕЛЬНОСТИ МЕТАПРЕДМЕТНЫХ ЛАБОРАТОРИЙ

Организация: Муниципальное бюджетное общеобразовательное учреждение средняя общеобразовательная школа № 4 с углубленным изучением отдельных предметов им. Г.К. Жукова городского округа Краснознаменск Московской области

Регион: Московская область

Уровень образования: Общее образование

Цель: создание развивающей, технологичной среды, направленной на развитие инженерно-технологического образования в школе на основе деятельности метапредметных лабораторий

Участники методической сети: 231

Основы адресной светодиодной ленты

2011

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

RGB светодиодная лента. На этой ленте стоят 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) Цифровой вход ленты идёт напрямую на «сырой» вход микроконтроллера внутри диода, поэтому между ним и управляющим пином ардуино нужен токоограничиваюший резистор с номиналом 100-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 (или больше, надо экспериментировать) квадрата через каждый метр.

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

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

WS2811 и WS2812b

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

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

×

ВНИМАНИЕ! ВО ВРЕМЯ ЗАГРУЗКИ И ВЫПОЛНЕНИЯ ЭТОГО ПРИМЕРА ДОЛЖНО БЫТЬ ПОДКЛЮЧЕНО ВНЕШНЕЕ ПИТАНИЕ! ИНАЧЕ ВЫГОРИТ ЗАЩИТА ПО ТОКУ (ДИОД) НА ПЛАТЕ АРДУИНО!

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

  • #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);
  • }
  • }

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

  • // пример с «бегущей радугой» для библиотеки FastLED
  •  
  • #define NUM_LEDS 144
  • #include «FastLED.h»
  • #define PIN 6
  • 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); // скорость движения радуги
  • }

Дополнительная информация

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

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

 

 

 

Скачать публикацию

Ссылка на ресурс

Назад

Использование | Светодиодные ленты RGB

Сохранить Подписаться

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

После входа в систему вы будете перенаправлены обратно к этому руководству и сможете подписаться на него.

Поскольку эти светодиодные ленты очень просты, мы можем легко использовать их с любым микроконтроллером. Мы предлагаем использовать методы затемнения PWM для управления полосой. Поскольку для каждого вывода «светодиода» может потребоваться ампер или больше, силовые транзисторы требуется ! Не пытайтесь подключать контакты напрямую к вашему повседневному микроконтроллеру, они сгорят и/или не будут работать.

Вы можете использовать любой силовой NPN или N-Channel MOSFET, убедитесь, что транзистор рассчитан на то, чтобы пропускать столько тока, сколько вам нужно. Например, поскольку мы потребляем около 0,2 ампера на канал на метр, если у вас есть 5-метровая полоса, вам нужно будет пропустить до 1 ампера на транзистор. Берите массивные пакеты «ТО-220», а не хиленькие маленькие парни. Убедитесь, что они выглядят так:

Для базового недорогого использования мы предлагаем использовать N-канальные МОП-транзисторы, такие как IRLB8721 — они очень популярны и недороги и работают с логикой 3,3 В или 5 В. Если вы не можете получить их, TIP120 также хороши, но потери напряжения в транзисторе больше, чем в MOSFET, поэтому мы рекомендуем их в первую очередь (меньше тепловых потерь, больше света!)

На этой диаграмме показано соединение с N -канальные МОП-транзисторы, в которых затвор — контакт 1, сток — контакт 2, а исток — контакт 3

IRLB8721 могут выдерживать до 16 ампер непрерывного тока — это как минимум 750 светодиодов, а если они не все ярко-белые, то 1500 светодиодов. В зависимости от продолжительной/общей потребляемой/рассеиваемой мощности может потребоваться радиатор

Для более длинных полос, требующих более 1 ампера, подключите питание непосредственно к полосе, а затем проложите провода питания и заземления обратно к Arduino.

На этой схеме показано подключение мощных NPN-транзисторов, таких как TIP120, где база — это контакт 1, коллектор — контакт 2, а эмиттер — контакт 3. Это очень похоже, за исключением того, что на этот раз у нас есть резисторы 100–220 Ом между выходным контактом ШИМ и база.

Для более длинных полос, требующих более 1 А, подключите питание непосредственно к полосе, а затем подключите провода питания и заземления обратно к Arduino.

Подключите блок питания 9-12 В к Arduino, чтобы Vin подавал высокое напряжение на светодиодную ленту. Если вы хотите, вы также можете просто использовать отдельный провод, который подключается к источнику питания, обеспечивающему около +12 В. Обязательно соедините землю источника питания с землей Arduino/MOSFET!

TIP120 могут обрабатывать до 5 ампер постоянного тока — это минимум 250 светодиодов, а если не все на ярко-белом, то 500 светодиодов.

 Электропроводка Код Arduino

Это руководство было впервые опубликовано 26 ноября 2012 г. обновлено 26 ноября 2012 г.

Эта страница (использование) последний раз обновлялась 26 ноября 2012 г.

Текстовый редактор на базе tinymce.

Светодиодная лента Arduino RGB с использованием APA102

В этом проекте светодиодной ленты Arduino RGB мы покажем вам, как подключить светодиодную ленту APA102 к Arduino Uno.

В рамках этого руководства вы узнаете, как подключить светодиодную ленту APA102, чтобы она использовала Arduino Uno в качестве контроллера и получала питание от внешнего адаптера.

В нашем руководстве мы используем внешний адаптер питания, так как слишком большой ток от Arduino может повредить плату.

Наряду с демонстрацией того, как соединить APA102 и Arduino вместе, мы также покажем вам, как вы можете использовать библиотеку FastLED для управления светодиодной лентой.

Существует множество способов расширить этот проект Arduino. Например, вы можете изменить цвета на полосе для отображения текущей температуры. Используйте что-то вроде датчика температуры DS18B20 с Arduino.

Вы также можете установить светодиодную ленту APA102 с Raspberry Pi. Это идеально, если вы предпочитаете использовать Pi для всех своих проектов.

Оборудование

Для завершения проекта светодиодной ленты APA102 вам потребуется несколько единиц оборудования.

Рекомендуется

Настройка схемы светодиодной ленты Arduino APA102

Подключение схемы светодиодной ленты APA102 к плате Arduino — относительно простой процесс.

Мы включили как письменные инструкции, так и схему, чтобы помочь вам в процессе подключения светодиодной ленты APA102 к Arduino Uno.

  • Подсоедините положительный контакт ( + ) адаптера цилиндра постоянного тока к разъему VCC на APA102
  • Подсоедините Отрицательный контакт ( ) адаптера цилиндра постоянного тока как к контакту GND на Arduino, так и к соединению GND на светодиодной ленте APA102 от 12 до Pin 11 на Arduino
  • Соедините SDI ( DI ) соединение APA102 с Pin 13 на Arduino

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

Обратите особое внимание на заземляющий провод, который необходимо подключить от светодиодной ленты APA102 как к разъему ствола, так и к самому Arduino.

В этой схеме мы использовали отдельный источник питания для питания светодиодной ленты APA102, поэтому мы использовали переходник постоянного тока.

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

Импорт библиотек светодиодной ленты APA102 

Для взаимодействия с нашей светодиодной лентой APA102 RGB от Arduino мы будем использовать библиотеку « FastLED ».

Библиотека FastLED предназначена для упрощения взаимодействия со всеми видами светодиодных лент, включая APA102, которую мы используем в этом руководстве.

1. В Arduino IDE нам нужно импортировать библиотеку « FastLED », перейдя по адресу Sketch ( 1. ) -> Включить библиотеку ( 2. ) -> Управление библиотеками » в текстовом поле ( 1. ). Затем найдите « FastLED by Daniel Garcia » и нажмите кнопку « Install » ( 2. ).

После установки библиотеки « FastLED », вы можете продолжить и нажать « Кнопка «Закрыть » ( 3. ).

Калибровка светодиодной ленты RGB с помощью Arduino

Теперь пришло время написать код для управления нашей светодиодной лентой Arduino RGB.

1. В интерфейсе Arduino IDE начните вводить следующие строки кода.

Мы объясним, что делает каждый раздел кода, чтобы вы поняли, как модифицировать его для своих нужд.

Для начала нам нужно включить заголовочный файл для « FastLED »библиотека.

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

Здесь мы определяем несколько констант, на которые будем ссылаться в нашем коде.

NUM_LEDS содержит количество светодиодов, с которыми вы будете иметь дело. Для этого короткого фрагмента нам понадобится всего шесть, так как мы просто хотим откалибровать полосу.

DATA_PIN — это номер контакта, через который библиотека должна выводить данные для управления полосой APA102.

CLOCK_PIN содержит номер вывода, который библиотека должна будет использовать для отправки тактового сигнала. Этот контакт необходим для полосы APA102, поскольку она использует интерфейс SPI.

Затем мы определяем массив под названием « LEDs », который использует FastLED CRGB в качестве типа данных.

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

Эта функция « setup() » запускается при запуске устройства Arduino.

Начнем с использования функции « delay() ». Мы используем эту функцию, чтобы дать вам возможность перепрограммировать Arduino, если что-то пойдет не так.

Далее мы используем функцию библиотеки FastLED « addLeds<>() ». Эту функцию мы используем для настройки библиотеки для работы с нашей светодиодной лентой APA102.

В эту функцию мы передаем номер модели ( APA102 ) светодиодной ленты, наши константы DATA_PIN и CLOCK_PIN вместе с нашим порядком цветов, который на данный момент равен RGB .

Мы также ссылаемся на созданный нами массив « LEDS » и на наш NUM_LEDS . Библиотека будет автоматически считывать данные из нашего массива, когда мы вызываем функцию « show() ».

Эта функция « loop() » постоянно автоматически запускается Arduino после завершения работы функции « setup() ».

В этом цикле мы определяем значение для каждой точки в нашем массиве « LEDS ».

Загорятся первые 6 светодиодов на нашей полосе, и в конечном итоге они должны отображаться в следующем порядке; 1 красный , 2 зеленый и 3 синий . Мы форматируем цвет для каждого светодиода с помощью библиотеки « FastLED » « CRGB() ».

После того, как мы установили каждое значение, мы используем функцию библиотеки FastLED « show () », чтобы передать новую цветовую матрицу на светодиодную ленту APA102.

Наконец, чтобы закончить цикл, мы задержим сценарий на 1 секунду.

2. Окончательная версия скрипта должна выглядеть так, как показано ниже.

3. Теперь нам нужно передать этот код в Arduino. Вы можете сделать это, сначала нажав кнопку « Verify » ( 1. ), затем нажав кнопку « Upload » ( 2. ).

4. После ввода кода в Arduino светодиодная лента APA102 RGB должна загореться. Запишите порядок цветов, которые теперь отображаются на светодиодной ленте. Это должен быть красный, зеленый и синий.

Если порядок цветов правильный, вы можете перейти к следующему разделу.

Изменение порядка цветов

Если порядок цветов неправильный, запишите его. Например, если он отображается как синий, зеленый и красный, вам необходимо отметить порядок цветов BGR .

В коде необходимо изменить строку « LEDS.addLeds ».

Измените цветовую последовательность « RGB », определенную на новую, которую вы только что разработали. В этом примере нам нужно переключить значение на « БГР ».

Измененная строка должна выглядеть примерно так, как показано ниже.

5. После внесения изменений проверьте и снова загрузите код в Arduino.

Если все работает правильно, цвета на светодиодной ленте теперь должны отображаться в правильном порядке.

Это все, что у меня есть об этой установке светодиодной ленты Arduino, поэтому я надеюсь, что теперь у вас все работает.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *