Windows 10

Проект управления rgb светодиодами авр. RGB светодиод и Arduino

Проект управления rgb светодиодами авр. RGB светодиод и Arduino

Если вы хотите самостоятельно усовершенствовать свой компьютер какими-нибудь навороченными «фишками», проще всего использовать для этого светодиоды – они просты в работе, дёшевы и не требуют каких-то особых навыков и ухищрений. Светодиод способен украсить ваше рабочее место, придать ему дополнительное освещение, да и просто поднять настроение. Чтобы подключить светодиод, следуйте нашей пошаговой инструкции.

Вам понадобится

  • 1. светодиоды
  • 2. паяльник и всё, что необходимо для работы с ним
  • 3. резисторы, которые будут снижать напряжение и силу тока от источника питания
  • 4. разъёмы, необходимые для подключения светодиодов к компьютеру
  • 5. тестер для проверки напряжения
  • 6. кусачки, чтобы зачищать провода
  • 7. термоусадочная трубка

Инструкция

Перед началом работы убедитесь, что у вас есть все необходимые инструменты и приспособления для работы.

Подключение к разъёму 4-pin molex.Сначала давайте посмотрим, светодиод к разъёму 4-pin molex. Это довольно распространённый разъём в , поэтому вполне возможно, что в вашем компьютере он есть. Этот разъём содержит четыре :1. +12 В (жёлтый провод)
2. +5 В (красный провод)
3. Два контакта заземления (чёрные)Выберите, куда вы хотите диоды – к 12 или к 5 вольтам. Разъём приобретите или выньте из ненужного устройства. Тестером проверьте, соответствуют ли выбранные контакты, определите, где у положительный, а где отрицательный контакты.

Провода зачистите кусачками, резистор припаяйте к положительному контакту разъёма. Соединение закройте термоусадкой. Ко второму контакту резистора припаяйте положительный контакт светодиода. Закройте место термоусадочной трубкой. Возьмите отрицательный контакт светодиода и припаяйте его к контакту «земля» разъёма.

Подключение к USBМожно подключить светодиод и к кабелю с разъёмом USB. Такие кабели существуют двух видов, но принципиальной разницы в ходе работы у них нет, так что найдите любой ненужный кабель и приступайте.В USB находится четыре контакта, два из которых передают данные, один контакт – «земля», а ещё один передаёт напряжение. Вот к нему-то и нужно подключить светодиод. Тестером проверьте напряжение и определите положительный и отрицательный полюса у диода.Кусачками зачистите провода, передающие напряжения. Резистор припаяйте к положительному контакту, место спайки закройте термоусадкой. Ко второму контакту резистора присоедините положительный контакт светодиода и закройте место спайки. Отрицательный контакт диода припаяйте к контакту «земля», закройте место спайки термоусадкой. Подключите USB кабель к компьютеру и проверьте, работает ли он.

В этой статье рассмотрены основы использования RGB (Red Green Blue (красный, зеленый, синий)) светодиода с Arduino.

Мы используем функцию analogWrite для управления цветом RGB светодиода.

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

То есть, мы будем регулировать яркость каждого светодиода и получать нужный цвет на выходе, как будто это палитра художника или словно вы настраиваете частоты на своем плеере. Для этого можно использовать переменные резисторы . Но в результате схема будет достаточно сложной. К счастью, Arduino предлагает нам функцию analogWrite. Если задействовать на плате контакты, отмеченные символом «~», мы можем регулировать напряжение, которое подается на соответствующий светодиод.

Необходимые узлы

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

1 RGB светодиод 10 мм

3 резистора на 270 Ω (красная, фиолетовая, коричневая полоски). Вы можете использовать резистор с сопротивлением до 1 кОм, но не забывайте, что с повышением сопротивления, светодиод начинает светить не так ярко.


Шесть цифр номера соответствуют трем парам номеров; первая пара – красная составляющая цвета, следующие две цифры – зеленая составляющая, а последняя пара – синяя составляющая. То есть, красному цвету соответствует выражение #FF0000, так как это будет максимальная яркость красного светодиода (FF - это 255 в шестнадцатеричной системе), а красная и синяя компоненты равны 0.

