Как сделать мигание светодиодной ленты на ардуино

Обновлено: 06.07.2024

Через пару дней новый год, и возможно кто то захочет сделать собственный RGB контроллер на 2 RGB канала, на которые можно вешать аж по 110 метров светодиодной RGB ленты, со своими индивидуальными алгоритмами.

Для этого понадобятся:

Плата Arduino NANO.

Две двенадцати вольтовые RGB ленты.

Кнопка и сопротивление 1-10 килоом.

6 мосфет транзисторов T40N03G или любые другие N-канальные подходящие по мощности.

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

//Начало скетча

//Конец скетча

В скетче имеется функции:

“button2” - для опроса кнопки, и если кнопка нажата то перейти к следующей функции.

“offRGB” - служит для отключения каналов RGB и обнуления переменных “r, g, b”.

“program1, program2, program3, program4, program5, program6, program7 и program8” - содержат алгоритмы для RGB

Переменные “Speed1, Speed2, Speed3 Speed4=5, Speed5=5, Speed6=5 и Speed7=5” имеют значение “5”. Оно является задержкой, и влияет на скорость выполнения алгоритмов, чем больше это значение тем медленнее скорость выполнения, и наоборот.

Переменная SpeedR = random (2, 10); которая находится в 302 строке, является рандомной задержкой для функции “program8” где значение “2” является минимальным а значение “10” максимальным.

Переменная “x” служит для хранения количества режимов для RGB. Значение “8” означает 9 программы (0, 1, 2, 3, 4, 5, 6, 7, 8) = (offRGB, program1, program2, program3, program4, program5, program6, program7, program8). Если вы измените количество программ, то для корректной работы также необходимо изменить значение переменной “x”.

Можете настроит этот скетч, как вам нравится. Или просто как есть, загрузите на плату, и соберите все, как показано на этой схеме.

После сборки можно подать питание 12 вольт. При запуске будет выполняться нулевая программа с функцией “offRGB” и лента светиться не будет! Нажмите кратковременно на кнопку и цикл перейдет к программе с функцией “program1”, после второго нажатия “program2”, и так далее. После восьмого нажатия “program8” цикл опять перейдет к “offRGB”.

В этой схеме я применил мосфет транзисторы T40N03G. Они выдерживают напряжение до 24 вольт и ток 45 ампер. Этого хватит для подключения 220 метров такой RGB ленты как у меня. Вы можете применить любые другие N-канальные мосфеты которые подойдут вам по мощности, главное соблюдайте распиновку при их подключении, ОНА МОЖЕТ ОТЛИЧАТЬСЯ от распиновки T40N03G!

Это статья об адресуемой светодиодной RGB-ленте WS2812B. Впрочем, информация из этого руководства подойдет и для других похожих светодиодных лент – вроде других лент семейства WS28xx, ленты Neopixel и т.п.

Описание

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

Где купить?

На фото ниже изображена WS2812B, которую я купил для себя. Ее длина составляет 5 метров, а светодиоды спрятаны за водонепроницаемым силиконом. То есть ее можно спокойно оставить там, где может быть дождливо или даже пыльно.

LED-strip 1.jpg

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

Светодиоды в ленте WS2812B подключены друг к другу последовательно. Кроме того, каждый светодиод оснащен собственным чипом, что позволяет управлять лентой через 1-проводной интерфейс. Это значит, что вы можете управлять всеми светодиодами на ленте, используя лишь один цифровой контакт Arduino.

На фото ниже показан чип, которым оснащен каждый светодиод. Кроме того, каждый светодиод – это RGB-светодиод.

LED-with-arrow 2.jpg

Светодиодные ленты такого типа – очень гибкие. Их даже можно разрезать, чтобы получить куски нужной длины. На рисунке ниже видно, что лента состоит из сегментов, и каждый сегмент состоит из одного RGB-светодиода.

Sections2 3.jpg

Разрез нужно делать в специальном месте, которое помечено черной полоской.

Cutting-the-strip 4.jpg

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

Stripheader 5.jpg

Подключение питания к WS2812B

Ленту WS2812B нужно питать от 5 вольт. При 5 вольтах каждый светодиод, включенный на полную яркость, тянет около 50 мА. Это значит, что все 30 светодиодов одновременно могут тянуть 1,5 А. Поэтому обязательно убедитесь, что ваш источник питания потянет такую нагрузку.

Если вы используете внешний источник питания, не забудьте подключить его заземляющий контакт к контакту GND на Arduino.

Схема

В этом проекте лента WS2812B будет питаться от контакта 5V на Arduino, но этого достаточно, т.к. в моем случае лента состоит всего из 14 светодиодов. Но если хотите управлять большим количеством светодиодов, вам понадобится внешний источник питания.

WS2812B-with-Arduino bb 6.jpg

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

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

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

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

