В работе с Arduino очень удобно использовать многоцветные светодиоды
Глаз человека имеет три типа световых рецепторов (красный, зелёный и синий). Поэтому мозг обрабатывают сумму красного, зелёного и синего и преобразуют его в определённый цвет.
Отсюда любой цвет — это варьирование количества красного, зелёного и синего цвета. Так, с помощью трёх светодиодов мы можно показать глазу определённый цвет. Эта же идея используется в телевизорах, где ЖК-«пиксель» состоит из красного, зелёного и синего цвета точек рядом друг с другом. Если мы устанавливаем яркость всех трёх светодиодов одинаковую и максимальную, то общий цвет будет белый.
Если вы когда-либо интересовались веб-программированием, то, вероятно, помните, что цвета часто представляются как hex-код. Например, красный цвет имеет номер #FF0000.
Шесть цифр номера на самом деле три пары чисел: первая пара — красный компонент, следующие две цифры – зелёный и синий. Красный — #FF0000, потому что максимальное значение красного (FF — это 255 в шестнадцатеричном виде) и в нем нет ни зелёного, ни синего.
Можно сделать цвет Индиго (#4B0082). Красный, зелёный и синий в Индиго — 4B, 00 и 82 соответственно.
Подключение трехцветного светодиода
Трехцветный светодиод (rgb led) — это три светодиода разных цветов в одном корпусе. Они бывают как с небольшой печатной платой, на которой расположены резисторы, так и без встроенных резисторов. 
При работе с трехцветным светодиодом без встроенных резисторов необходимо иметь ввиду, что назначение ножки светодиода можно определить по ее длине.
Самая длинная — земля (GND),
короче — зеленый (G),
еще короче — голубой (B),
а самая короткая — красный (R).
Схема подключения модели Arduino с трехцветным светодиодом
Каждый светодиод внутри пакета требует собственного резистора сопротивлением 270 Ом для предотвращения слишком большого тока, протекающего через него.
//объявляем переменные с номерами пинов int r = 9; int g = 10; int b = 11; void setup() { //объявляем используемые порты pinMode(r, OUTPUT); pinMode(g, OUTPUT); pinMode(b, OUTPUT); } void loop() //процедура loop { digitalWrite(r, HIGH); //включаем красный delay(500); //ждем 500 Мс digitalWrite(r, LOW); //выключаем красный digitalWrite(g, HIGH); //включаем зеленый delay(500); //ждем 500 Мс digitalWrite(g, LOW); //выключаем зеленый digitalWrite(b, HIGH); //включаем синий delay(500); //ждем 500 Мс digitalWrite(b, LOW); //выключаем синий }
Приводимый скетч по очереди включает все основные цвета трехцветного светодиода.
По материалам курса робототехники