Как подключить RGB светодиод на Arduino

RGB-светодиод Arduino — лента, состоящая из 3 LED-кристаллов и оптической линзы. Он работает с помощью механизмов ШИМ (широтно-импульсной модуляции) и подсоединяется к микроконтроллеру Ардуино. Средняя стоимость RGB LED ленты на территории Российской Федерации составляет 340 руб.

Как устроен RGB-светодиод и его назначение

Светодиодная лента состоит из 3 цветных кристаллов и 4 выходов: 12 (общий вывод), R (Red), G (Green), B (Blue). Основные комплектующие помещены в пластиковый корпус. Также в некоторых моделях RGB LED Arduino присутствуют встроенные резисторы. Они подключены к цветным выходам. Анодные и катодные электроды обладают самыми длинными выводами.

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

Данная лента RGB имеет 4 порта для подключения источников питания и платы Ардуино. Светодиоды управляются посредством цифрового протокола. Он обеспечивает взаимодействие между лентой и программной средой. Протокол конвертирует цифровой код в команды, воспринимаемые диодами. В зависимости от интенсивности сигнала кристаллы загораются разными цветами.

Устройство
Устройство светодиоида.

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

  1. Powerbank 5V: лента подсоединяется к данному устройству при помощи USB-штекеров. Емкость Powerbank 5V составляет 3350 мА*ч, что позволяет питать светодиоды током с силой 3А.
  2. Батарейки АА: используются в количестве 3 шт. Общая емкость этих приборов составляет 180 мА*ч. Они подают ток с напряжением до 5,5 В. Рекомендуется использовать батарейки AA, изготовленные из лития или апкалина.
  3. Никелевые аккумуляторы: имеют напряжение до 1,4 В. Для питания RGB Arduino требуется не менее 4 аккумуляторов из никеля. Емкость сборки составляет 2700 мА*ч.
  4. Литиевые аккумуляторы: имеют напряжение 4,2 В. В процессе эксплуатации значение этого показателя снижается до 3 В. Литиевые аккумуляторы позволяют сохранять полную яркость светодиодов. Они питают диоды током с силой до 2 А.

В зависимости от способа подачи электрического тока светодиоды будут гореть разными цветами. Если подать питание на 3 цветных светодиода одновременно, то кристаллы станут белыми. Для настройки цветовой гаммы Arduino RGB используются контроллеры с пультом управления. Они состоят из 3 полевых транзисторов и микропроцессора. Это приспособление позволяет настроить цветовую гамму светодиодов на дальнем расстоянии. Работа контроллеров с пультом управления обеспечивается при помощи скетчей, написанных в программной среде Ардуино.

Выделяют 2 основные модели RGB LED Arduino:

  1. WS2811: светодиоды питаются от чипа WS2811, расположенного отдельно от RGB-ленты. Питание устройства составляет 12 В.
  2. WS2812b: представляет собой ленту с напаянными светодиодами. В диоды встроены чипы WS2812b. Они позволяют менять окрас светодиодов по отдельности. Питание ленты WS2812b составляет 5 В.
Основными преимуществами RGB LED Arduino являются простота конструкции и высокий КПД. Эти приспособления активно используются при изготовлении осветительных приборов и декоративных подсветок. Также технология RGB нашла применение в трехмерной графике и WEB-разработке.

Как управлять светодиодом на Ардуино

Управление RGB-лентой производится с помощью настройки диапазона сигналов широтно-импульсной модуляции, позволяющих регулировать силу электротока. Сигналы широтно-импульсной модуляции кодируются цифрами в диапазоне от 0 до 255. Этот метод кодировки позволяет получить на РГБ Ардуино 16,8 млн различных цветных оттенков.

Для управления RGB-светодиодами требуются следующие комплектующие:

  • контроллер Arduino UNO R3, Nano или Mega.
  • RGB-диоды;
  • 3 резистора с сопротивлением 220 Ом;
  • проводные механизмы “плюс-минус”.
Контроллер устройства
Контроллер UNO R3 устройства Arduino.

При подключении светодиода к Ардуино требуется соединить провод “минус” с пином заземления GND. Синий диод подключается к порту Pin13, зеленый — к Pin 12, красный — к Pin 11.

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
int red_light_pin= 11;
int green_light_pin = 10;
int blue_light_pin = 9;
 
void setup() {
    pinMode(red_light_pin, OUTPUT);
    pinMode(green_light_pin, OUTPUT);
    pinMode(blue_light_pin, OUTPUT);
}
 
void loop() {
    RGB_color(255, 0, 0); // Red
    delay(1000);
    RGB_color(0, 255, 0); // Green
    delay(1000);
    RGB_color(0, 0, 255); // Blue
    delay(1000);
    RGB_color(255, 255, 125); // Raspberry
    delay(1000);
    RGB_color(0, 255, 255); // Cyan
    delay(1000);
    RGB_color(255, 0, 255); // Magenta
    delay(1000);
    RGB_color(255, 255, 0); // Yellow
    delay(1000);
    RGB_color(255, 255, 255); // White
    delay(1000);
}
 
