На предыдущем уроке мы уже попробовали зажигать и гасить с помощью Ардуино обычный светодиод. Теперь же разберемся с многоцветным светодиодом, который часто называют сокращенно: RGB-светодиод.
RGB — это аббревиатура, которая расшифровывается как: Red — красный, Green — зеленый, Blue — синий. То есть внутри этого устройства размещается сразу три отдельных светодиода. В зависимости от типа, RGB-светодиод может иметь общий катод или общий анод.
Источник: https://robotclass.ru/tutorials/arduino-rgb-led/
Содержание
Устройство и назначение RGB светодиода
Для отображения всей палитры оттенков вполне достаточно три цвета, используя RGB синтез (Red — красный, Green — зеленый, Blue — синий). RGB палитра используется не только в графических редакторах, но и в сайтостроении. Смешивая цвета в разной пропорции можно получить практически любой цвет. Преимущества RGB светодиодов в простоте конструкции, небольших габаритах и высоком КПД светоотдачи.
RGB светодиоды объединяют три кристалла разных цветов в одном корпусе. RGB LED имеет 4 вывода — один общий (анод или катод имеет самый длинный вывод) и три цветовых вывода. К каждому цветовому выходу следует подключать резистор. Кроме того, модуль RGB LED Arduino может сразу монтироваться на плате и иметь встроенные резисторы — этот вариант более удобный для занятий в кружке робототехники.
Фото. Распиновка RGB светодиода и модуль с RGB светодиодом для Ардуино
Распиновка RGB светодиода указана на фото выше. Заметим также, что для многих полноцветных (трехцветных) светодиодов необходимы светорассеиватели, иначе будут видны составляющие цвета. Далее подключим трехцветный светодиод к Ардуино и заставим его сначала мигать разными цветами, а затем плавно переливаться разными цветами с помощью «широтно импульсной модуляции».
Источник: https://xn--18-6kcdusowgbt1a4b.xn--p1ai/rgb-%D1%81%D0%B2%D0%B5%D1%82%D0%BE%D0%B4%D0%B8%D0%BE%D0%B4-%D0%B0%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%BE/
Смешение цветов
Чем RGB-светодиод, лучше трех обычных? Всё дело в свойстве нашего зрения смешивать свет от разных источников, размещенных близко друг к другу. Например, если мы поставим рядом синий и красный светодиоды, то на расстоянии несколько метров их свечение сольется, и глаз увидит одну фиолетовую точку. А если добавим еще и зеленый, то точка покажется нам белой. Именно так работают мониторы компьютеров, телевизоры и уличные экраны.
Матрица телевизора состоит из отдельно стоящих точек разных цветов. Если взять лупу и посмотреть через нее на включенный монитор, то эти точки можно легко увидеть. А вот на уличном экране точки размещаются не очень плотно, так что их можно различить невооруженным глазом. Но с расстояния несколько десятков метров эти точки неразличимы.
Получается, что чем плотнее друг к другу стоят разноцветные точки, тем меньшее расстояние требуется глазу чтобы смешивать эти цвета. Отсюда вывод: в отличие от трех отдельностоящих светодиодов, смешение цветов RGB-светодиода заметно уже на расстоянии 30-70 см. Кстати, еще лучше себя показывает RGB-светодиод с матовой линзой.
Изменено:
Источник: https://robotclass.ru/tutorials/arduino-rgb-led/
Переходим к шагу 1
После каждого шага делаем паузу для фиксации показа цвета,
delay(VIEW_PAUSE);
проверяем значение потенциометра и изменяем значение скорости изменения цвета.
void setpause() { pause=map(analogRead(POT),0,1024,MIN_PAUSE,MAX_PAUSE); Serial.print("pause=");Serial.println(pause); }
Создадим в Arduino IDE новый скетч, занесем в него код из листинга 1 и загрузим скетч на на плату Arduino. Напоминаем, что в настройках Arduino IDE необходимо выбрать тип платы (Arduino UNO) и порт подключения платы.
Листинг 1
const int RED=11; // вывод R RGB-светодиода const int GREEN=10; // вывод G RGB-светодиода const int BLUE=9; // вывод B RGB-светодиода int red; // переменная для хранения R-составляющей цвета int green; // переменная для хранения G-составляющей цвета int blue; // переменная для хранения B-составляющей цвета const int POT=A0; // вывод подключения потенциометра const int MIN_PAUSE=10; // минимальная задержка смены цвета, мс const int MAX_PAUSE=100; // максимальная задержка смены цвета, мс int pause; // переменная для хранения текущей задержки const int VIEW_PAUSE=2000; // время фиксации основного цвета, мс void setup() { Serial.begin(9600); } void loop() { // от красного к желтому Serial.println("red - yellow"); red=255;green=0;blue=0; for(green=0;green<=255;green++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от желтому к зеленому Serial.println("yellow - green"); red=255;green=255;blue=0; for(red=255;red>=0;red--) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от зеленого к голубому Serial.println("green - blue"); red=0;green=255;blue=0; for(blue=0;blue<=255;blue++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от голубого к синему Serial.println("blue - blue"); red=0;green=255;blue=255; for(green=255;green>=0;green--) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от синего к фиолетовому Serial.println("blue - purple"); red=0;green=0;blue=255; for(red=0;red<=255;red++) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); // от фиолетового к красному Serial.println("purple - red"); red=255;green=0;blue=255; for(blue=0;blue>=0;blue--) setRGB(red,green,blue); setpause(); delay(VIEW_PAUSE); } // функция установки цвета RGB-светодиода void setRGB(int r,int g,int b) { analogWrite(RED,r); analogWrite(GREEN,g); analogWrite(BLUE,b); delay(pause); } // функция установки текущей задержки void setpause() { pause=map(analogRead(POT),0,1024,MIN_PAUSE,MAX_PAUSE); Serial.print("pause=");Serial.println(pause); }
После загрузки скетча наблюдаем изменение цвета RGB-светодиода цветами радуги, потенциометром меняем скорость смены цвета (см. рисунок 2,3).
Рисунок 2,3. RGB-светодиод – всеми цветами радуги
Источник: https://playarduino.ru/uroki-arduino/rgb-svetodiod-s-arduino-perelivatsya-vsemi-tsvetami-radugi/
2 Подключение RGB светодиода с общим анодомк Arduino
Схема подключения RGB светодиода с общим анодом показана на рисунке. Анод подключаем к «+5 В» на плате Arduino, три другие вывода – к произвольным цифровым пинам.
Схема подключения RGB светодиода с общим анодом к Arduino
Обратите внимание, что мы подключаем каждый из светодиодов через свой резистор, а не используем один общий. Желательно делать именно так, потому что каждый из светодиодов имеет свой КПД. И если подключить их все через один резистор, светодиоды будут светиться с разной яркостью.
Для быстрого расчёта номинала резистора, подходящего к выбранному вами светодиоду, можно воспользоваться онлайн-калькулятором расчёта светодиодов.
Источник: https://soltau.ru/index.php/arduino/item/347-kak-podklyuchit-rgb-svetodiod-k-arduino
3Управление RGB светодиодами с помощью Arduino
Перепишем классический скетч blink. Будем включать и отключать по очереди каждый из трёх цветов. Обратите внимание, что светодиод загорается, когда мы подаём низкий уровень (LOW) на соответствующий вывод Arduino.
// задаём номера выводов: const int pinR = 12; const int pinG = 10; const int pinB = 9; void setup() { // задаём назначение выводов: pinMode(pinR, OUTPUT); pinMode(pinG, OUTPUT); pinMode(pinB, OUTPUT); } void loop() { digitalWrite(pinR, LOW); //зажигаем канал Red delay(100); digitalWrite(pinR, HIGH); //выключаем Red delay(200); digitalWrite(pinG, LOW); //зажигаем канал Green delay(100); digitalWrite(pinG, HIGH); //выключаем Green delay(200); digitalWrite(pinB, LOW); //зажигаем канал Blue delay(100); digitalWrite(pinB, HIGH); //выключаем Blue delay(200); }
Источник: https://soltau.ru/index.php/arduino/item/347-kak-podklyuchit-rgb-svetodiod-k-arduino
4 Собрать схемуна макетной плате
Посмотрим в действии на мигание RGB светодиодом. Светодиод по очереди зажигается красным, зелёным и синим цветами. Каждый цвет горит 0,1 секунду, а затем гаснет на 0,2 секунды, и включается следующий. Можно зажигать каждый канал отдельно, можно все одновременно, тогда цвет свечения будет меняться.
RGB светодиод подключён к Arduino. Схема собрана на макетной плате
Источник: https://soltau.ru/index.php/arduino/item/347-kak-podklyuchit-rgb-svetodiod-k-arduino
5Подключение RGB светодиода с общим катодомк Arduino
Если вы используете RGB светодиод с общим катодом, то подключите длинный вывод светодиода к GND платы Arduino, а каналы R, G и B – к цифровым портам Arduino. При этом нужно помнить, что светодиоды загораются при подаче на каналы R, G, B высокого уровня (HIGH), в отличие от светодиода с общим анодом.
Схема подключения RGB светодиода с общим катодом к Arduino
Если не менять вышеприведённый скетч, то каждый цвет светодиода в этом случае будет гореть 0,2 секунды, а пауза между ними составит 0,1 секунду.
Полезный совет
Если вы хотите управлять яркостью светодиода, то подключайте RGB светодиод к цифровым выводам Arduino, которые имеют функцию ШИМ (PWM). Такие выводы на плате Arduino обычно помечены знаком тильда (волнистая линия), звёздочкой или обведены кружочками.
Источник: https://soltau.ru/index.php/arduino/item/347-kak-podklyuchit-rgb-svetodiod-k-arduino
Количество использованных доноров: 5
Информация по каждому донору:
- https://xn--18-6kcdusowgbt1a4b.xn--p1ai/rgb-%D1%81%D0%B2%D0%B5%D1%82%D0%BE%D0%B4%D0%B8%D0%BE%D0%B4-%D0%B0%D1%80%D0%B4%D1%83%D0%B8%D0%BD%D0%BE/: использовано 1 блоков из 4, кол-во символов 1260 (11%)
- https://soltau.ru/index.php/arduino/item/347-kak-podklyuchit-rgb-svetodiod-k-arduino: использовано 5 блоков из 6, кол-во символов 3505 (31%)
- https://playarduino.ru/uroki-arduino/rgb-svetodiod-s-arduino-perelivatsya-vsemi-tsvetami-radugi/: использовано 1 блоков из 2, кол-во символов 2833 (25%)
- https://portal-pk.ru/news/1-urok-1—miganie-vstroennym-na-platu-arduino-svetodiodom.html: использовано 1 блоков из 2, кол-во символов 1939 (17%)
- https://robotclass.ru/tutorials/arduino-rgb-led/: использовано 2 блоков из 2, кол-во символов 1590 (14%)