Развитие светотехники на основе светодиодов стремительно продолжается. Еще вчера чудом казались RGB-ленты с управлением от контроллера, яркость и цвет которых можно регулировать с помощью пульта дистанционного управления. Сегодня на рынке появились светильники с еще более широкими возможностями.

Светодиодная лента на базе WS2812B

Отличие адресной LED-ленты от стандартной RGB заключается в том, что яркость и соотношение цветов каждого элемента регулируются отдельно. Это позволяет получить световые эффекты, принципиально недоступные для других типов осветительных приборов. Управление свечением адресной LED-ленты производится известным способом – с помощью широтно-импульсной модуляции. Особенностью системы является оснащение каждого светодиода своим собственным ШИМ-контроллером. Микросхема WS2812B представляет собой трехцветный светоизлучающий диод и схему управления, объединенные в одном корпусе.

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

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

Внешний вид адресной ленты.

Шина управления микросхемы WS2812B состоит из одной линии – по ней передаются данные. Данные кодируются в виде импульсов постоянной частоты, но с разной скважностью. Один импульс – один бит. Длительность каждого бита составляет 1,25 мкс, нулевой бит состоит из высокого уровня длительностью 0,4 мкс и низкого 0,85 мкс. Единица выглядит, как высокий уровень в течение 0,8 мкс и низкий 0,45 мкс. Каждому светодиоду отправляется посылка из 24 бит (3 байт), дальше следует пауза в виде низкого уровня в течение 50 мкс. Это означает, что дальше будут передаваться данные для следующего LED, и так для всех элементов цепочки. Завершается передача данных паузой в 100 мкс. Это означает, что цикл программирования ленты завершен, и можно отправлять следующий набор пакетов данных.

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

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

Технические характеристики элементов WS2812B

Для создания систем освещения на основе адресной ленты надо знать важные параметры светоизлучающих элементов.

Габариты LED5x5 мм
Частота модуляции ШИМ400 Гц
Потребляемый ток на максимальной яркости60 мА на один элемент
Напряжение питания5 вольт

Стариков Михаил

Потребляемая светильником мощность достаточно высока. Она определяется не только током, необходимым для инициации свечения p-n переходов, но и коммутационными потерями при формировании ШИМ. Для полотна из 15 элементов источник питания и проводники рассчитываются на ток не менее 1 ампера.

Arduino и WS2812B

Популярная в мире платформа Ардуино позволяет создавать скетчи (программы) для управления адресными лентами. Возможности системы достаточно широки, но если их на каком-то уровне перестанет хватать, полученных навыков будет достаточно, чтобы безболезненно перейти на С++ или даже на ассемблер. Хотя начальные знания проще получить на Arduino.

Подключение ленты на базе WS2812B к Arduino Uno (Nano)

На первом этапе достаточно простых плат Arduino Уно или Ардуино Нано. В дальнейшем для построения более сложных систем можно будет использовать более сложные платы. При физическом подключении адресной светодиодной ленты к плате Arduino надо следить за соблюдением нескольких условий:

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

Общий провод питания светильника и Ардуино надо соединить.

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


Основы программного управления WS2812B

Уже упоминалось, что для управления микросхемами WS2812B надо сформировать импульсы с определенной длиной, выдерживая высокую точность. В языке Ардуино для формирования коротких импульсов есть команды delayMicroseconds и micros. Проблема в том, что разрешение этих команд составляет 4 микросекунды. То есть, сформировать временные задержки с заданной точностью не получится. Надо переходить к средствам С++ или Ассемблера. А можно организовать управление адресной светодиодной лентой через Arduino с помощью специально созданных для этого библиотек. Начать знакомство можно с программы Blink, заставляющей светоизлучающие элементы мигать.

FastLed

Эта библиотека универсальна. Помимо адресной ленты она поддерживает множество устройств, включая ленты с управлением по интерфейсу SPI. Обладает широкими возможностями.

Сначала библиотеку надо подключить. Это делается до блока setup, а строка выглядит так:

Следующим шагом надо создать массив для хранения цветов каждого светоизлучающего диода. Он будет иметь наименование strip и размерность 15 – по числу элементов (этому параметру лучше назначить константу).

CRGB strip[15]

В блоке setup надо указать, с какой лентой будет работать скетч:

void setup()

FastLED.addLeds (strip, 15);

int g;

Параметр RGB устанавливает порядок чередования цветов, 15 означает количество светодиодов, 7 – номер вывода, назначенного для управления (последнему параметру тоже лучше назначить константу).

Блок loop начинается с цикла, который последовательно записывает в каждый раздел массива Red (красное свечение):


for (g=0; g

Смотрите распиновку многоцветной ленты

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

Можно засветить разными цветами баню от RGB ленты на Arduino. Создать, так сказать, баню на микропроцессорном управлении от Arduino.

Всего лишь понадобятся для сборки RGB-подсветки такие компоненты:

  1. Bluetooth модуль HC-05 для беспроводной связи с Arduino.
  2. Плата Arduino nano, mini, Uno с микропроцессором ATmega8,ATmega168,ATmega328.
  3. Светодиодная лента RGB, при необходимости во влагозащитном исполнении IP65 или без него.
  4. Смартфон с Android как пульт управления RGB-подсветкой.
  5. Полевые MOSFET транзисторы, такие как P3055LD, P3055LDG, PHD3355L, но лучше с выводами для закрепления в монтажных отверстиях. Биполярные транзисторы работают хуже.
  6. Резисторы 10 кОм, 0.125 Вт — 3 штуки.

Немного теории про подключение RGB ленты к Arduino

Нельзя подключить светодиодную полоску напрямую к плате Arduino. Светодиодная лента светиться от 12 В, тогда как микропроцессору нужно для работы всего 5 В.

Но, самая главная проблема в том, что выходы микропроцессора не имеют достаточной мощности для питания целой ленты светодиодов. В среднем метровой длины светодиодная полоса потребляет 600 мА. Такой ток точно выведет из строя плату Arduino.

Используемые ШИМ выходы микропроцессора не имеют достаточной мощности, чтобы засветить RGB ленту, но всё-таки их можно использовать для снятия сигнала управления.

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

На электромонтажной схеме на управление лентой задействованы ШИМ-выхода: 9 (красный), 10 (зеленый), 11 (голубой).

Плюс от блока питания 12 В (красный провод) идет напрямую на RGB ленту. Смотрите распиновку многоцветной ленты.

Смотрите распиновку многоцветной ленты

Контакт заземления GND платы Arduino следует посадить на минус входного питания.

Сама плата Arduino Uno запитывается от отдельного сетевого адаптера. Для Arduino nano, mini потребуется собрать простенький источник питания на интегральном стабилизаторе 7805.

Подключение

Подключение Bluetooth модуля HC-05:

  • VCC — 5V (питание +5 В);
  • GND — GND (земля, общий);
  • RX — TX на Arduino nano, mini, Uno;
  • TX — RX на Arduino nano, mini, Uno;
  • LED — не используется;
  • KEY — не используется.

Подключение

Загрузка скетча RGB-ленты

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

Если понадобиться подключить один RGB светодиод, тогда есть электромонтажная схема его подключения.

подключить один RGB

Установка приложения на телефон

Скачиваем приложение с коротким названием RGB на телефон. Здесь бесплатное приложение RGB на Android .

После установки запускаем приложение по иконке.

 запускаем приложение

Кликаем по надписи connect

connect

Находим в списке установленный Bluetooth модуль HC-05.

Находим в списке

При наличии связи вместо надписи connect будет отображаться адрес и название установленного модуля Bluetooth.

Ну, вот и всё, управление RGB подсветкой налажено!

Вот видео-пример работы нашего проекта:

Автор: Виталий Петрович.

Как сделать солнечную батарею с самонаводкой

Содержание1 Понадобится некоторое программное обеспечение:2 Этап 2: приспособления необходимые для постройки основания3 Этап 3:

Биометрический замок для авто

Содержание1 Принцип работы охранного устройства на Arduino.2 Используемые компоненты.3 Сборка и программирование.4 Примечание. В

Благодаря Arduino можно собрать универсальный пульт дистанционного управления (ПДУ). Очень удобно, когда с одного

Часы с LED-индикаторами на Arduino

Мультитестер на Arduino своими руками

За универсальным тестером будущее. Всего лишь при подсоединении щупов, универсальный пробник определяет сопротивление, ёмкость,

Офисный шпион KeySweeper

Содержание1 Возможности2 Железо3 Микроконтроллер Arduino или Teensy4 Микросхема NRF24L01+ 2,4 ГГц5 Зарядное устройство AC

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

Зачем ваше приложение требует разрешения на:
– информация о телефоне
– информацию о WLAN сетях и возможность использовать сеть (сокеты)
– работа с файловой системой (предположим что хранить настройки)
при том, что основной смысл работать с bluetooth?!

Не очень хочется ставить приложения из статей с такими требованиями.

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

Несколько советов о защите Андроид устройств:

3. Скачивайте приложения и их обновления с официального сайта Play Маркет. Хотя спай-программы – трояны для DDOS атак таки распространяются через все ресурсы сети Интернет, и через Play маркет тоже, но на Маркете большинство вредоносных программ сразу удаляется после обнаружения. Для Андроид вирусов не существует. Вирусы компьютерной операционки Windows для Андроид не страшны. Их можно только распространять с помощью Андроид устройств, пользуясь почтой, MMS рассылкой, передачей файлов.

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

Читайте также: