RGB светодиод фактически представляет собой три светодиода разных цветов
(RGB - Red, Green, Blue - красный, зелёный, синий), объединённые в одном
корпусе. При этом имеется возможность одновременно управлять интенсивностью
каждого цвета независимо друг от друга и получать свечение любого оттенка.
Вот так выглядит RGB светодиод c выводами и диаметром линзы 5 мм:
void setup(){ pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); } void loop(){ digitalWrite(11, 1); // зажигаем красный светодиод; КРАСНЫЙ delay(3000); digitalWrite(9, 1); // зажигаем зеленый светодиод; ЖЁЛТЫЙ delay(3000); digitalWrite(11, 0); // гасим красный светодиод; ЗЕЛЕНЫЙ delay(3000); digitalWrite(10, 1); // зажигаем синий светодиод; ГОЛУБОЙ delay(3000); digitalWrite(9, 0); // гасим зеленый светодиод; СИНИЙ delay(3000); digitalWrite(11, 1); // зажигаем красный светодиод; ФИОЛЕТОВЫЙ delay(3000); digitalWrite(9, 1); // зажигаем зеленый светодиод; БЕЛЫЙ delay(3000); digitalWrite(9, 0); // гасим зеленый светодиод; digitalWrite(10, 0); // гасим синий светодиод; digitalWrite(11, 0); // гасим красный светодиод; delay(3000); }Результатом работы программы будет последовательное переключение цветов:
analogWrite(9, 90); // зажигаем зеленый светодиод на 35%;Полносью программа будет выглядеть так:
void setup(){ pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); } void loop(){ digitalWrite(11, 1); // зажигаем красный светодиод; КРАСНЫЙ delay(3000); analogWrite(9, 90); // зажигаем зеленый светодиод на 35%; ОРАНЖЕВЫЙ delay(3000); digitalWrite(9, 1); // зажигаем зеленый светодиод; ЖЁЛТЫЙ delay(3000); digitalWrite(11, 0); // гасим красный светодиод; ЗЕЛЕНЫЙ delay(3000); digitalWrite(10, 1); // зажигаем синий светодиод; ГОЛУБОЙ delay(3000); digitalWrite(9, 0); // гасим зеленый светодиод; СИНИЙ delay(3000); digitalWrite(11, 1); // зажигаем красный светодиод; ФИОЛЕТОВЫЙ delay(3000); digitalWrite(9, 1); // зажигаем зеленый светодиод; БЕЛЫЙ delay(3000); digitalWrite(9, 0); // гасим зеленый светодиод; digitalWrite(10, 0); // гасим синий светодиод; digitalWrite(11, 0); // гасим красный светодиод; delay(3000); }Итак, мы получили все цвета радуги и еще белый цвет. Все цвета переключаются в нужном порядке и каждый цвет можно наблюдать в течении 3 секунд. Кстати, запомнить основные цвета радуги можно с помощью простой фразы:
int r; // вводим переменную r типа int void setup(){ pinMode(9, OUTPUT); // назначаем вывод 9 выходом pinMode(10, OUTPUT); // назначаем вывод 10 выходом pinMode(11, OUTPUT); // назначаем вывод 11 выходом for(r=0; r<=255; r++){ // изначально у нас RGB-светодиод выключен, analogWrite(11, r); // поэтому просто плавно зажигаем красный светодиод delay(10);} // меняя значение ШИМ от 0 до 255, с паузой в 10 мс. } // этот цикл выполнятеся только один раз. void loop(){ for(r=0; r<=255; r++){ // плавно зажигаем зеленый светодиод analogWrite(9, r); delay(10);} for(r=255; r>=0; r--){ // плавно гасим красный светодиод analogWrite(11, r); delay(10);} for(r=0; r<=255; r++){ // плавно зажигаем синий светодиод analogWrite(10, r); delay(10);} for(r=255; r>=0; r--){ // плавно гасим зеленый светодиод analogWrite(9, r); delay(10);} for(r=0; r<=255; r++){ // плавно зажигаем красный светодиод analogWrite(11, r); delay(10);} for(r=255; r>=0; r--){ // плавно гасим синий светодиод analogWrite(10, r); delay(10);} }