Добавить в корзинуПозвонить
Найти в Дзене
Код и ток ⚡

RGB светодиод - меняем цвета

Это не один светодиод, а по сути три в одном. Три цветных кристалла, "упакованных" в один общий корпус . Название RGB происходит от первых букв английских названий цветов: Red (красный), Green (зеленый), Blue (синий).
Эти три цвета - основа. Смешивая их в разной пропорции, можно получить миллионы оттенков.
Именно так работает ваш монитор или экран телефона: светятся красные, зеленые и синие точки в разной пропорции для получения определенного цвета (пиксели). Общий анод или катод? Посмотрите на свой светодиод: у него 4 вывода. Один из них (обычно самый длинный) - общий. Три других - это управляющие входы красного, зеленого и синего цветов. Что значит "общий"? Обычно у светодиода с общим катодом ножка длиннее (это минус). Если у вас есть тестер (мультиметр), переведите его в режим "прозвонки диодов". Прикоснитесь щупом к предполагаемому общему выводу (напр. черным щупом), а вторым (красным) по очереди к цветным. Если светодиод загорается - общий вывод найден. Меняя полярность щупов, вы
Оглавление

Что такое RGB светодиод?

Это не один светодиод, а по сути три в одном. Три цветных кристалла, "упакованных" в один общий корпус . Название RGB происходит от первых букв английских названий цветов: Red (красный), Green (зеленый), Blue (синий).
Эти три цвета - основа. Смешивая их в разной пропорции, можно получить миллионы оттенков.
Именно так работает ваш монитор или экран телефона: светятся красные, зеленые и синие точки в разной пропорции для получения определенного цвета (пиксели).

Общий анод или катод?

Прозвонка RGB светодиода мультиметром
Прозвонка RGB светодиода мультиметром

Посмотрите на свой светодиод: у него 4 вывода. Один из них (обычно самый длинный) - общий. Три других - это управляющие входы красного, зеленого и синего цветов.

Что значит "общий"?

  • Общий катод (Common Cathode, CC): Внутри все три минуса (катоды) соединены вместе и выведены на один контакт. Общий вывод подключается к GND (земля, минус).
  • Общий анод (Common Anode, CA): Внутри все три плюса (аноды) соединены вместе и выведены на один контакт. Общий вывод подключается к 5V (питание, плюс).

Обычно у светодиода с общим катодом ножка длиннее (это минус). Если у вас есть тестер (мультиметр), переведите его в режим "прозвонки диодов". Прикоснитесь щупом к предполагаемому общему выводу (напр. черным щупом), а вторым (красным) по очереди к цветным. Если светодиод загорается - общий вывод найден. Меняя полярность щупов, вы поймете, анод это или катод.

Почему мы видим цвет, а не три точки?

Если посмотреть на светящийся RGB-диод под лупой, можно увидеть три отдельных цветных пятна. Но на расстоянии 30 см человеческий глаз уже не может различить их по отдельности. Срабатывает оптическая иллюзия — точки сливаются в один пиксель. Более того, меняя яркость каждого кристалла, мы меняем "вклад" цвета в общую картину, и мозг воспринимает это как единый оттенок.

Как менять цвет светодиода?

Изменение цвета светодиода с помощью шим-сигнала на плате ардуино-уно
Изменение цвета светодиода с помощью шим-сигнала на плате ардуино-уно

Цвет можно изменить вручную, меняя сопротивление одного из выводов светодиода, например с помощью резисторов разного номинала либо с помощью потенциометра как на видео выше.

Можно также цвет менять программно с помощью кода ардуино - шим-сигнала. Видео есть в данном канале.
Вот
код ардуино для автоматического изменения цветов с помощью шим-пинов 9, 10, 11 на плате ардуино-уно либо другой подходящей плате:

int redPin = 9;
int greenPin = 10;
int bluePin = 11;

void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}

void loop() {
for (int hue = 0; hue < 360; hue++) {
int r, g, b;
int speedDelay = 40; // стандартная задержка
if (hue < 120) {
r = 255 - hue * 255 / 120;
g = hue * 255 / 120;
b = 0;

if (hue >= 15 && hue <= 45) {
speedDelay = 40; //
}
} else if (hue < 240) {
r = 0;
g = 255 - (hue - 120) * 255 / 120;
b = (hue - 120) * 255 / 120;
} else {
r = (hue - 240) * 255 / 120;
g = 0;
b = 255 - (hue - 240) * 255 / 120;
}

analogWrite(redPin, r);
analogWrite(greenPin, g);
analogWrite(bluePin, b);
delay(speedDelay);
}
}


Спасибо за внимание, подписывайтесь на канал.