Подключение RGB-светодиода к ESP32
Трёхцветный светодиод
RGB-светодиод к ESP32 — три вывода цвета, каждый через резистор, и общий вывод. Яркость каждого цвета задаётся ШИМ.
Схема подключения RGB-светодиода к ESP32
| RGB-светодиод | ESP32 |
|---|---|
| B | GPIO27 |
| COM | GND |
| G | GPIO26 |
| R | GPIO25 |
Схема из примера «RGB: перебор цветов».
Выводы RGB-светодиод
| Вывод | Назначение |
|---|---|
| B | синий |
| COM | общий: катод (на GND) или анод (на питание) |
| G | зелёный |
| R | красный |
Код для ESP32
const int R = 25, G = 26, B = 27;
void setColor(int r, int g, int b) {
ledcWrite(0, r);
ledcWrite(1, g);
ledcWrite(2, b);
}
void setup() {
ledcSetup(0, 5000, 8); ledcAttachPin(R, 0);
ledcSetup(1, 5000, 8); ledcAttachPin(G, 1);
ledcSetup(2, 5000, 8); ledcAttachPin(B, 2);
}
void loop() {
setColor(255, 0, 0); delay(600);
setColor(0, 255, 0); delay(600);
setColor(0, 0, 255); delay(600);
setColor(255, 255, 0); delay(600);
setColor(0, 255, 255); delay(600);
setColor(255, 0, 255); delay(600);
}
Скетч можно править и запускать в симуляторе без платы и установки среды.
Что учесть на ESP32
- ШИМ (LEDC) на ESP32 доступен на любом выводе: назначают канал и частоту, для светодиода хватает 5 кГц.
- Общий катод идёт на землю; общий анод на 3V3, тогда цвет включается низким уровнем и значения яркости инвертируют.
В железе
Резистор нужен на каждый цвет отдельно — у кристаллов разное падение. Посчитайте их калькулятором резистора для светодиода: для красного номинал больше, чем для зелёного и синего.
Частые ошибки при подключении к ESP32
- Один резистор на общий вывод вместо трёх: цвета влияют на яркость друг друга.
- Перепутать общий катод и общий анод: цвета инвертированы, ноль даёт максимум.
- Один резистор на общем выводе — цвета мешают друг другу: красный с меньшим падением забирает ток, и смешение не работает.
- Светодиод с общим анодом, а код для общего катода — цвета инвертированы, «выключенный» горит белым.
- Белый получается голубоватым или розоватым — яркость кристаллов разная, подбирайте коэффициенты для каждого цвета.
Ещё по теме
- плата Подключение RGB-светодиода к Arduino
- деталь RGB-светодиод: подключение к ESP32 и Arduino
- калькулятор Резистор для светодиода
Другие детали для ESP32
HC-SR04DHT22 (AM2302)BME280DS3231SSD1306 OLED 0,96″LCD 1602 с I2CMAX7219TM1637MPU6050 (GY-521)Модуль релеWS2812B (NeoPixel)KY-040Клавиатура 4×4HX711ФоторезисторМодуль microSDСервопривод SG9074HC595ИК-приёмник (VS1838B)TFT ST7735 1,8″Шаговый двигательКнопкаПотенциометрПьезопищалкаСветодиодDS18B20Ползунковый переключательHC-SR501TTP223Датчик влажности почвыMQ-2LM35Джойстик KY-023DHT11HTU21DSN65HVD230