Самые простые светодиоды светятся одним цветом: красным, желтым, зеленым и синим. Бывают многоцветные светодиоды, способные светиться разными цветами на выбор в зависимости от того, на какой контакт подан электрический сигнал. Есть светодиоды в виде модулей. Бывают и RGB-модули, поддерживающие до 16 миллионов цветов.
Одиночные RGB-светодиоды или модули с одним диодом (например, с общим катодом или анодом) — это отличный вариант для небольших, но интересных и полезных Arduino-проектов. Подключение и программирование таких светодиодов достаточно простое, что делает их подходящими даже для начинающих.
RGB-светодиоды работают через три цвета: красный, зелёный и синий. Каждый из цветов управляется отдельно.
Для подключения вам понадобятся:
- Три вывода для управления R, G, B на Arduino.
- Резисторы (обычно 220 Ом или 330 Ом) для ограничения тока через каждый канал.
- При использовании общего катода — общая "земля" (GND), при использовании общего анода — общий "плюс" (Vcc).
Пример стандартного подключения:
- Подключите выводы R, G и B светодиода к Arduino через резисторы (например, к пинам 9, 10 и 11).
- Общий контакт светодиода (катод или анод) подключается к GND/Vcc соответственно.
const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
// РАЗНЫЕ ЦВЕТА
// Красный
setColor(255, 0, 0); // Максимальная интенсивность красного
delay(1000);
// Зелёный
setColor(0, 255, 0);
delay(1000);
// Синий
setColor(0, 0, 255);
delay(1000);
// Оранжевый (смешение красного и зелёного)
setColor(255, 128, 0);
delay(1000);
// Белый (все цвета в равных долях)
setColor(255, 255, 255);
delay(1000);
// Плавное выключение
for (int i = 255; i >= 0; i--) {
setColor(i, i, i); // Уменьшение всех каналов
delay(10);
}
}
// Функция для установки цвета через PWM
void setColor(int red, int green, int blue) {
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
Проекты с одиночным RGB-светодиодом:
- Индикатор состояния устройства (зелёный - всё работает нормально, жёлтый - предупреждение, красный - ошибка/перегрев)
- Подключите датчик температуры (например, DS18B20), и светодиод будет указывать, если температура превышает заданное значение.
- Цветовой индикатор уровня (например, заряда батареи): RGB поможет визуально отслеживать изменяющийся уровень чего-либо. Пример: заряда батареи, значения датчика влажности или силы сигнала.
- Детектор настроения (или освещение настроения): используйте датчик (например, фотоэлемент или потенциометр) для управления цветом светодиода.
- Вы можете подключить потенциометр, поворот которого изменяет цвет светодиода. Или добавьте фотоэлемент, чтобы RGB менял цвет в зависимости от освещения.
- Реактивный светодиод: добавьте датчик движения (например, HC-SR501). Когда кто-то проходит мимо, RGB-светодиод переключается на "включённый" режим и плавно меняет цвета.
- Таймер или секундомер: светодиод может изменять оттенки в зависимости от прошедшего времени (красный цвет — "истёк лимит времени", зеленый — "достаточно времени осталось").
- Ночник с изменением цвета: RGB-светодиод может плавно переливаться разными цветами, создавая атмосферный ночник.
- Куб с подсветкой: создайте небольшой светящийся кубик (или другой корпус) с эффектами цвета (используйте прозрачный/матовый пластик, разместите RGB внутри, чтобы он светился разными цветами).
Особенности работы с RGB:
- Никогда не забывайте резисторы. Без них светодиоды могут перегореть.
- Если вы хотите управлять несколькими RGB, подумайте об использовании транзисторов (для увеличения мощности) или адресуемых светодиодов (например, WS2811).
- Если создаете сложные анимации, удобнее реализовать управление через специальный вспомогательный модуль или библиотеку.