Схема управления RGB светодиодами. RGB-светодиоды: как они работают, внутреннее устройство, как подключить, RGB-led и Arduino

  • 07.08.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 для упрощения работы со светодиодной лентой ().

Мы не раз рассматривали разнообразные светодиоды, строение, использование и т.д. и т.п. Сегодня я хотел бы остановиться на одной из разновидностей светодиодов (если так можно говорить) - RGB светодиодах.

Что такое RGB светодиод и устройство


Соединение RGB диодов с ШИМ Altmega8

Аноды RGB светодиода подключаем к линиям 1,2,3 порта В, катоды соединяем с минусом. Чтобы получить разнообразные палитры цвета на аноды будем подавать ШИМ сигнал в определенной последовательности. В этом примере мы специально используем программный ШИМ, хотя на Atmega8 можно без проблем получить аппаратный ШИМ на 3 канала. Программный ШИМ можно использовать в случаях нехватки таймеров/счетчиков и по другим причинам. Для генерации ШИМ определенной частоты используем прерывание по переполнению 8-ми битного таймера Т0(TIMER0_OVF_vect). Так как предделитель не используем частота переполнения таймера будет равна 31250Гц. А если переменная "pwm_counter" считает до 163, то частота ШИМ будет равна 190 Hz. В обработчике прерываний исходя из значений в переменных pwm_r, pwm_g, pwm_b переключаются ножки порта В. Цветовые эффекты настраиваются с помощью функций, где задается время свечения светодиода. В тестовой программе сначала загораются красный, зеленый, синий, белый цвета, а потом начинается цикл с переходами цвета.

Программный код:

// Управление RGB светодиодом. Программный ШИМ

#include

#include

volatile char pwm_counter,pwm_r,pwm_g,pwm_b;

// Прерывание по переполнению Т0

ISR (TIMER0_OVF_vect)

if (pwm_counter++ > 163)

pwm_counter = 0;

if (pwm_counter > pwm_r) PORTB |= (1 << PB1);

if (pwm_counter > pwm_g) PORTB |= (1 << PB2);

if (pwm_counter > pwm_b) PORTB |= (1 << PB3);

// Процедура задержки в микросекундах

void delay_us(unsigned char time_us)

