Подключение RGB-светодиода к Arduino

Трёхцветный светодиод

RGB-светодиод к Arduino Uno и Nano подключают к выводам с ШИМ, например D9, D10 и D11. Яркость цвета задаётся analogWrite(pin, 0–255).

Схема подключения RGB-светодиода к Arduino

RGB-светодиодArduino Uno
BD11
COMGND
GD10
RD9

Схема из примера «Arduino Uno: RGB-светодиод и три канала ШИМ».

Arduino Uno: RGB-светодиод и три канала ШИМ

Открыть пример целиком

Выводы RGB-светодиод

ВыводНазначение
Bсиний
COMобщий: катод (на GND) или анод (на питание)
Gзелёный
Rкрасный

Код для Arduino

// Плавный перебор цветов на трёх выводах с ШИМ.
//
// Выводы выбраны не случайно: 9, 10 и 11 — из шести, у которых на Uno
// есть аппаратный ШИМ. Всего их 3, 5, 6, 9, 10 и 11, и один
// RGB-светодиод забирает половину.
//
// Сборка с общим катодом: 255 — канал в полную силу. У сборки с общим
// анодом всё наоборот, и подключать её надо к питанию, а числа
// вычитать из 255.

const int RED = 9;
const int GREEN = 10;
const int BLUE = 11;

void setColor(int r, int g, int b) {
  analogWrite(RED, r);
  analogWrite(GREEN, g);
  analogWrite(BLUE, b);
}

void setup() {
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
}

void loop() {
  // Круг по цветовому колесу: один канал растёт, другой падает,
  // третий выключен.
  for (int i = 0; i <= 255; i += 5) { setColor(255 - i, i, 0); delay(15); }
  for (int i = 0; i <= 255; i += 5) { setColor(0, 255 - i, i); delay(15); }
  for (int i = 0; i <= 255; i += 5) { setColor(i, 0, 255 - i); delay(15); }
}

Скетч можно править и запускать в симуляторе без платы и установки среды.

Что учесть на Arduino

В железе

Резистор нужен на каждый цвет отдельно — у кристаллов разное падение. Посчитайте их калькулятором резистора для светодиода: для красного номинал больше, чем для зелёного и синего.

Частые ошибки при подключении к Arduino

Другие детали для Arduino