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

Принцип управления нагрузкой через Ардуино


управление Arduino На плате есть много выходов, как цифровых, имеющих два состояния – включено и выключено, так и аналоговых, управляемых через ШИМ-controller с частотой 500 Гц.

Но выходы рассчитаны на ток 20 – 40 мА с напряжением 5 В. Этого хватит для питания индикаторного RGB-светодиода или матричного светодиодного модуля 32×32 мм. Для более мощной нагрузки это недостаточно.

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

  • Реле. Кроме отдельных реле с напряжением питания 5В есть целые сборки с разным количеством контактов, а также со встроенными пускателями.
  • Усилители на биполярных транзисторах. Мощность таких устройств ограничена током управления, но можно собрать схему из нескольких элементов или использовать транзисторную сборку.
  • Полевые или MOSFET-транзисторы. Они могут управлять нагрузкой с токами в несколько ампер и напряжением до 40 – 50 В. При подключении мосфета к ШИМ и электродвигателю или к другой индуктивной нагрузке, нужен защитный диод. При подключении к светодиодам или LED-лампам в этом нет необходимости.
  • Платы расширения.

Пример программы

Платы Ардуино способны управлять светодиодными конструкциями по заранее заданным программам. Их библиотеки можно скачать с официально сайта, найти в интернете или написать новый sketch (code) самому. Собрать такое устройство можно своими руками.

Вот некоторые варианты использования подобных систем:

  • Управление освещением. С помощью датчика освещения включается свет в комнате как сразу, так и с постепенным нарастанием яркости по мере захода солнца. Включение может также производиться через wi-fi, с интеграцией в систему «умный дом» или соединением по телефону.
  • Включение света на лестнице или в длинном коридоре. Очень красиво смотрится диодная подсветка каждой ступеньки в отдельность. При подключении к плате датчика движения, его срабатывание вызовет последовательное, с задержкой времени включение подсветки ступеней или коридора, а отключение этого элемента приведет к обратному процессу.
  • Цветомузыка. Подав на аналоговые входы звуковой сигнал через фильтры, на выходе получится цветомузыкальная установка.
  • Моддинг компьютера. С помощью соответствующих датчиков и программ цвет светодиодов может зависеть от температуры или загрузки процессора или оперативной памяти. Работает такое устройство по протоколу dmx 512.
  • Управление скоростью бегущих огней при помощи энкодера. Подобные установки собираются на микросхемах WS 2811, WS 2812 и WS 2812B.

Варианты подсветки подвесного потолка

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

Виды

Для освещения подвесного потолка чаще всего используются:

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

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

Порядок установки

Подсветка подвесного потолка делается открытой или скрытой. Чаще всего выбирают второй вариант, основные этапы которого выглядят следующим образом:

  1. Прокладывают и подключают проводку. Один из способов подключения предусматривает использование кабель-канала, второй – прокладку провода в гофре.
  2. Если используется кабель-канал, проводку размещают внутри конструкции и крепится к стене.
  3. При прокладке в гофре проводку крепят крепёжными клипсами, кабель к каждому светильнику прокладывают в отдельной гофрированной трубке.
  4. Выполняют отверстия под светильники в соответствии с чертежом (для ленты таких действий не требуется).
  5. Устанавливают и подключают к питанию светильники или светодиодная лента.

Руководство по выбору светодиодных лент к Arduino.

При покупке светодиодных лент есть несколько вещей, которые следует учитывать. Во-первых, это функциональность. Если вы планируете использовать устройства в основном для окружающего освещения, то правильным выбором станет простая диодная полоса 12 В RGB (SMD5050).Многие приборы поставляются с инфракрасным пультом для управления ими, хотя в этом проекте мы будем использовать Arduino. Потратьте немного времени на покупки. На момент написания статьи метр ленты можно было купить всего за 1 доллар.Если вы хотите что-то более высокотехнологичное, рассмотрите SPI RGB ленту.

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

Подробне о SPI RGB лентах вы можете прочитать здесь.

