Урок 2 Начинающий 40 минут

RGB светодиоды

Научитесь управлять цветом и создавать световые эффекты с помощью RGB светодиодов.

1

Подготовка оборудования

Компоненты для урока

ESP32 DevKit

Любая версия (30/38 пинов)

🌈

RGB светодиод

Общий катод (Common Cathode)

⚙️

Резисторы 220Ω

3 штуки (по одному на канал)

🔌

Провода

Male-to-Male, 6 штук

2

Как работает RGB светодиод

Устройство RGB светодиода

Строение RGB светодиода

RGB светодиод содержит три кристалла (красный, зелёный, синий) в одном корпусе. 4 вывода: общий катод + 3 анода для каждого цвета.

Longest

GND (Cathode)

Pin R

Red Anode

Pin G

Green Anode

Pin B

Blue Anode

Аддитивное смешение цветов

Принцип смешения цветов RGB

R (255, 0, 0)

Красный

G (0, 255, 0)

Зелёный

B (0, 0, 255)

Синий

R+G (255, 255, 0)

Жёлтый

G+B (0, 255, 255)

Циан

B+R (255, 0, 255)

Пурпурный

3

Схема подключения

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

GPIO 18 Через резистор 220Ω → анод Red

2

GPIO 19 Через резистор 220Ω → анод Green

3

GPIO 21 Через резистор 220Ω → анод Blue

4

GND Общий катод RGB (самый длинный вывод) → GND

💡 Почему без транзисторов?

Для обычных 5мм RGB светодиодов достаточно резисторов 220Ω. Каждый канал потребляет ~20mA, что безопасно для GPIO ESP32. Транзисторы нужны только для мощных RGB светодиодов или LED-лент.

4

Программирование

RGB_Simple.ino
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const int redPin = 18;
const int greenPin = 19;
const int bluePin = 21;
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);
}
void setColor(int r, int g, int b) {
  analogWrite(redPin, r);
  analogWrite(greenPin, g);
  analogWrite(bluePin, b);
}

Код в Arduino IDE

Код программы в Arduino IDE

Эффект радуги

Плавный переход цветов радуги
4.1

PWM сигналы

График PWM сигналов для каждого канала
📊

PWM частота

ESP32 генерирует PWM сигналы на GPIO 18, 19, 21. Частота определяет стабильность света.

🎨

Duty Cycle

Duty Cycle 0-100% определяет яркость каждого канала. 255 уровней = 8 бит.

🌈

Смешение

Одновременная работа 3 каналов создаёт миллионы оттенков (256³ = 16.7 млн).

4.2

Визуализация работы

Управление RGB светодиодом в реальном времени

GPIO пины

18, 19, 21

Текущий цвет

Purple

RGB значение

(255, 128, 255)

PWM частота

50 Гц

5

Возможные проблемы

Светодиод не светится

Проверьте полярность: у RGB светодиода с общим катодом самый длинный вывод — это GND. Убедитесь, что все провода правильно подключены. Проверьте, что ESP32 подаёт питание.

Светодиод тускло светит

Проверьте номиналы резисторов — должны быть 220Ω. Если резисторы слишком большие (например, 10kΩ), светодиод будет светить тускло. Также проверьте надёжность контактов в макетной плате.

Неправильные цвета (не те оттенки)

Перепутаны каналы R/G/B местами. Проверьте подключение: GPIO 18 → Red, GPIO 19 → Green, GPIO 21 → Blue. Или поменяйте значения в функции setColor().

Светодиод горит только одним цветом

Проверьте подключение всех трёх каналов. Возможно, один из проводов отвалился или неправильно вставлен в макетную плату. Убедитесь, что каждый канал подключён через свой резистор 220Ω.

Мерцание или стробоскопический эффект

Плохой контакт в макетной плате — проверьте все соединения. Недостаточная частота PWM — увеличьте частоту в настройках PWM. Добавьте конденсатор 100мкФ параллельно питанию.

6

Цех Испытаний

Отточите мастерство управления RGB цветами. Каждая задача — шаг к созданию световых шоу.

Время прохождения
~115 минут суммарно
🔴
Уровень: Start 10m

Основные цвета

Поочерёдное включение R/G/B

Миссия

Поочерёдно включайте красный, зелёный, синий цвета на 1 секунду. Используйте функцию setColor(r, g, b) с значениями 255 для одного канала и 0 для остальных.

01
🎨
Уровень: Easy 15m

Смешение цветов

Создание жёлтого, циана, пурпурного

Миссия

Создайте жёлтый (R+G), циан (G+B), пурпурный (B+R) цвета через смешение каналов. Выводите каждый цвет на 1.5 секунды.

02
💓
Уровень: Normal 20m

Плавное дыхание

Плавное изменение яркости одного цвета

Миссия

Реализуйте плавное изменение яркости красного канала от 0 до 255 и обратно. Используйте цикл for с задержкой delay(5-10мс) между шагами.

03
🌈
Уровень: Hard 30m

Цветная радуга

Плавный переход через все цвета радуги

Миссия

Реализуйте бесконечный цикл плавного перехода через все цвета радуги. Счётчик i от 0 до 255 в цикле for с delay(10мс). Красный канал: sin(i × 0.0245) × 127 + 128, зелёный: сдвиг +85, синий: сдвиг +170. Результат: плавная смена цветов без скачков, один полный оборот — около 2.5 секунд.

04
🎵
Уровень: Expert 40m

Светомузыка

Реагирование на звук с микрофона

Миссия

Подключите аналоговый микрофон KY-037 к GPIO 34. Считывайте уровень звука 10 раз подряд и вычисляйте среднее (для стабильности). Если среднее < 1000 — синий цвет, 1000–2500 — зелёный, > 2500 — красный. Результат: светодиод меняет цвет в зависимости от тишины / разговора / хлопка. Обновление — каждые 50мс.

05
🚀

Свой Проект

Создайте уникальное световое устройство: ночник, сигнализацию, декоративную подсветку... Ограничений нет!

Открыть Симулятор →

Поздравляем! 🎉

Вы освоили управление RGB светодиодами! Теперь вы можете создавать световые эффекты, декоративную подсветку, сигнализации и даже простые светомузыкальные системы.