void RGB_color(int red_light_value, int green_light_value, int blue_light_value)
{
    analogWrite(red_light_pin, red_light_value);
    analogWrite(green_light_pin, green_light_value);
    analogWrite(blue_light_pin, blue_light_value);
}

После компиляции этого программного кода кристаллы загорятся радужными цветами. Для настройки гаммы трехцветного светодиода требуется изменить в программном коде значение переменных red, blue и green. Чтобы все диоды стали белыми, нужно установить все значения цветов 255.

Белый диод
Белый светодиод.

Команды передаются последовательно между портами. Движение ШИМ-сигналов указано в виде стрелок на светодиодной ленте Ардуино. 2 резистора 220 Ом требуются для предотвращения выгорания портов платы или возникновения короткого замыкания.

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

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

В библиотеке GyverRGB присутствуют программные конструкции, выполняющие следующие функции:

  1. Установка цвета и оттенков в формате HEX.
  2. Контроль полярности широтно-импульсной модуляции.
  3. Настройка яркости светодиодов.
  4. Регулировка частоты коррекции ШИМ.
  5. Ограничение подачи электрического тока.
  6. Плавная смена цветовой гаммы по мере разряда аккумулятора.

Библиотека GyverRGB поддерживает работу с RGB-диодами, одновременно подключенными к плате Arduino. В нее встроена матрица коррекции LUT, позволяющая изменять цветовую гамму при минимальном сигнале ШИМ. В библиотеке содержится свыше 1530 значений для инструмента ColorWheel.

LED-диод
LED-диоды.
Если после настройки основных параметров программной среды светодиод не загорелся, то нужно проверить наличие драйверов для платы Arduino на компьютере.

Для этого нужно выполнить следующий алгоритм действий:

  1. Зайти в диспетчер устройств и найти графу с наименование микроконтроллера Ардуино.
  2. Нажать на вкладку “Сведения”.
  3. Из открывшегося списка выбрать графу “ИД-оборудования”.
  4. Скопировать идентификационный номер устройства, находящийся в текстовом поле.

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
#define RED 11
#define GREEN 12
#define BLUE 13
 
void setup()
{
    pinMode(RED, OUTPUT);
    pinMode(GREEN, OUTPUT);
    pinMode(BLUE, OUTPUT);
}
 
void loop()
{
    digitalWrite(RED, LOW);
    digitalWrite(GREEN, LOW);
    digitalWrite(BLUE, HIGH);
 
    delay(1000);
}

В данном скетче номера портов 11, 12 и 13 заменяются на названия пинов RGB-светодиода при помощи директивы “define”. Это упрощает процесс определения цветовой гаммы для каждого диода. С помощью кода void loop () и void setup () создается цикл поочередного включения указанных оттенков на RGB LED.

RGB матрица
RGB LED матрица.

Особенности плавного управления

Порты 9, 10 и 11 позволяют изменять интенсивность ШИМ-сигналов, что позволяет регулировать напряжение и цветовую температуру LED-диодов. Цвета радуги в данном случае меняются плавно.

Для управления RGB-лентой в плавном режиме требуется написать следующий программный код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
const byte rgbPins[3] = {3,5,6};
 
int dim = 1;
 
void setup(){
    for(byte i=0; i<3; i++){
        pinMode( rgbPins[i], OUTPUT );
    }
 
    analogWrite(rgbPins[0], 255);
    analogWrite(rgbPins[1], 0);
    analogWrite(rgbPins[2], 0);
}
 
void loop diode.setHEX(RED); delay(1000); diode.setHEX(YELLOW);
 
void loop() {
 
    for(int i=255; i>=0; i--){
        analogWrite( rgbPins[0], i/dim );
        analogWrite( rgbPins[1], (255-i)/dim );
 
        delay(10);
    }
 
    for(int i=255; i>=0; i--){
        analogWrite( rgbPins[1], i/dim );
        analogWrite( rgbPins[2], (255-i)/dim );
 
        delay(10);
    }
 
    for(int i=255; i>=0; i--){
        analogWrite( rgbPins[2], i/dim );
        analogWrite( rgbPins[0], (255-i)/dim );
 
        delay(10);
    }
 
void setFadeColor(int cPin1,int cPin2,int cPin3){
    for(int i=0;i<=255;i++){   
        analogWrite(cPin1, i);    
        analogWrite(cPin2, 255-i);
        analogWrite(cPin3, 255);
 
        delay(20);
    }
}

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

С помощью программного кода можно смешивать только 3 основных цвета: зеленый, красный и синий. Они соответствуют рецепторам человеческого глаза. При помощи изменения цифровых значений в скетче можно настроить цветовой оттенок. После загрузки программного кода микроконтроллер Arduino изменить яркость светодиодов. Для получения белого окраса требуется настроить одинаковую яркость всех LED-устройств.

Ссылка на основную публикацию