{ register unsigned char i;

for (i = 0; i < time_us; i++) // 4 цикла

{ asm (" PUSH R0 "); // 2 цикла

asm (" POP R0 "); // 2 цикла

// 8 циклов = 1 us для 8MHz

// Процедура задержки в миллисекундах

void delay_ms(unsigned int time_ms)

{ register unsigned int i;

for (i = 0; i < time_ms; i++)

{ delay_us(250);

// Красный цвет

void red (unsigned int time)

for (char a = 0; a < 165; a++)

pwm_r = 164 - a; //увеличение

for (char a = 0; a < 165; a++)

pwm_r = a; //уменьшение

// Зеленый цвет

void green (unsigned int time)

for (char a = 0; a < 165; a++)

pwm_g = 164 - a;

for (char a = 0; a < 165; a++)

// Синий цвет

void blue (unsigned int time)

for (char a = 0; a < 165; a++)

pwm_b = 164 - a;

for (char a = 0; a < 165; a++)

// Белый цвет

void white (unsigned int time)

for (char a = 0; a < 165; a++)

pwm_r = 164 - a;

pwm_g = 164 - a;

pwm_b = 164 - a;

for (char a = 0; a < 165; a++)

// Переход цветa

void rgb (unsigned int time)

for (char a = 0; a < 165; a++)

pwm_b = 164 - a;

for (char a = 0; a < 165; a++)

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

Общий принцип действия драйвера показан на рисунке 1. Два генератора генерируют прямоугольные импульсы с заполнением 50%, но немного отличаются по частоте (до десятков Гц).

На выходе логического элемента EX-OR (исключающее ИЛИ) высокий уровень появиться только тогда, когда на обоих выходах генераторов одновременно появится 1 или 0.

Диаграмма сигналов на выходах генераторов приведена на рисунке 2. Как видно, на выходе логического элемента EX-OR появляется меандр с переменным заполнением 0…100%. Заполнение это будет изменяться тем медленнее, чем меньше будет разность частот обоих генераторов.

Микросхема CD4060 это 14-разрядный двоичный счётчик с генератором. Миниатюрный дроссель L1, конденсаторы C1 и C2, а также логические элементы CD4060 образуют генератор высокой частоты, работающий на частоте примерно 700 кГц. Эта частота делится в этом счетчике на 212.

Сигнал с генератора также подается на входы CLK 12-разрядных двоичных счётчиков на CD4040, которые подсчитывают импульсы с генератора.

Когда отсчет доходит до того, что на выходе Q11 (ножка 15) появляется логическая единица, на выходе элемента NOT будет низкое состояние, приводящее к блокировке на доли секунды подсчета импульсов (время зависит от емкости C3 и суммарного сопротивления R2 и PR1).

И так происходит при каждом появлении высокого уровня на выходе Q11 CD4040, то есть, как можно заметить, при каждом изменении состояния на выходе Q12 CD4040. Это приводит к тому, что на выходе Q12 CD4060 частота несколько выше от частоты на выходе Q12 CD4040 (разница зависит от C3, R и чем больше значение, тем больше разница).

Благодаря этой минимальной разнице, на элементах EX-OR появляется меандр переменного заполнения по времени. Это в свою очередь приводит к тому, что светодиод, подключенный к выходу этой, цепи будет плавно загораться и гаснуть.

Переменными резисторами можно регулировать скорость изменения заполнения (скорость включения и выключения светодиодов). Так же в схеме добавлен фотодатчик на элементах T4, T5 и R14, для того чтобы схема автоматически включалась только в темное время суток. От сопротивления резистора R14 зависит, при какой яркости схема все еще будет работать.

(233,6 Kb, скачано: 422)

Светящиеся только красным - R , зеленым - G , синим - B или белым - CW цветом, как правило, подключаются непосредственно к источнику постоянного тока напряжением 12 В или 24 В. R G B светодиодную ленту, как и монохромные, тоже можно подключить к блоку питания постоянного тока, соединив выводы R , G и B между собой.

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

На фотографии изображена электрическая схема подключения R G B светодиодной ленты к сети 220 В. Блок питания (адаптер) преобразует переменное напряжение 220 В в напряжение постоянного тока 12 В, которое по двум проводам с соблюдением полярности подается на R G B контроллер. К контроллеру посредством четырех проводов в соответствии с маркировкой подключается светодиодная лента. Для удобства монтажа и ремонта светодиодного освещения узлы между собой соединяются с помощью разъемов.

Электрическая схема LED R G B светодиода SMD-5050

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

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

Технические характеристики светодиода SMD-5050 приведены на странице сайта «Справочник по SMD светодиодам» .

Электрическая схема LED R G B ленты на светодиодах SMD-5050

Разобравшись с устройством светодиода легко разобраться и с устройством светодиодной ленты. В верхней части картинки фотография работоспособного отрезка LED R G B ленты, а в нижней его электрическая схема.


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

Кристаллы светодиодов VD1, VD2 и VD3 одинакового цвета свечения соединены последовательно. Для ограничения тока в каждой из цветовых цепей установлены токоограничивающие резисторы. Два из них номиналом 150 Ом, а один 300 Ом, в цепи кристаллов красного цвета. Резистор большего номинала установлен для выравнивания яркости всех цветов с учетом интенсивности излучения кристаллом светодиода и не одинаковой цветовой чувствительности человеческого глаза к разным цветам.

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

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

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

Способы управления цветом свечения
R G B светодиодных лент

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

Принцип работы простейшего контроллера на выключателях

Рассмотрим принцип работы самого простого контроллера, на механических выключателях. В качестве выключателя для ручного управления свечением R G B ленты можно применить трех клавишный настенный выключатель, предназначенный для включения люстр и светильников в бытовую сеть 220 В. Электрическая схема подключения тогда будет иметь следующий вид.


Резисторы R1-R3 служат для ограничения тока и их можно устанавливать в любом месте цепи питания кристаллов одного цвета. По этой схеме можно подключать R G B ленты, рассчитанные на напряжение питания как 12 В, так и 24 В.

Как видно из схемы, плюсовой вывод блока питания подключается непосредственно к плюсовому выводу светодиодной ленты, который является общий для светодиодов всех цветов, а минусовой вывод подключается к R , G и B контактам ленты через выключатель. Коммутатором из трех выключателей можно получить семь цветов свечения ленты. Это самый простой, надежный и дешевый способ управления цветами свечения R G B ленты.

Принцип работы электронного контроллера

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

Так как для работы светодиодной ленты требуется, как правило, напряжение постоянного тока 12 В (реже 24 В), то для подключения ее к электросети переменного тока 220 В применяется блок питания или адаптер, преобразующий переменное напряжение в напряжение постоянного тока, которое через разъемное соединение подается на блок контроллера.


Рассмотрим принцип работы RGB контроллера на примере самого простого и широко применяемого контроллера модели LN-IR24. Он состоит из трех функциональных узлов – контроллера управления R G B , силовых ключей и микросхемы инфракрасного сенсора (ИК). Микросхема контроллера прошита на требуемый алгоритм работы светодиодной ленты. Управление микросхемой контроллера осуществляется сигналом, поступающим с микросхемы сенсора ИК. На ИК сенсор управляющий сигнал поступает при нажатии кнопок на пульте дистанционного управления.

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

Выбор блока питания и контроллера для R G B ленты

Блок питания для RGB светодиодной ленты, необходимо выбирать, исходя из напряжения ее питания и потребляемого тока. Наиболее популярны светодиодные ленты на напряжение постоянного тока 12 В. Ток потребления по цепям R, G и B можно узнать из этикетки или определить самостоятельно, воспользовавшись справочными данными на светодиоды, изложенными в таблице на странице сайта Справочная таблица параметров популярных SMD светодиодов . Принято мощность потребления ленты указывать на метр ее длины.

Рассмотрим на примере как определить мощность потребления RGB ленты неизвестного типа на напряжение питания 12 В. Например, нужно подобрать блок питания и контроллер для R G B ленты длиной 5 м. Первое что необходимо сделать, определить тип RGB светодиодов установленных на ленте. Для этого достаточно измерять размер боковых сторон светодиода. Допустим, получилось 5 мм×5 мм. По таблице определяем, что такой размер имеет светодиод типа LED-RGB-SMD5050. Далее нужно подсчитать количество корпусов светодиодов на метре длины. Допустим, получилось 30 штук.

Один кристалл светодиода потребляет ток 0,02 А, в одном корпусе размещено три кристалла, следовательно суммарный ток потребления одного светодиода составит 0,06 А. На одном метре длины 30 светодиодов, умножаем ток на количество 0,06 А×30=1,8 А. Но диоды включены по три последовательно, значит, реальный ток потребления метра ленты будет в три раза меньше, то есть 0,6 А. Длина нашей ленты пять метров, следовательно, суммарный ток потребления составит 0,6 А×5 м=3 А.

Расчеты показали, что для питания R G B ленты длиной пять метров нужен блок питания или сетевой адаптер с выходным напряжением постоянного тока 12 В и током нагрузки не менее 3 А. Блок питания должен иметь запас по току, поэтому был выбран, адаптер модели АРО12-5075UV, рассчитанный на ток нагрузки до 5 А. При выборе блока питания нужно учесть, что выходной его разъем должен подходить к разъему R G B контроллера.

При выборе контроллера надо учесть, что ток потребления по отдельно взятому каналу R , G или B будет в три раза меньше. Следовательно, для нашего случая нужно брать контроллер, рассчитанный на напряжение 12 В и максимально допустимым током нагрузки на канал не менее 3 А/3=1 А.

Этим требованиям соответствует, например, R G B контроллер LN-IR24B. Он рассчитан на ток нагрузки до 2 А (можно подключить до 10 метров RGB ленты). Позволяет включать и выключать ленту, выбирать 16 статических цветов и 6 динамических режимов дистанционно, с расстояния до восьми метров, с помощью элегантного пульта ДУ. Питающее напряжение на контроллер подается с блока питания или сетевого адаптера с помощью коаксиального DC Jack. R G B -контроллер LN-IR24B имеет малый вес и габаритные размеры.


Внешний вид подготовленного по результатам расчета комплекта для освещения светодиодной лентой показан на фотографии. В комплект входит блок питания модели АРО12-5075UV, R G B контроллер LN-IR24B с пультом дистанционного управления и R G B светодиодная лента.


Если потребуется подключить несколько пятиметровых R G B лент, то потребуется более мощный контроллер, например, CT305R, позволяющий выдавать ток до 5 А на светодиоды одного цвета. Этим контроллером можно управлять не только с помощью пульта дистанционного управления, но и по сети с компьютера, превратив тем самым R G B освещение в цветомузыкальное сопровождение при прослушивании музыки.

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

В мощных моделях контроллеров для подключения внешних устройств используются клеммные колодки, в которых провода зажимаются с помощью винта. Рядом с клеммами обязательно нанесена маркировка. INPUT (IN) означает вход, к этим клеммам подключается внешний блок питания, с которого подается питающее напряжение для самого контроллера и светодиодных лент. Полярность обозначена дополнительными знаками «+» и «-». Несоблюдение полярности при подключении блока питания может вывести контроллер из строя.

Группа клемм для подключения R G B ленты обозначена надписью OUTPUT (OUT) и означает выход. Цвета обозначены буквами R (красный), G (зеленый), B (синий) и V+ (это общий провод любого другого цвета). От ленты обычно идут тоже цветные провода и достаточно просто присоединить их цвет в цвет.

Замечу, что к любому R G B контроллеру, соответствующему по току, можно с успехом подключить монохромную светодиодную ленту . Тогда появится возможность с помощью пульта дистанционного управления менять режим ее свечения – включать, выключать, менять яркость, устанавливать динамический режим изменения яркости.

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

RGB — это аббревиатура, которая расшифровывается как: Red — красный, Green — зеленый, Blue — синий. То есть внутри этого устройства размещается сразу три отдельных светодиода. В зависимости от типа, RGB-светодиод может иметь общий катод или общий анод.

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

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

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

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

2. Подключение RGB-светодиода к Ардуино

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

В уроке мы используем RGB-светодиод с общим катодом, так что провод к земле будет только один.

Принципиальная схема

Внешний вид макета

3. Программа для управления RGB-светодиодом

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

Const byte rPin = 3; const byte gPin = 5; const byte bPin = 6; void setup() { pinMode(rPin, OUTPUT); pinMode(gPin, OUTPUT); pinMode(bPin, OUTPUT); } void loop() { // гасим синий, зажигаем красный digitalWrite(bPin, LOW); digitalWrite(rPin, HIGH); delay(500); // гасим красный, зажигаем зеленый digitalWrite(rPin, LOW); digitalWrite(gPin, HIGH); delay(500); // гасим зеленый, зажигаем синий digitalWrite(gPin, LOW); digitalWrite(bPin, HIGH); delay(500); }

Загружаем программу на Ардуино и наблюдаем результат.

Немного оптимизируем программу: вместо переменных rPin, gPin и bPin применим массив. Это нам поможет в следующих заданиях.

Const byte rgbPins = {3,5,6}; void setup() { for(byte i=0; i<3; i++) pinMode(rgbPins[i], OUTPUT); } void loop() { digitalWrite(rgbPins, LOW); digitalWrite(rgbPins, HIGH); delay(500); digitalWrite(rgbPins, LOW); digitalWrite(rgbPins, HIGH); delay(500); digitalWrite(rgbPins, LOW); digitalWrite(rgbPins, HIGH); delay(500); }

4. Семь цветов радуги

Теперь попробуем зажигать одновременно по два цвета. Запрограммируем такую последовательность цветов:

  • красный
  • красный + зеленый = желтый
  • зеленый
  • зеленый + синий = голубой
  • синий
  • синий + красный = фиолетовый

Оранжевый цвет мы для упрощения опустили. Так что, получилось шесть цветов радуги 🙂

Const byte rgbPins = {3,5,6}; const byte rainbow = { {1,0,0}, // красный {1,1,0}, // жёлтый {0,1,0}, // зелёный {0,1,1}, // голубой {0,0,1}, // синий {1,0,1}, // фиолетовый }; void setup() { for(byte i=0; i<3; i++) pinMode(rgbPins[i], OUTPUT); } void loop() { // перебираем все шесть цветов for(int i=0; i<6; i++){ // перебираем три компоненты каждого из шести цветов for(int k=0; k<3; k++){ digitalWrite(rgbPins[k], rainbow[i][k]); } delay(1000); } }

В результате работы программы получается:

Your browser does not support the video tag.

5. Плавное изменение цвета

Мы не зря подключили RGB-светодиод к выводам 3, 5 и 6. Как известно, эти выводы позволяют генерировать ШИМ сигнал разной скважности. Другими словами, мы можем не просто включать или выключать светодиод, а управлять уровнем напряжения на нем. Делается это с помощью функции analogWrite .

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

Const byte rgbPins = {3,5,6}; int dim = 1; void setup() { for(byte i=0; i<3; i++){ pinMode(rgbPins[i], OUTPUT); } // начальное состояние - горит красный цвет analogWrite(rgbPins, 255); analogWrite(rgbPins, 0); analogWrite(rgbPins, 0); } void loop() { // гасим красный, параллельно разжигаем зеленый for(int i=255; i>=0; i--){ analogWrite(rgbPins, i/dim); analogWrite(rgbPins, (255-i)/dim); delay(10); } // гасим зеленый, параллельно разжигаем синий for(int i=255; i>=0; i--){ analogWrite(rgbPins, i/dim); analogWrite(rgbPins, (255-i)/dim); delay(10); } // гасим синий, параллельно разжигаем красный for(int i=255; i>=0; i--){ analogWrite(rgbPins, i/dim); analogWrite(rgbPins, (255-i)/dim); delay(10); } }

Переменная dim определяет яркость свечения. При dim = 1 имеем максимальную яркость.

Загружаем программу на Ардуино.

Your browser does not support the video tag.

Задания

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