Подключение RGB-светодиода к Arduino
Трёхцветный светодиод
RGB-светодиод к Arduino Uno и Nano подключают к выводам с ШИМ, например D9, D10 и D11. Яркость цвета задаётся analogWrite(pin, 0–255).
Схема подключения RGB-светодиода к Arduino
| RGB-светодиод | Arduino Uno |
|---|---|
| B | D11 |
| COM | GND |
| G | D10 |
| R | D9 |
Схема из примера «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
- ШИМ на Uno есть только на D3, D5, D6, D9, D10, D11 (на плате отмечены значком ~).
- Красный кристалл падает меньше (около 2 В), чем зелёный и синий (3 В и больше), поэтому для одинакового тока красному нужен резистор побольше.
В железе
Резистор нужен на каждый цвет отдельно — у кристаллов разное падение. Посчитайте их калькулятором резистора для светодиода: для красного номинал больше, чем для зелёного и синего.
Частые ошибки при подключении к Arduino
- Подключить цвета к выводам без ШИМ (D4, D7, D8):
analogWriteтам просто включает или выключает цвет. - Использовать D9 и D10 вместе с
Servo.h: библиотека занимает Timer1 и отключает ШИМ на этих выводах. - Один резистор на общем выводе — цвета мешают друг другу: красный с меньшим падением забирает ток, и смешение не работает.
- Светодиод с общим анодом, а код для общего катода — цвета инвертированы, «выключенный» горит белым.
- Белый получается голубоватым или розоватым — яркость кристаллов разная, подбирайте коэффициенты для каждого цвета.
- Выводы без ШИМ на Arduino Uno —
analogWriteработает только на 3, 5, 6, 9, 10, 11.
Ещё по теме
- плата Подключение RGB-светодиода к ESP32
- деталь RGB-светодиод: подключение к ESP32 и Arduino
- калькулятор Резистор для светодиода
Другие детали для Arduino
HC-SR04DHT22 (AM2302)BME280DS3231SSD1306 OLED 0,96″LCD 1602 с I2CMAX7219TM1637Модуль релеKY-040Клавиатура 4×4HX711ФоторезисторМодуль microSDСервопривод SG9074HC595Шаговый двигательКнопкаПотенциометрПьезопищалкаСветодиодПолзунковый переключательHC-SR501TTP223Датчик влажности почвыMQ-2LM35Джойстик KY-023DHT11HTU21D