Андрей Смирнов
Время чтения: ~13 мин.
Просмотров: 0

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

Подключение светодиодной ленты к сети 220В схема

Чтобы запитать светодиодную ленту от сети обычной бытовой сети переменного тока 220В 50Гц нужно выполнить три условия:

  • преобразовать переменное напряжение сети в постоянное;
  • выровнять уровни напряжений: снизить сетевое напряжение до 12В или изменить схему подключения светодиодов, чтобы на них можно было подавать высокое напряжение;
  • стабилизировать параметры электрического питания.

Проще всего использовать готовый блок питания для светодиодной ленты 12В, он рассчитан на безопасное напряжение. Но в применении этого блока питания есть и минусы: он стоит денег и собрать его не так просто, кроме того из-за низкого напряжения светодиодные ленты не стоит располагать далеко от блока питания, для компенсации потерь напряжения придется использовать толстые провода.

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

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

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

Таблица номиналов элементов схемы:

  • C1 – 2,2 мкФ 400 В
  • R1 – 1,3 кОм
  • R2 – 4,3 кОм
  • R3 – 47 Ом
  • VD1 .. VD4 – 1N4007
  • VT1, VT2 — 13002

На схеме можно выделить три узла:

  • выпрямитель переменного напряжения и фильтр на элементах C1, R1, VD1 – VD4;
  • стабилизатор тока на R2, R3, VT1, VT2;
  • сборка из светодиодов HL1 – HLN.

Про работу выпрямителя можно почитать здесь. В данной схеме кроме диодного моста из 4-х диодов добавлены токоограничивающий резистор R1 защищающий от бросков тока, фильтрующий конденсатор C1.

При подаче на вход данного выпрямителя сетевого напряжения 220В / 50Гц, на выходе выпрямителя (на конденсаторе С1) появиться постоянное напряжение равное примерно 300В с пульсацией частотой 100Гц.

Чем больше будет емкость конденсатора, тем меньше будет пульсация.

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

Такой участок подключается параллельно куче других таких же участков и все это подключается к 12 В.

На каждом диоде падает напряжение от 3,3 В до 3,6 В, таким образом на токоограничивающий резистор остается около полутора Вольт.

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

как будет удобнее с точки зрения топологии.Внимание!!! Соблюдайте полярность, при ошибка в полярности подключения светодиода при таком напряжении будет для светодиода фатальной

Ток которые протекает через тройку светодиодов можно примерно посчитать, разделив полтора Вольта на сопротивление токоограничивающего резистора. То есть при сопротивлении 150 Ом, ток через светодиоды составит 10 мА.

Именно такая лента со светодиодами на 10 мА попалась мне, для неё и были рассчитывать параметры драйвера. Если нужно уменьшить ток, то придется пропорционально увеличивать значение сопротивления резистора R3.

При сетевом напряжении в 220 В, описанная схема способна обеспечить последовательное подключение до 25 групп из трех диодов или 75 единичных. Если напряжение в сети часто бывает пониженным, то лучше снизить количество групп светодиодов до 20 или даже 15.

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

Лампочка разбилась, а плата осталась в рабочем состоянии.

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

На фото видно, что транзисторы в маломощном корпусе TO-92 такой корпус не рассеет мощность больше 600 мВт. И суммарная мощность схема с таким транзистором не позволит отдавать в нагрузку более пары Ватт.

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

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

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

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

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

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

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

Через реле

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

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

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

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

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

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

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

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

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

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

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

p, blockquote 4,0,0,0,0 —>

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

p, blockquote 5,0,0,0,0 —>

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

p, blockquote 6,0,0,0,0 —>

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

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

p, blockquote 7,0,0,0,0 —>

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

p, blockquote 8,0,0,0,0 —>

Лампа на светодиодной ленте с красивыми эффектами

Сразу скажу, что проект не мой, а является немного доработанной версией лампы от Alex Gyver, за что ему большое спасибо!

