Трёхцветный (rgb) светодиод и Arduino
RGB LED – трёхцветный светодиод, содержащий в одном корпусе красный, зелёный и синий светодиоды. По-разному сочетая эти цвета, можно воспроизвести весь спектр. А arduino нам в этом поможет…
Схема подключения трёхцветного светодиода к Arduino
Для того чтобы светодиод не перегрелся подключаем его через сопротивление (резистор). Резисторы подбираем опытным путём: светодиод должен гореть ярко, но не греться. В нашем случае используем сопротивления на 240 Ом.
Так как красный свет, как правило, у таких rgb светодиодов тускнея зелёного и синего – красный подключаем через два резистора на 240 Ом. Сопротивление в этом случае падает до 120 Ом.
Переливающейся трёхцветный светодиод
В данном примере у нас должно получится следующие: при включении ардуино светодиод загорается красным цветом, который перетекает в синий. Далее синий перетекает в зелёный. Затем зелёный – в красный. И так по кругу.
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
int r = 255;
int b = 0;
int g = 0;
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop()
{
for (int e=1; e<=765; e++) {
if(e<=255) {r--; b++;} // Красный тухнет, синий разгорается
if(e>255 && e<=510) {b--; g++;}// Синий тухнет, зелёный разгорается
if(e>510) {g--; r++;} // Зелёный тухнет, красный разгорается
analogWrite(redPin, r);
analogWrite(greenPin, g);
analogWrite(bluePin, b);
delay(5); // чем больше значение, тем меньше скорость
}
}
Цвета радуги на RGB LED
Светодиод будет мигать поочерёдно всеми цветами радуги.
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop()
{
setColor(255, 0, 0); // каждый
delay(500);
setColor(255, 128, 0); // охотник
delay(500);
setColor(255, 255, 0); // желает
delay(500);
setColor(0, 255, 0); // знать
delay(500);
setColor(0, 255, 255); // где
delay(500);
setColor(0, 0, 255); // сидит
delay(500);
setColor(255, 0, 255); // фазан
delay(500);
}
void setColor(int red, int green, int blue)
{
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}