Попробуйте зажечь светодиод, используя, например, оттенок индиго: #4B0082.

Красная, зеленая и синяя компоненты цвета индиго – это 4B, 00 и 82 соответственно. Мы можем использовать их в пределах функции "setColor" с помощью следующей строки кода:

setColor(0x4B, 0x0, 0x82); // индиго

Для трех компонент мы используем запись, в которой перед каждой из них ставится символ "0x" в начале.

Когда будете играться с разными оттенками RGB светодиода, не забывайте после использования каждого из них устанавливать задержку ‘delay’.

ШИМ и Arduino

Широтно импульсная модуляция (ШИМ (PWM на английском)) – это один из методов управления питанием. В нашем случае ШИМ используется для управления яркостью каждого отдельного светодиода.

На рисунке ниже схематично изображен сигнал с одного из ШИМ пинов Arduino.


Каждую 1/500 секунды ШИМ выход генерирует импульс. Длина этого импульса контролируется функцией "analogWrite". То есть, "analogWrite(0)" не будет генерировать никакого импульса, а "analogWrite(255)" сгенерирует сигнал, который будет длится до самого начала следующего. То есть, будет создаваться впечатление, что подается один непрерывный импульс.

Когда в пределах функции analogWrite мы указываем значение в диапазоне от 0 до 255, мы генерируем импульс определенной длительности. Если длина импульса составляет 5%, мы подадим на указанный выход Arduino 5% от максимально доступного питания и создается впечатление, что светодиод горит не на максимальную яркость.

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!

В данной статье мы расскажем о цветных светодиодах, отличии простого 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 для упрощения работы со светодиодной лентой ().

Или подсветку с возможностью переключать разные цвета, поэтому тема LED драйверов очень актуальна. Предлагаемая схема такого устройства управляет RGB-светодиодами через Н-канальные МОП-транзисторы, которые позволяют контролировать светодиодные матрицы или лампы до 5 ампер на канал без применения теплоотводов.

Схема электрическая и описание

Во время тестирования контроллер подключался к 50 Вт на 12 В галогенным лампочкам, по одной на каждый канал. Температура МОСФЕТ транзисторов после 5 мин прогона составила чуть больше 50C. Теоретически общая нагрузка для всех трех каналов RGB не должна превышать 15 ампер.

Указанный транзистор STP36NF06L работает при низком напряжении на затворе. Вы можете использовать такие другие стандартные N-канальные полевые транзисторы, которые будут нормально работать при токах нагрузки до 5 ампер и не требовать слишком большого сигнала на входе для полного отпирания.

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

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

На этом занятии мы будем использовать цифровые и аналоговые выходы с «широтно импульсной модуляцией» на плате Arduino для включения RGB светодиода с различными оттенками. Использование RGB LED ленты позволяет создать освещение интерьера с любым оттенком цвета. Расскажем про устройство и распиновку полноцветного (RGB) светодиода и рассмотрим директиву #define в языке C++.

Устройство и назначение RGB светодиода

Для отображения всей палитры оттенков вполне достаточно три цвета, используя RGB синтез (Red - красный, Green - зеленый, Blue - синий). RGB палитра используется не только в графических редакторах, но и в сайтостроении . Смешивая цвета в разной пропорции можно получить практически любой цвет. Преимущества RGB светодиодов в простоте конструкции, небольших габаритах и высоком КПД светоотдачи.

RGB светодиоды объединяют три кристалла разных цветов в одном корпусе. RGB LED имеет 4 вывода — один общий (анод или катод имеет самый длинный вывод) и три цветовых вывода. К каждому цветовому выходу следует подключать резистор. Кроме того, модуль RGB LED Arduino может сразу монтироваться на плате и иметь встроенные резисторы — этот вариант более удобный для занятий в кружке .

Фото. Распиновка RGB светодиода и модуль с RGB светодиодом для Ардуино