Вот ссылка на оригинальный проект: огненный светильник.

Из изменений:

  • корпус напечатан на 3D-принтере (файлы для печати ниже)
  • разъем для подключения блока питания
  • не сенсорная а обычная кнопка, размещенная сбоку внизу

Лампу делал не с целью улучшения, а в подарок, но решил все-таки добавить описание на сайт — вдруг кому-то пригодится.

Подготовка

Итак, для реализации проекта использовался все тот же плафон из Леруа-мерлен «плафон цилиндр»:

Все остальное можно заказать у китайцев:

  • Arduino Nano:   
  • Адресная RGB-лента WS2812B:   
  • Блок питания на 5 вольт (3А, но хватит и 2A):   
  • Кнопка (использовал самую большую):   
  • Резистор на 220 Ом:   
  • Разъем питания использовал такой:

Были использованы следующие инструменты:

  • Паяльник (пользуюсь таким давно, идеальный по соотношения цена/качество):   
  • 3D-принтер (закрытый корпус, можно печатать и PLA, и ABS без проблем): ,  
  • Инструмент для зачистки и обжима проводов (фирменный китайский LAOA): ,  

Сборка

Файлы для печати верхней и нижней части: lamp.zip.

При печати следует учесть, что, хоть размеры подгонялись под конкретный плафон, все же могут быть небольшие расхождения в размерах. Зависит от того, на каком 3D-принтере вы печатаете, с какими настройками и каким пластиком. Поэтому для плотного прилегания плафона к напечатанным частям может понадобится чуть подкорректировать размер моделей и перепечатать, либо применить изоленту/напильник.

Для лампы я использовал 4 куска светодиодной ленты по 10 светодиодов на каждом. У вас может быть другое количество светодиодов, в зависимости от типа ленты. Главное: лента должна быть именно адресная WS2812B.

После печати нижней части можно приступать к сборке. В модели предусмотрено гнездо для кнопки. Сажаем ее туда, приклеив на любой подходящий клей (я использовал клеевой пистолет). Предварительно нужно отломать 2 из 4 ножек, а 2 оставшиеся должны пропускать ток при нажатии (они расположены рядом). Просовываем их в отверстие сверху от углубления. И вставляем разъем питания.

    

Ну и наклеиваем куски ленты

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

Далее — спаиваем 4 части адресной ленты — контакты 5v, gnd и сигнальный. Как именно — подробно показано в видео на странице оригинального проекта. Если вы только учитесь паять — не следует бояться паять адресную ленту, паяется все она очень легко. Единственный совет — я использую жидкий флюс ЛТИ-120. Он в разы лучше, чем твердая канифоль. Наносить его удобнее всего кисточкой от лака для ногтей. Также он не является активным, поэтому после его применения не нужно очищать контакты.

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

Код

Код был полностью взять с оригинального проекта. Единственное изменение, которое нужно сделать, это поменять тип используемой кнопки. Для этого в основном файле прошивки (на данный момент это gyverLight_v1.4.ino) меняем строчку 39:

на

В общем то и все.

Как подключить LED ленту через транзистор


Схема подключения светодиодной ленты к Ардуино через транзистор

Скетч для плавного включения светодиодной ленты

void setup() {
   pinMode(10, OUTPUT); // объявляем пин 10, как выход
}

void loop() {
   // плавное включение
   for(int i=0; i<=255; i++) {
   analogWrite(10, i);
   delay(5); // ставим задержку для эффекта
}

   //плавное затухание
   for(int i=255; i>=0; i--) {
   analogWrite(10, i);
   delay(5); // ставим задержку для эффекта
}

}

Пояснения к коду:

  1. Используем для плавного зажигания LED ленты 10 пин с ШИМ сигналом;
  2. Для этого примера датчик движения к Ардуино можно не подключать.

Скетч для плавного включения от датчика движения

unsigned long counttime;
byte w = 1;