Эти полосы требуют всего 5 В для полноценного питания. Несмотря на то, что можно подавать небольшое количество мощности непосредственно с платы Arduino, обычно рекомендуется использовать отдельный источник питания 5 В, чтобы избавиться от запаха гари. Если вы ищете индивидуально программируемые светодиоды, светодиодная лента Ардуино — лучшая находка для вас. В данный момент стоимость 1 метра равняется примерно 4 долларам — 270 рублям.Еще одна вещь, которую следует учитывать, – это то, где ленты, вероятно, будут использоваться

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

Например, если в списке указано «30 IP67», это означает, что на метр будет 30 светодиодов. «6» — признак того, что устройство полностью защищено от пыли. «7» значит, что прибор не пострадает от непродолжительного погружения в воду. После того, как вы приобретете светодиодную полоску, придет время связать ее с Arduino. Начнем с SMD5050.

Программная часть

Устанавливаем на компьютер Arduino IDE, если ещё не установлена. Подробнее о начале работы с ардуино в этой статье.

Код и библиотеки можно скачать здесь.

SUP_v1.0

Распаковываем архив, копируем библиотеки из папки lib в папку C:\Program Files (x86)\Arduino\libraries.

После чего открываем файл SUP_V1.0.ino и видим настройки:

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

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

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

Это был домашний вариант подсветки, а теперь покажу вам автомобильный:

Выбор контроллера для адресной ленты

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

Данные параметр всегда указывается на корпусе изделия.

Что касается выбора мощности блока питания, то здесь
ориентируйтесь на следующий показатель. Один светодиод для моделей sw2812b – это
примерно 60мА при белом свете.

Считайте их общее количество в ленте, берите запас в 30% и подбирайте подходящий блок.

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

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

Управление через смартфон

Управление современными адресными лентами легко
осуществляется через смартфон и Wi-fi.
Последовательность здесь следующая.

устанавливаете на телефон специальное приложение

Зачастую на корпусе контроллера указывают QR код,
отсканировав который, вы найдете нужную программу в интернете.

регистрируетесь и добавляете свое устройство

в настройках wi-fi на телефоне находите его

При первом подключении настраиваете девайс. Выбираете
последовательность свечения RGB (GBR, BRG), а
также тип ленты (ws2811, ws2812 и
т.п.)

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

таймер (время вкл. и откл. ленты)

динамический режим (с регулировкой скорости и изменения эффектов)

Таких прописанных по умолчанию режимов может быть
несколько сотен!

яркость подсветки

Не понравились заводские настройки? Можете создать свою
собственную программу расцветки через ручную настройку динамического режима.

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

Помимо прочего такие умные контроллеры могут иметь
музыкальный процессор.

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

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

При выборе такого контроллера обратите особое внимание, что есть дешевые модели, которые при работе через wi-fi могут блокировать вам интернет. Поэтому заранее интересуйтесь у продавца о такой функции и покупайте только модели с одновременной работой интернета и управлением подсветкой

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

Протокол

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

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

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

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

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

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

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

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

Список необходимого

  • Мозг устройства – Ардуино Нано – 1 шт. — 150 р.
  • Датчик движения — HC-SR505 – 1 шт. — 60 р.
  • Сенсорная кнопка TTP-223 – 1 шт. — 20 р.
  • Транзистор IRF-3205 — 3 шт. -150 р.
  • Резистор 10 К 0,25 Вт – 3 шт. – 6 р.
  • Резистор 20 Ом 0,25 Вт – 3 шт. – 6 р.
  • Макетная плата под пайку размерами 90х50 мм – 1 шт. 100 р.
  • Корпус 100х60 — 1 шт. 60 руб.

Итого 14 деталей на общую сумму примерно 600 рублей + сама светодиодная RGB лента в зависимости от формата планируемой подсветки.

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

Схема проекта

Схема подключения адресной светодиодной ленты WS2812 к плате Arduino представлена на следующем рисунке.

Резистор в схеме необходим для защиты от повреждений светодиодов NeoPixel и для корректной передачи данных. Наилучшее расстояние для связи между модулем светодиодов NeoPixel и микроконтроллерной платой составляет от 1 до 2 метров.

Примечание: если вы используете адресную светодиодную ленту с большим количеством светодиодов, то в этом случае рекомендуется подключать конденсатор большой емкости (приблизительно 1000 мкФ) параллельно + и – источника питающего напряжения.

Постепенное затухание свечения светодиодов в ленте

Постепенное затухание свечения светодиодов (fading) – это еще один из замечательных эффектов светодиодов NeoPixel. Чем медленнее происходит затухание, тем более впечатляющим является этот эффект.

Arduino

#include <Adafruit_NeoPixel.h>

#define PIN 6
#define NUMPIXELS 7

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

#define DELAYVAL 500 // Time (in milliseconds) to pause between pixels

void NeoFade(int FadeSpeed)
{
int fspeed;
for (int i = 0; i < NUMPIXELS; i++) { pixels.setPixelColor(i, 165, 242, 243); } for (int j = 255; j > 0; j=j-2)
{
pixels.setBrightness(j);
pixels.show();
delay(FadeSpeed);
}
}

void setup() {
pixels.begin();
}

void loop() {
NeoFade(100);
}

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

#include <Adafruit_NeoPixel.h>
 
#define PIN        6
#define NUMPIXELS 7
 
 

Adafruit_NeoPixelpixels(NUMPIXELS,PIN,NEO_GRB+NEO_KHZ800);

 
#define DELAYVAL 500 // Time (in milliseconds) to pause between pixels
 

voidNeoFade(intFadeSpeed)

{

intfspeed;

for(inti=;i<NUMPIXELS;i++){pixels.setPixelColor(i,165,242,243);}for(intj=255;j>;j=j-2)

{

pixels.setBrightness(j);

pixels.show();

delay(FadeSpeed);

}
}
 

voidsetup(){

pixels.begin();

}
 

voidloop(){

NeoFade(100);

}

Rgb подсветка на ардуино с управлением по bluetooth

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

Рис.1

Мы разработали приложение в программе Android Studio:

Рис.2

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

  1. возможность управлять несколькими лентами;
  2. управлять белой светодиодной лентой;
  3. ручная установка цвета;
  4. различные режимы работы;
  5. возможность управления подсветкой без использования андроид-устройства.

    Тимур Мельников

    Файлы :

    1. Прошивка для arduino
    2. Программа для android

    Тема форума: http://msevm.ru/forum/index.php?topic=8290

    Больше.

Смешение цветов

Чем RGB-светодиод, лучше трех обычных? Всё дело в свойстве нашего зрения смешивать свет от разных источников, размещенных близко друг к другу. Например, если мы поставим рядом синий и красный светодиоды, то на расстоянии несколько метров их свечение сольется, и глаз увидит одну фиолетовую точку. А если добавим еще и зеленый, то точка покажется нам белой. Именно так работают мониторы компьютеров, телевизоры и уличные экраны. Матрица телевизора состоит из отдельно стоящих точек разных цветов. Если взять лупу и посмотреть через нее на включенный монитор, то эти точки можно легко увидеть. А вот на уличном экране точки размещаются не очень плотно, так что их можно различить невооруженным глазом. Но с расстояния несколько десятков метров эти точки неразличимы. Получается, что чем плотнее друг к другу стоят разноцветные точки, тем меньшее расстояние требуется глазу чтобы смешивать эти цвета. Отсюда вывод: в отличие от трех отдельностоящих светодиодов, смешение цветов RGB-светодиода заметно уже на расстоянии 30-70 см. Кстати, еще лучше себя показывает RGB-светодиод с матовой линзой.

Шаг 3. Код Arduino и последовательная связь

Загрузите следующий эскиз в Arduino с помощью USB-кабеля.

const int redPin = 11;
const int greenPin = 10;
const int bluePin = 9;

void setup() {
  Serial.begin(9600);
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);

}

void loop() {
  while (Serial.available() > 0) {
    int red = Serial.parseInt();
    int green = Serial.parseInt();
    int blue = Serial.parseInt();

    if (Serial.read() == '\n') {
      red   =   constrain(red, 0, 255);
      green =   constrain(green, 0, 255);
      blue  =   constrain(blue, 0, 255);

      analogWrite(redPin,   red);
      analogWrite(greenPin, green);
      analogWrite(bluePin,  blue);
    }  
  }
}

Важно! Не забудьте отключить модуль HC-06 перед загрузкой эскиза!

Зачем? Штыри связи HC-06 (RX и TX) блокируют связь между Arduino и компьютером.

Объяснение кода

Во-первых, мы объявили несколько констант (константу, которые не могут быть изменены позже) для всех трех цветов (красный, зеленый, синий)

В setup() мы начали последовательную соединение с частотой 9600 бод и установили все выводы ленты на OUTPUT.

В цикле loop(), если Serial получает что-то, он анализирует полученные данные как Integer (важно на следующем шаге)

Если он получает символ новой строки (‘\ n’), он сначала ограничивает значения диапазоном 0-255 из-за диапазона PWM (ШИМ, англ. pulse-width modulation (PWM)), а затем совершает изменения в цифровых выводах с помощью метода analogWrite().

Выбор RGB ленты

Для этого проекта нам понадобится именно RGB светодиодная лента, та — что с четырьмя контактами.

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

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

Вариант с пятью и шестью контактами это RGBW и RGBWW ленты. Как вы уже догадались, буква W обозначает дополнительно припаянный белый светодиод, а WW два белых светодиода, такие ленты используются в случаях, если белым нужно светить гораздо ярче чем остальными цветами.

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

Провода и разъемы

Цифровая лента на конце имеет минимум не два, а три
провода.

V+ (5V или 12V)

V- (GND)

управляющий провод

Два из них — это обычное питание, а третий отвечает за
направление сигнала. К проводам на концах уже готового к использованию изделия
припаяны специальные разъемы:

DI (Digital Input) или цифровой вход в начале ленты

DO (Digital Output) цифровой выход

При наличии таких разъемов подключить ленту неправильной
стороной у вас не получится. Второй конец DO
требуется при наращивании длины световой конструкции.

Ошибка №4
А вот без таких разъемов начало и конец ленты можно и перепутать.

В этом случае ничего гореть и светиться у вас не будет.

Ошибка №5
Слишком длинные провода питания от контроллера.

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

В этом случае попробуйте их скрутить косичкой. В
некоторых ситуациях помогает.

Светодиодная лента Ардуино — Подключение

Настройте свою схему следующим образом:

1. Подключите контакты Arduino 9, 6 и 5 к концам затвора трех МОП-транзисторов и подключите резистор 10 кОм в соответствии с заземлением. 2. Подключите ножки источника к заземлению. 3. Подключите дренажные опоры к разъемам Green, Red и Blue на светодиодной ленте. 4

Подключите шину питания к разъему +12v светодиодной полосы (обратите внимание, что на изображении выше провод питания черный, чтобы соответствовать цветам разъемов на моей светодиодной полосе). 5

Подключите заземление Arduino. 6. Подключите стабилизатор питания 12 В в сеть. Большинство светодиодных полосок имеет разъемы Dupont, к которым легко подключиться. Если у вас нет таких, вам понадобится припаять провода к диодной ленте. Не паникуйте, если вы новичок в пайке — это легкая работа. В интернете есть множество руководств по началу работы с паяльником, с которыми можно ознакомиться, если пайка доставляет вам трудности. Для этого проекта мы будем управлять нашей платой Arduino по USB . Вы можете выбрать питание платы с помощью вывода VIN, но перед этим убедитесь, что вы знаете ограничения мощности для своего устройства.

Светодиодная лента Ардуино — написание кода.

Вы можете сделать эскиз самостоятельно или просто загрузить готовый код из GitHub (https://gist.github.com/anonymous/d4fa3719478c3c5a9c321cc372e9540).

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

В вашей настройке мы установим выводы Arduino. Мы также будем вызывать пару функций с задержкой в 5 секунд. Этих функций еще не существует, но не беспокойтесь, мы доберемся до них.

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

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

Теперь вы должны увидеть, что ваша светодиодная лента Ардуино наращивает яркость, удерживая белый оттенок в течение 5 секунд, а затем равномерно исчезает до нуля:

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

Поделитесь в социальных сетях:FacebookX
Напишите комментарий