Распиновка RGB светодиода указана на фото выше. Заметим также, что для многих полноцветных светодиодов необходимы светорассеиватели, иначе будут видны составляющие цвета. Далее подключим RGB светодиод к Ардуино и заставим его светится всеми цветами радуги с помощью «широтно импульсной модуляции».

Управление RGB светодиодом на Ардуино

Аналоговые выходы на Ардуино используют «широтно импульсную модуляцию» для получения различной силы тока. Мы можем подавать на все три цветовых входа на светодиоде различное значение ШИМ-сигнала в диапазоне от 0 до 255, что позволит нам получить на RGB LED Arduino практически любой оттенок света.

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • RGB светодиод;
  • 3 резистора 220 Ом;
  • провода «папа-мама».

Фото. Схема подключения RGB LED к Ардуино на макетной плате

Модуль «RGB светодиод» можно подключить напрямую к плате, без проводов и макетной платы. Подключите модуль с полноцветным RGB светодиодом к следующим пинам: Минус — GND, B — Pin13, G — Pin12, R — Pin11 (смотри первое фото). Если вы используете RGB LED (Light Emitting Diode), то подключите его по схеме на фото. После подключения модуля и сборки схемы на Ардуино загрузите скетч.

Скетч для мигания RGB светодиодом

#define RED 11 // Присваиваем имя RED для пина 11 #define GREEN 12 // Присваиваем имя GREEN для пина 12 #define BLUE 13 // Присваиваем имя BLUE для пина 13 void setup () { pinMode(RED, OUTPUT ); pinMode(GREEN, OUTPUT ); // Используем Pin12 для вывода pinMode(BLUE, OUTPUT ); // Используем Pin13 для вывода } void loop () { digitalWrite (RED, HIGH ); // Включаем красный свет digitalWrite (GREEN, LOW ); digitalWrite (BLUE, LOW ); delay (1000); digitalWrite (RED, LOW ); digitalWrite (GREEN, HIGH ); // Включаем зеленый свет digitalWrite (BLUE, LOW ); delay (1000); // Устанавливаем паузу для эффекта digitalWrite (RED, LOW ); digitalWrite (GREEN, LOW ); digitalWrite (BLUE, HIGH ); // Включаем синий свет delay (1000); // Устанавливаем паузу для эффекта }

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

  1. с помощью директивы #define мы заменили номер пинов 11, 12 и 13 на соответствующие имена RED , GREEN и BLUE . Это сделано для удобства, чтобы не запутаться в скетче и понимать какой цвет мы включаем;
  2. в процедуре void setup() мы назначили пины 11, 12 и 13, как выходы;
  3. в процедуре void loop() мы поочередно включаем все три цвета на RGB LED.
  4. Плавное управление RGB светодиодом

    Управление rgb светодиодом на Arduino можно сделать плавным, используя аналоговые выходы с «широтно импульсной модуляцией». Для этого цветовые входы на светодиоде необходимо подключить к аналоговым выходам, например, к пинам 11, 10 и 9. И подавать на них различные значения ШИМ (PWM) для различных оттенков. После подключения модуля с помощью проводов «папа-мама» загрузите скетч.

    Скетч для плавного мигания RGB светодиода

    #define RED 9 // Присваиваем имя RED для пина 9 #define GREEN 10 // Присваиваем имя GREEN для пина 10 #define BLUE 11 // Присваиваем имя BLUE для пина 11 void setup () { pinMode (RED, OUTPUT ); // Используем Pin9 для вывода pinMode (GREEN, OUTPUT ); // Используем Pin10 для вывода pinMode (BLUE, OUTPUT ); // Используем Pin11 для вывода } void loop () { analogWrite (RED, 50); // Включаем красный свет analogWrite (GREEN, 250); // Включаем зеленый свет analogWrite (BLUE, 150); // Включаем синий свет }

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

    1. с помощью директивы #define мы заменили номер пинов 9, 10 и 11 на соответствующие имена RED , GREEN и BLUE . Это сделано для удобства, чтобы не запутаться в скетче и понимать какой цвет мы включаем;
    2. пины 11, 12 и 13 мы использовали, как аналоговые выходы analogWrite .