#define LED  10 // назначаем порт для реле
#define PIR  2    // назначаем порт для датчика

void setup() {
   pinMode(LED, OUTPUT); // объявляем пин LED, как выход
   pinMode(PIR, INPUT);      // объявляем пин PIR, как вход
   }

void loop() {
   delay(200);

   // если есть движение - плавно включаем свет и заходим в цикл while (w == 2)
   if (digitalRead(PIR) == HIGH) {

    for (int i = 0; i <= 255; i++) {
      analogWrite(LED, i);
      delay(5);
    }

    w = 2;
    while (w == 2) {
      if (digitalRead(PIR) == HIGH) {
        delay(200);

        // если движения нет - свет не выключаем, а заходим в цикл while (w == 0)
        if (digitalRead(PIR) == LOW) {
          w = 0;
        }
      }
    }
  }

    // если движения нет - включаем счетчик и заходим в цикл while
    if (digitalRead(PIR) == LOW) {
    counttime = millis(); w = 0;

    while (w == 0) {
      delay(200);

      // если движения нет в течении 10 секунд - выключаем свет и выходим из цикла
      if (millis() - counttime > 10000) {

        for (int i = 255; i >= 0; i--) {
          analogWrite(LED, i);
          delay(5);
        }
        w = 1;
      }

      // если обнаружено движение - переходим в цикл (w == 2), не выключая свет
      if (digitalRead(PIR) == HIGH) {
        w = 2;
      }
    }
  }
}

Пояснения к коду:

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

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

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

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

По питанию все светодиоды в ленте соединены параллельно, а линии управления соединяются последовательно. Распиновка адресной ленты следующая: контакты +5V и GND отвечают за питание, контакт DO – выход управляющего сигнала, а DI – вход.

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

Наиболее распространены две модели с разными контроллерами, это ws2812b и ws2811. Главное их отличие в том, что изделия с чипами ws2811 питаются от 12 Вольт, а сам чип находится не внутри светодиода, а отдельно и управляет сегментом из трёх светодиодов. Так в моделях с ws2811 возможно управление не каждым светодиодом, а каждым сегментом из 3 светодиодов сразу, что несколько ограничивает применение.

Принцип управления не слишком сложный:

  • Сигнал управления посылается на ленту небольшими «пачками» цифровых импульсов длиной в 24 бита. Контроллер принимает этот сигнал и выдаёт на светодиоды определенное напряжение для получения нужного цвета.
  • Напомню, что в случае с WS2812b контроллер встроен в светодиод и управляющий сигнал управляет каждым светодиодом отдельно, а в случае с WS2811 контроллер общий для сегмента из трёх светодиодов. То есть возможно задать параметры свечения для каждого отдельного сегмента.
  • При этом первый контроллер принимает первую пачку из 24-бит, вторая 24-битная команда принимается вторым чипом и так далее. Каждая последующая 24-битная команда посылается на каждый следующий контроллер, нумерация пачек при этом совпадает с нумерацией контроллеров.
  • Таким образом, управляют индивидуально каждым контроллером. Если один из блоков неисправен, например, второй, то горит только первый светодиод. Остальные светиться не будут, так как не будет проходить управляющий сигнал.

При создании уникальных эффектов используют не готовые контроллеры, а различные микроконтроллеры. К тому же в сети много проектов под управлением Arduino (микроконтроллеры семейства AVR). Схема подключения к ней элементарна, на примере с контроллерами WS2812b изображена ниже.

Но желательно подавать сигал управления через резистор номиналом в 200-400 Ом, для защиты пина Ардуино.

Устройство представляет программируемый микроконтроллер семейства AVR, с уже разведенной платой, питанием и схемой для программирования через USB. С помощью записи в него различных программ можно получить не ограниченное количество цветовых сочетаний и чередований. Что позволяет создать неограниченное количество вариантов для подсветки. Широкое распространение ограничивается относительно высокой стоимостью в отличие от обычных диодов.

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации