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

    Ардуино идеально подходит для управления любыми устройствами. Микропроцессор ATmega с помощью программы-скетча манипулирует большим количеством дискретных выводов, аналогово-цифровых входов/выводов и ШИМ-контроллерами.

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

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

    Плата Ардуино имеет два типа портов вывода: цифровой и аналоговый (ШИМ-контроллер). У цифрового порта возможно два состояния – логический ноль и логическая единица. Если подключить к нему светодиод он либо будет светиться, либо не будет.

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

    Синтаксис команд

    Цифровой вывод:

    pinMode(12, OUTPUT); — задаём порт 12 портом вывода данных;
    digitalWrite(12, HIGH); — подаём на дискретный выход 12 логическую единицу, зажигая светодиод.

    Аналоговый вывод:

    analogOutPin = 3; – задаём порт 3 для вывода аналогового значения;
    analogWrite(3, значение); – формируем на выходе сигнал с напряжением от 0 до 5В. Значение – скважность сигнала от 0 до 255. При значении 255 максимальное напряжение.

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

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

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

    Виды транзисторных ключей

    • Биполярный;
    • Полевой;
    • Составной (сборка Дарлингтона).
    Способы подключения нагрузки
    Через биполярный транзистор Через полевой транзистор Через коммутатор напряжения

    При подаче высокого логического уровня (digitalWrite(12, HIGH);) через порт вывода на базу транзистора через цепочку коллектор-эмиттер потечет опорное напряжение на нагрузку. Таким образом можно включать и отключать светодиод.

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

    Биполярный вид не позволяет регулировать мощные нагрузки. Ток через него ограничен на уровне 0,1-0,3А.

    Полевые транзисторы работают с более мощными нагрузками с током до 2А. Для ещё более мощной нагрузки используют полевые транзисторы Mosfet с током до 9А и напряжением до 60В.

    Вместо полевых можно использовать сборку Дарлингтона из биполярных транзисторов на микросхемах ULN2003, ULN2803.

    Микросхема ULN2003 и принципиальная схема электронного коммутатора напряжения:

    Принцип работы транзистора для плавного управления светодиодной лентой

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

    Подключив транзистор к аналоговому порту Ардуино, присваиваем ему значение от 0 до 255, изменяем напряжение, подаваемое на коллектор либо сток от 0 до 5В. Через цепочку коллектор-эмиттер будет проходить от 0 до 100% опорного напряжения нагрузки.

    Для управления светодиодной лентой arduino необходимо подобрать транзистор подходящей мощности. Рабочий ток для питания метра светодиодов 300-500мА, для этих целей подойдет силовой биполярный транзистор. Для большей длины потребуется полевой транзистор.

    Схема подключения LED ленты к ардуино:

    Управление RGB лентой с помощью Andurino

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

    Схема подключения к Arduino RGB светодиода:

    Аналогично построено и управление RGB лентой Arduino:

    Аrduino RGB контроллер лучше собирать на полевых транзисторах.

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

    Скетч управления яркостью светодиодной ленты Arduino

    int led = 120; устанавливаем средний уровень яркости

    void setup() {
    pinMode(4, OUTPUT); устанавливаем 4й аналоговый порт на вывод
    pinMode(2, INPUT);

    pinMode(4, INPUT); устанавливаем 2й и 4й цифровой порт на ввод для опроса кнопок
    }
    void loop(){

    button1 = digitalRead(2);

    button2 = digitalRead(4);
    if (button1 == HIGH) нажатие на первую кнопку увеличит яркость
    {
    led = led + 5;

    analogWrite(4, led);
    }
    if (button2 == HIGH) нажатие на вторую кнопку уменьшит яркость
    {
    led = led — 5;

    analogWrite(4, led);
    }

    При удержании первой или второй кнопки плавно изменяется напряжение, подаваемое на управляющий контакт электронного ключа. Тогда и произойдет плавное изменение яркости.

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

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

    ИК-управление

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

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

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

    По радиоканалу

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

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

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

    Бесконтактное

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

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

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

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

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

    Основных назначений у них два :

    Демонстрация работы оборудования или оповещение о каком-либо событии;
    применение в декоративных целях (подсветка и визуализация).

    Внутри светодиод состоит из красного (red), зеленого (green) и синего (blue) кристаллов, собранных в одном корпусе. Отсюда такое название – RGB (рис.1).

    2. С помощью микроконтроллеров

    С помощью него можно получить множество различных оттенков света. Управление RGB-светодиодом осуществляется с помощью микроконтроллера (MK), например, Arduino (рис.2).

    Конечно, можно обойтись простым блоком питания на 5 вольт, резисторами в 100-200 Ом для ограничения тока и тремя переключателями, но тогда управлять свечением и цветом придется вручную. В таком случае добиться желаемого оттенка света не получится (рис.3-4).

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

    3. Контроллер для управление RGB

    Для разгрузки выводов МК применяются специальные контроллеры WS2801 (5 вольт) или WS2812B (12 вольт) (рис.5).

    С применением отдельного контроллера нет необходимости занимать несколько выходов MK, можно ограничиться лишь одним сигнальным выводом. МК подает сигнал на вход «Data» управляющего контроллера светодиода WS2801.

    В таком сигнале содержится 24-битная информация о яркости цвета (3 канала по 8 бит на каждый цвет), а также информация для внутреннего сдвигового регистра. Именно сдвиговый регистр позволяет определять, к какому светодиоду информация адресовывается. Таким образом можно соединять несколько светодиодов последовательно, при этом использовать все так же один вывод микроконтроллера (рис.6).

    4. Адресуемый светодиод

    Это RGB-светодиод, только с интегрированным контроллером WS2801 непосредственно на кристалле. Корпус светодиода выполнен в виде SMD компонента для поверхностного монтажа. Такой подход позволяет расположить светодиоды максимально близко друг другу, делая свечение более детализированным (рис.7).

    В интернет-магазинах можно встретить адресные светодиодные ленты, когда в одном метре умещается до 144 штук (рис.8).

    Стоит учесть, что один светодиод потребляет при полной яркости всего 60-70 мА, при подключении ленты, например, на 90 светодиодов, потребуется мощный блок питания с током не менее 5 ампер. Ни в коем случае не питайте светодиодную ленту через контроллер, иначе он перегреется и сгорит от нагрузки. Используйте внешние источники питания (рис.9).

    5. Недостаток адресуемых светодиодов

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

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

    6. Применение адресуемых светодиодных лент

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

    Получается интересное решение, если светодиодную ленту использовать в качестве фоновой подсветки Ambilight для монитора компьютера (рис.10-11).

    Если вы будете использовать микроконтроллеры на базе Arduino, вам понадобится библиотека FastLed для упрощения работы со светодиодной лентой ().

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

    Светодиодные ленты бывают двух типов: аналоговые и цифровые .
    В аналоговых лентах все светодиоды включены в параллель. Следовательно, вы можете задавать цвет всей светодиодной ленты, но не можете установить определенный цвет для конкретного LED. Эти ленты просты в подключении и не дорогие.
    Цифровые светодиодные ленты устроены немного сложнее. К каждому светодиоду дополнительно устанавливается микросхема, что делает возможным управлять любым светодиодом. Такие ленты намного дороже обычных.

    В данной статье мы рассмотрим работы только с аналоговыми светодиодными лентами.

    Аналоговые RGB светодиодные ленты

    Техническая спецификация:
    - 10.5мм ширина, 3мм толщина, 100мм длина одного сегмента
    - водонепроницаемая
    - снизу скотч 3М
    - макс. потребление тока (12В, белый цвет) - 60мА на сегмент
    - цвет свечения (длина волны, нм): 630нм/530нм/475нм

    Схема светодиодной RGB ленты

    Лента поставляется в рулонах и состоит из секций длиной по 10 см. В каждой секции размещается 3 RGB светодиода, типоразмера 5050. Т.е. в каждой секции получается, что содержится 9 светодиодов: 3 красных, 3 зеленых и 3 синих. Границы секций отмечены и содержат медные площадки. Поэтому, при необходимости, ленту можно обрезать и спокойно припаиваться. Схема светодиодной ленты:

    Энергопотребление

    В каждой секции ленты, последовательно подключены по 3 светодиода, поэтому питание 5В не подойдет. Питание должно быть 12В, но можно подавать напряжение и 9В, но тогда светодиоды будут гореть не так ярко.

    Одна LED-линия сегмента потребляет приблизительно 20мА при питании 12В. Т.о. если зажечь белый цвет (т.е. красный 100%, зеленый 100% и синий 100%), то энергопотребление секции составит около 60мА.

    Теперь, можно легко посчитать потребление тока всей ленты. Итак, длина ленты составляет 1 метр. В ленте 10 секций (по 10 см каждая). Потребление ленты при белом цвете составит 60мА*10=600мА или 0.6А. Если использовать ШИМ fade-эффект между цветами, то энергопотребление можно снизить вдвое.

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

    Для того, чтобы подключить ленту, необходимо припаять провода к 4 контактным площадкам. Мы использовали белый провод для +12В, а остальные цвета в соответствии с цветами светодиодов.

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

    Зачистите слой изоляции, чтобы оголить контактные площадки.

    Залудите их.

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

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

    Работа с светодиодной лентой

    Ленту легко можно использовать с любым микроконтроллером. Для управления светодиодами рекомендуется использовать широтно-импульсную модуляцию (ШИМ). Не подключайте выводы ленты напрямую к выводам МК, т.к. это большая токовая нагрузка и контроллер может сгореть. Лучше использовать транзисторы.

    Вы можете использовать NPN-транзисторы или еще лучше N-канальные мосфеты. При подборе транзистора не забудьте, что максимальный коммутируемый ток транзистора нужно брать с запасом.

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

    Рассмотрим пример подключения светодиодной ленты к популярному . Для подключения, можно использовать недорогие и популярные мосфеты . Можно также использовать и обычные биполярные транзисторы, к примеру TIP120. Но по сравнению с мосфетом, у него больше потери напряжения, поэтому все же рекомендуется использовать первые.
    На схеме ниже показано подключение RGB светодиодной ленты при использовании N-канальных мосфетах. Затвор мосфета подключается к pin1 контроллера, сток к pin2 и исток к pin3.

    Ниже, показана схема подключения при использовании обычных биполярных транзисторов (например TIP120). База транзистора подключается к pin1 контроллера, коллектор к pin2 и эмиттер к pin3. Между базой и выводом контроллера необходимо поставить резистор сопротивлением 100-220 Ом.

    К контроллеру Arduino подключите источник питания с напряжением 9-12 Вольт, а +12В от светодиодной ленты необходимо подключить к выводу Vin контроллера. Можно использовать 2 раздельных источника питания, только не забудьте соединить "земли" источника и контроллера.

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

    Для управления лентой будет использовать ШИМ-выход контроллера, для этого можно использовать функцию analogWrite() для выводов 3, 5, 6, 9, 10 или 11. При analogWrite(pin, 0) светодиод не будет гореть, при analogWrite(pin, 127) светодиод будет гореть в полнакала, а при analogWrite(pin, 255) светодиод будет гореть с максимальной яркостью. Ниже приведен пример скетча для Arduino:

    #define REDPIN 5 #define GREENPIN 6 #define BLUEPIN 3 #define FADESPEED 5 // чем выше число, тем медленнее будет fade-эффект void setup() { pinMode(REDPIN, OUTPUT); pinMode(GREENPIN, OUTPUT); pinMode(BLUEPIN, OUTPUT); } void loop() { int r, g, b; // fade от голубого к фиолетовому for (r = 0; r 0; b--) { analogWrite(BLUEPIN, b); delay(FADESPEED); } // fade от красного к желтому for (g = 0; g 0; r--) { analogWrite(REDPIN, r); delay(FADESPEED); } // fade от зеленого к зеленовато-голубому for (b = 0; b 0; g--) { analogWrite(GREENPIN, g); delay(FADESPEED); } }

    Этот несложный Arduino проект предназначен для управления с помощью PWM (широтно-импульсной модуляции). Она может изменить уровень каждого цвета независимо путем изменения скважности ШИМ. Таким образом можно создать любой цвет путем смешивания разных цветов в процентах. Вращение энкодера на плате позволяет пользователю выбрать нужный канал и изменить его яркость. Транзисторы с малым коммутационным сопротивлением, создают очень низкое тепловыделение даже с использованием большого количества светодиодов. Например, IRF540 транзистор имеет вполне низкое проходное RDS-сопротивление - около 70 мОм.

    Схема контроллера лент

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

    Основной контроллер выполнен с применением Arduino Uno. Он считывает входные данные от энкодера и согласно этой информации, происходит переключение транзисторов. Транзисторы управляются выводами 9, 10 и 11, которые имеют внутренние функции ШИМ. Направление сигналов энкодера A и B читаются с помощью элементов 2 и 3, которые подключены к модулю. Кнопка энкодера используется для выбора канала и подключена к выводу 1, что устанавливают в качестве входных данных.

    В прошлый раз был рассмотрен способ подключения светодиодной ленты к ардуино через драйвер L298. Управление цветом осуществлялось программно - функция Random. Теперь пришла пора разобраться, как управлять цветом светодиодной ленты на основании показаний датчика температуры и влажности DHT 11.

    За основу взят пример подключения светодиодной ленты через драйвер L298. Плюсом ко всему в пример добавлен дисплей LCD 1602, который будет отображать показания датчика DHT 11.

    Для проекта понадобятся следующие элементы Ардуино:

    1. Плата Ардуино УНО.
    2. Дисплей LCD 1602 + I2C.
    3. Датчик температуры и влажности DHT
    4. Светодиодная лента.
    5. Драйвер L298.
    6. Блок питания 9-12В.
    7. Корпус для ардуино и дисплея (по желанию).

    Первым делом посмотрим на принципиальную схему (рис. 1). На ней можно увидеть, как нужно подключить все вышеперечисленные элементы. В сборке схемы и подключении ничего сложного нет, однако стоит упомянуть об одном нюансе, о котором большинство людей забывают, и в итоге получают неправильные результаты работы LED – ленты с Ардуино.

    Рисунок 1. Принципиальная схема подключения Arduino и светодиодной ленты с датчиком DHT 11

    Во избежание некорректной работы светодиодной ленты (мерцание, несоответствие цветов, неполное свечение и т.д.), питание всей схемы необходимо сделать общим, т.е. объединить контакты GND (земля) контроллера Ардуино и драйвера L298 (светодиодной ленты). Как это сделать, можно посмотреть на схеме.

    Пару слов о подключении датчика влажности. Если покупать голый DHT 11, без обвязки, то между первым и вторым контактами, 5В и Data, соответственно, нужно впаять резистор номиналом 5-10 кОм. Диапазон измерения температуры и влажности написан на обратной стороне корпуса датчика DHT 11. Температура: 0-50 градусов по Цельсию. Влажность: 0-80%.


    Рисунок 2. Правильное подключение датчика влажности DHT 11

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

    Для программирования датчика DHT 11 понадобится дополнительная библиотека.

    Код программы Arduino и RGB – лента. Изменение цвета ленты в зависимости от влажности.

    #include #include //библиотека для работы с дисплеем LCD 1602 #include //библиотека для работы с датчиком влажности и температуры DHT 11 int chk; //переменная будет хранить все данные с датчика DHT11 int hum; //переменная будет хранить показания влажности с датчика DHT11 dht11 DHT; //объект типа DHT #define DHT11_PIN 4 //контакт Data датчика DHT11 подключен на вход 4 #define LED_R 9 // пин для канала R #define LED_G 10 // пин для канала G #define LED_B 11 // пин для канала B //переменные будут хранить значения цветов //при смешивании всех трех цветов будет получаться необходимый цвет int led_r=0, led_g=0, led_b=0; //объявление объекта дисплея с адресом 0х27 //не забываем использовать в проекте дисплей через плату I2C LiquidCrystal_I2C lcd(0x27,16,2); void setup() { //создание дисплея lcd.init(); lcd.backlight(); // объявляем пины выходами pinMode(LED_R, OUTPUT); pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); } void loop() { chk = DHT.read(DHT11_PIN);//читаем данные с датчика DHT11 //вывод данных на дисплей lcd.print("Temp: "); lcd.print(DHT.temperature, 1); lcd.print(" C"); lcd.setCursor(0,1); lcd.print("Hum: "); lcd.print(DHT.humidity, 1); lcd.print(" %"); delay(1500); //для корректной работы датчика нужна задержка на опрос lcd.clear(); hum = DHT.humidity; //берем показания влажности //в диапозоне от 19 до 30% влажности выдать зеленый цвет if ((hum >= 19) && (hum <= 30)) { led_r = 1; led_g = 255; led_b = 1; } //в диапозоне от 31 до 40% влажности выдать красный цвет if ((hum >= 31) && (hum <= 40)) { led_r = 255; led_g = 1; led_b = 1; } //в диапозоне от 41 до 49% влажности выдать синий цвет if ((hum >= 41) && (hum <= 49)) { led_r = 1; led_g = 1; led_b = 255; } // подача сигналов цвета на выхода analogWrite(LED_R, led_r); analogWrite(LED_G, led_g); analogWrite(LED_B, led_b); }

    Метки: Метки