Подключение и управление светодиодной лентой к arduino

Описание

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

Шаг 2. Соединения и схема

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

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

Все важные соединения и схема показана на рисунке выше.

Будьте очень осторожны при подключении 12V+ шины к VIN платы Arduino, потому что вы можете сжечь плату, если вы подключите ее не правильно. Кроме того, не забудьте всё заземлить (GND).

Наши подключения в итоге выглядят таким образом:

Технические характеристики

Наиболее качественной и современной является лента ws2812b.

От своих предшественников отличается:

  • компактностью;
  • простым управлением;
  • неограниченным кол-вом последовательно включенных светодиодов.

Разноцветная светодиодная лента

Максимальный ток, подаваемый на один светодиод ws2812b – 60 миллиампер.

Рабочее напряжение – 5 вольт.

Для каждого светодиода 256 градаций яркости.

ДОКУМЕНТАЦИЯ

// объявлениеGRGB(uint8_t rpin, uint8_t gpin, uint8_t bpin);// объявление с выбором режима генерации ШИМ (NORM_PWM / ANY_PWM)// NORM_PWM — дефолтные ШИМ пины (3, 5, 6, 9, 10, 11 для UNO/NANO/MINI)// ANY_PWM — любой пин делается ШИМ пином (частота ~150 Гц). Подробности в библиотеке GyverHacksGRGB(uint8_t rpin, uint8_t gpin, uint8_t bpin, boolean pwmmode);void highFrequency(long frequency);// режим работы на высокой частоте ШИМ (указать в Герцах). Работает с библиотекой PWM.h void setDirection(uint8_t direction);// NORMAL / REVERSE — направление ШИМ// общий катод — NORMAL// общий анод — REVERSE void setMaxCurrent(uint16_t numLeds, float vcc, int maxCur);// установка ограничения по току: количество светодиодов, напряжение питания в милливольтах, максимальный ток void setBrightness(byte bright); // установка яркости (0-255)void setGammaBright(boolean val); // вкл/выкл коррекции яркостиvoid setMinPWM(byte val); // минимальный сигнал PWMvoid setLUT(float rc, float gc, float bc); // установка коррекции цвета (матрица LUT)void constantBrightTick(int minVolts, int vcc); // корректировка под напряжение питанияvoid gammaTick(int vcc); // корректировка красного цвета при падении напряжения питания void setHEX(colors color); // установка цвета в формате HEX (вида 0x808080 )void setRGB(uint8_t r, uint8_t g, uint8_t b); // установка цвета в пространстве RGB (каждый цвет 0-255)void setHSV(uint8_t h, uint8_t s, uint8_t v); // установка цвета в пространстве HSV (каждая велиична 0-255)void setHSV_fast(uint8_t h, uint8_t s, uint8_t v); // более быстрый, но менее красивый вариант предыдущей функцииvoid setKelvin(int16_t temperature); // установить цвет как температуру в Кельвинах (от 1000 до 10’000 — от красного к синему)void colorWheel(int color); // установить цвет (0 — 1530). Максимально широкая палитра ярких цветов (смеси RGB) void fadeTo(colors newColor, uint16_t fadeTime);// плавно изменить текущий цвет к новому за вермя fadeTime в миллисекундах для HEX цвета void fadeTo(uint8_t new_r, uint8_t new_g, uint8_t new_b, uint16_t fadeTime);// для R G B

Подключение светодиодной ленты к Ардуино

Arduino, LEDподключение светодиодной ленты к Arduino

Мнение эксперта

Алексей Бартош

Специалист по ремонту, обслуживанию электрооборудования и промышленной электроники.

Задать вопрос эксперту

Arduino Nano могут управлять не только электродвигателями. Они используются также для светодиодных лент. Но так как выходные ток и напряжение платы недостаточны для прямого подключения к ней полосы со светодиодами, то между контроллером и светодиодной лентой необходимо устанавливать дополнительные приспособления.

Через реле

Arduino, LEDПодключение через реле

Реле подключается к устройству на цифровой выход. Полоса, управляемая с его помощью имеет только два состояния – включенная и выключенная. Для управления red-blue-green ленточкой необходимы три реле. Ток, который может контролировать такое устройство, ограничен мощностью катушки (маломощная катушка не в состоянии замыкать большие контакты). Для подсоединения большей мощности используются релейные сборки.

С помощью биполярного транзистора

Arduino, LEDПодключение с помощью транзистора

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

Транзистор лучше применять n-p-n с общим эмиттером. Для большего коэффициента усиления используется схема с несколькими элементами или транзисторная сборка (микросхема-усилитель).

С помощью полевого транзистора

Кроме биполярных, для управления полосами используются полевые транзисторы. Другое название этих приборов – МОП или MOSFET-transistor.

Такой элемент, в отличие от биполярного, управляется не током, а напряжением на затворе. Это позволяет малому току затвора управлять большими токами нагрузки – до десятков ампер.

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

С помощью плат расширения

Arduino, платы расширенияПодключение Arduino с помощью плат расширения

Кроме реле и транзисторов используются готовые блоки и платы расширения.

Это может быть Wi-Fi или Bluetooth, драйвер управления электродвигателем, например, модуль L298N или эквалайзер. Они предназначены для управления нагрузками разной мощности и напряжения. Такие устройства бывают одноканальными – могут управлять только монохромной лентой, и многоканальными – предназначены для устройств RGB и RGBW, а также лент со светодиодами WS 2812.

к содержанию ↑

Принцип работы

Если рассмотреть в деталях, то можно заметить, что в отличие от обычных led лент рядом с каждым адресным светодиодом находится маленький контроллер (в виде микросхемы) – это и позволяет регулировать их по отдельности.

Обычно лента содержит в себе три-четыре контакта. Два из них питание 5 вольт и ноль, остальные – для управления диодами, логические.

Запустить такую систему нельзя без цифрового контроллера (пульт или Ардуино), который ею управляет.

Читайте также: Инструкция подключения светодиодной ленты для автомобиля: способы и советы.

Различные программы

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

Варианты применения системы под управлением Arduino:

  1. Освещение. Наличие датчика позволит задать программу, в соответствии с которой свет в комнате либо появляется сразу, либо плавно включается параллельно заходу солнца (с увеличением яркости). Для включения можно использовать Wi-Fi, телефон и интеграцию в систему «Умный дом».
  2. Освещение коридора и лестничных площадок. Arduino позволит организовать освещение каждой детали (к примеру, ступени) отдельно. Добавьте в плату датчик движения, чтобы адресные светодиоды загорались последовательно в зависимости от того места, где зафиксировано движение объекта. Если движения нет, диоды будут гаснуть.
  3. Светомузыка. Воспользуйтесь фильтрами и подайте на аналоговый вход звуковые сигналы, чтобы на выходе организовать светомузыку (эквалайзер).
  4. Модернизация компьютера. Некоторые датчики позволят создать зависимость цвета светодиодов от температуры процессора, его загрузки, нагрузки на оперативную память. Используется протокол DMX 512.

Микросхемы Arduino расширяют возможности применения монохромных и многоканальных (RGB) светодиодных лент. Помимо слияния различных цветов, образования сотен тысяч оттенков сможете создать неповторимые эффекты — затухание при заходе солнца, периодическое включение/выключение при фиксации движения и многое другое.

Управление светодиодной лентой через Arduino — схемы плавного включения и выключения освещения

Шаг 4. Подключаем Arduino к Android-устройству

Нам нужно скачать приложение «Smart Bluetooth — Arduino Bluetooth Serial».

Скачать или установить через Google Play

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

Smart Bluetooth имеет следующие функции:

  • Быстрое подключение к модулю,
  • Отправлять и получать данные из вашего модуля,
  • Управление цифровыми и PWM-контактами приемника,
  • Темная и светлая тема,
  • Различные модели управления для разных целей,
  • Современный и отзывчивый интерфейс,
  • Настраиваемые кнопки и переключатели,
  • Реализуйте свой проект RC-машин с красивым геймпадом,
  • Легкое управление RGB-лентами через слайдер,
  • Автоматически отключает Bluetooth при закрытии для экономии батареи,
  • Командная строка (терминал).

В этом уроке мы используем вторую вкладку (TAB). В целом процесс выглядит так:

  1. Откройте приложение, нажмите кнопку SEARCH и найдите соседние устройства.
  2. Когда ваше устройство найдено, выберите его, щелкнув по нему.
  3. Выберите предпочтительную тему (темный или светлый) и удерживайте выбранную вами кнопку.
  4. Дождитесь соединения, если не работает, попробуйте переподключиться.
  5. После успешного соединения выберите вторую вкладку (TAB), щелкнув по ней, перетащите ползунки и проверьте, не изменила ли светодиодная полоса цвет.

БАГИ И ОШИБКИ

Если вы нашли баг или ошибку в исходнике или примерах, или у вас есть идеи по доработке библиотеки – пишите пожалуйста на почту alex@alexgyver.ru. В комментарии на страницах я заглядываю очень редко, на форум – ещё реже.

Протокол

Теперь, когда мы разобрались, как подключить нашу ленту к 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 несложно. Необходимо подать питание через блок питания на 5 вольт и на ленту, плюс и минус. Найти блок питания с нужным напряжением не должно составить труда.

Обратите внимание, что контакты с двух сторон похожи: DIN, +5V, GND и DO, +5V, GND. Подключать нужно именно вход, то бишь DIN, в противном случае лента не заработает.

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

Настройка и управление

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

Читайте также: Как правильно выбрать светодиодную ленту для растений (фитолента).

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

Например, датчик влажности почвы:

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

В программе Arduino всего две библиотеки для программирования светодиодов. Пользователи рекомендуют библиотеку Adafruit NeoPixel. По словам опытных радиолюбителей, в ней рациональное использование памяти, так как нет ничего лишнего. Вторая библиотека FastLED. Тоже отлично справляется со своей задачей, но занимает больше внутренней памяти устройства Ардурино.

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

Здесь просто и доступно показана элементарная программка:

Модули управления Ардуино

Для создания полноценного драйвера управления светодиодной лентой можно использовать модули-датчики.

Инфракрасное управлениеИК-управление

Модуль позволяет запрограммировать до 20 команд.

Радиус сигнала около 8м.

Цена комплекта  6 у.е.

Управление по радиоканалуПо радиоканалу

Четырёхканальный блок с радиусом действия до 100м

Цена комплекта  8 у.е.

Позволяет включать освещение еще при приближении к квартире.

Бесконтактное управлениеБесконтактное

Датчик расстояния способен по движению руки увеличивать и уменьшать яркость освещения.

Радиус действия до 5м.

Цена модуля 0,3 у.е.

Оцените, пожалуйста, статью. Мы старались:)

(1 оценок, среднее: 5,00 из 5)
loading.gif Загрузка…

Понравилась статья? Расскажите о ней! Вы нам очень поможете:)

Шаг 5. Результат

На этом наше знакомство с подключением RGB-ленты и управлению ей через Arduino заканчивается. В следующих уроках мы постараемся усложнить проект.

Полезные советы

  • Чтобы смягчить ток, идущий от источника питания, между питающим контактом и контактом GND можно подключить конденсатор номиналом от 100 до 1000 мкФ.
  • Чтобы ослабить шум на линии, соединяющей выходной цифровой контакт Arduino и входной контакт светодиодной ленты, между ними можно подключить резистор номиналом от 220 до 470 Ом.
  • Чтобы минимизировать потерю напряжения, сделайте провода между Arduino, источником питания и светодиодной лентой как можно короче.
  • Если лента не работает, проверьте, исправен ли первый светодиод. Если исправен, отрежьте его, снова припаяйте штырьковые контакты, и все должно заработать.

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

Предыдущая

Светодиодная лентаКак можно сделать светодиодную ленту своими руками

Следующая

Светодиодная лентаЧто такое контроллер для светодиодной ленты и как его выбрать

ОСТАЛЬНЫЕ БИБЛИОТЕКИ

libs-1-600x150.png

У меня есть ещё очень много всего интересного! Смотрите полный список библиотек вот здесь.

Алекс2019-12-26T01:12:03+03:00

Заключение

Лента основана на светодиодах WS2812B в корпусе LED 5050, куда в корпус производители поместили не только три встроенных светодиода (Красный, Зеленый, Синий), но и управляемый ШИМ драйвер, управляющий их яркостью. Благодаря этому мы можем получить произвольный цвет, изменяя яркость встроенных светодиодов, а так же управлять отдельно взятым пикселем на ленте. Собственно, три встроенных разноцветных светодиода вместе с ШИМ драйвером и образуют светодиод WS2812B.

В статье описано строение и монтаж адресной ленты. Более подробная информация на данную тему содержится Практикум по адресным лентам. В нашей группе ВК можно задавать вопросы и получать на них подробные ответы от профессиональных электронщиков. Чтобы подписаться на группу, вам необходимо будет перейти по следующей ссылке: https://vk.com/electroinfonet.

В завершение статьи хочу выразить благодарность источникам, откуда мы черпали информацию:

www.arduino.on.kg

www.ledjournal.info

www.electrik.info

www.vyrashhivanie-iz-semyan.ru

Предыдущая

ПолупроводникиКак устроены многоцветные светодиоды

Следующая

ПолупроводникиЧто такое NTC термисторы

Какую покупать

Нет смысла приобретать устаревшие образцы. Рекомендуем брать только ws2812b.

Читайте также: Полная характеристика ультрафиолетовых светодиодов и лент.

Выбор ленты

Перед эксплуатацией и работой над своими осветительными проектами запомните две вещи:

  • Контроллеры светодиодов (впаянные в ленту) при слишком низких температурах могут нестабильно работать и даже выйти из строя.
  • После перегорания одного светодиода по цепочке перестанут работать все остальные, так как программная информация не передается дальше. Впрочем, в некоторых моделях стоят доп.контакты передачи данных, и такой проблемы нет.

Демонстрация

В результате светодиодная лента начнет показывать разные эффекты. Вроде такого…

Guide for WS2812B Addressable RGB LED Strip with Arduino GIF1 7.gif

Такого…

Guide for WS2812B Addressable RGB LED Strip with Arduino GIF2 8.gif

И такого…

Guide for WS2812B Addressable RGB LED Strip with Arduino GIF3 9.gif

И так далее…

Использование корпуса для светодиодной ленты

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

Решение: Можно воспользоваться корпусом вроде того, что показан на картинке ниже. Он хорошо рассеивает свет, и его можно шурупами прикрутить к какой-нибудь твердой поверхности. Например, к книжной полке.

Guide for WS2812B Addressable RGB LED Strip with Arduino 10.png
Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...