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);}
}