Ардуино: трехцветный светодиод — RGB. Управление мощными rgb светодиодами

06.07.2019

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

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

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

  • 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 светодиодами.


Название RGB Led происходит от аббревиатуры трех основных цветов - R (Red, красный), G (Green, зеленый) и B (Blue, синий). Таким образот, RGB Led это комбинированный трехцветный светодиод, в корпусе которого в действительности размещены три светодиода разных цветов. Яркостью каждого цвета можно управлять отдельно, изменяя ток через соответствующий диод. теориетически, изменяя соотношение яркостей мы можем получить любой цвет, в том числе и белый.

На рисунке показана распиновка RGB светодиода с общим катодом.


Обычно трёхцветный светодиод имеет четыре вывода. Один вывод - общий для всех трех цветовых компонент, и три отдельных вывода для раздельного управления цветами. В зависимости от того, какие из электродов светодиодов соединены вместе внутри общего корпуса, RGB светодиод может быть с общим катодом (ОК) или с общим анодом (ОА). Это нужно иметь в виду при подключении светодиода к источнику тока. Мне приехали светодиоды с общим катодом.

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

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


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

Для иллюстрации работы RGB светодиода с управлением посредством ШИМ я собрал вот такую простую схему на основе маленького дешевого микроконтроллера Microchip PIC12F629.

LED1, LED2 и LED3 это соответственно красный, зеленый и синий компоненты нашего RGB светодиода. Вывод общего катода соединяется с минусом питания. Светодиоды подключены в выводам микроконтроллера через токоограничивающие резисторы R1..R3 сопротивлением 240 Ом. резистор R4 сопротивлением 1...10 килоом подтягивает вывод MCLR контроллера к плюсу питания. Это необходимо для правильной работы программы. Кнопкой S1 можно мерять последовательности световых эффектов. (См. далее)

Прошивку я залил в микроконтроллер с помощью моего самодельного программатора - клона фирменного PicKit2 . Эта простая конструкция была собрана на китайской макетной беспаечной плате типа Breadboard. вот так это выглядит:

Программная часть проекта была позаимствована на англоязычном британском сайте, посвященном радиоэлектронике. . Прошивка для PIC12F629 написана на ассемблере в среде MPLAB IDE v7.31. скачать прошивку и ее исходные коды можно по ссылке в конце статьи. Кроме того, я вложил в архив проект для симулятора Proteus 8.6

Управление светодиодом.

Управление осуществляется с помощью кнопки S1 (см. схему), подключенной к порту GP5 микроконтроллера (вывод 2 микросхемы).

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

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

Нажатие и удерживание более 1.2 сек. - переход в режим сна. Текущее состояние светодиода и программы записывается в энергонезависимую память EEPROM и схема переходит в состояние "сна". Последующее длительное нажатие снова включает схему и последовательность продолжается.

Продолжаем осваивать ШИМ, на этот раз для управления цветом RGB светодиода.

По сути, RGB светодиод совмещает в себе три обычных светодиода — красный, зеленый и синий.

Соответственно у RGB светодиода 4 ножки: для управления каждым из цветов используется по одной ножке и одна общая (обычно самая длинная). Общим может быть как катод(-), так и анод(+). На схеме приведен пример, для схемы с общим анодом.

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

Теперь о реализации, мне достался светодиод с общим катодом, номинальный ток, которого по даташиту составлял 20мА. Однако, есть небольшой нюанс, у каждого цвета свой порог зажигания. Например, у красного светодиода, 20мА соответствовало напряжению 2.1В, зеленому и синему — напряжение 3.2В. В целом ножка микроконтроллера должна выдерживать такой ток, поэтому можно смело подключать через токоограничивающие резисторы к микроконтроллеру.
Я же использовал pnp транзисторы, однако эту идею никому не навязываю.

У Atmega8 есть 3 канала ШИМ: два канала на таймере1(ножки PB.1 — OCR1A, PB.2 — OCR1B) и один таймере2(ножка PB.3 — OCR2). Регулируя заполнение ШИМ, мы регулируем напряжение на светодиоде, соответственно его яркость.

Создаем новый проект, настраиваем таймер2.

Так как OCR2 8-битный, а OCR1 10-битный, то максимальное значение OCR2=0хFF(255), а OCR1A/B=0х3FF(1023), т.е. в 4 раза больше. Учитываем эту особенность, поэтому чтобы каналы регулировались одинаково, настраиваем частоту таймера в 4 раза больше. Соответственно, максимальная яркость для OCR2 будет при 0xFF, а для OCR1 при 0x3FF.

Настраиваем ножки PB1-PB3 как выход. В основной цикл программы дописываем код, который плавно зажигает красный от 0 до 255, а затем плавно тушит его от 255 до 0.

while(OCR1A<0x3FF) { OCR1A++; delay_ms(2); } while(OCR1A>0x00) { OCR1A--; delay_ms(2); }

Результат:

Если нужно получить, некоторый определенный цвет, например пурпурный, открываем какой нибудь графический редактор, например Paint.net заходим в палитру нажимаем на понравившийся цвет, справа, где написано RGB отобразятся его числовые значения R=255, B=220.

Канал R у меня на OCR2, поэтому смело в OCR2 записываем 0xFF(255), канал B на OCR1A, но т.к. максимальное значение 1023, то по пропорции пересчитываем:

(220*1023)/255=882 вот его смело пихаем в OCR1A, результат довольно таки похож.