Обзор
KY-009 — это RGB-светодиодный модуль, который позволяет создавать различные цвета путём регулировки яркости красного, зелёного и синего светодиодов с помощью сигналов PWM. Модуль идеально подходит для проектов, требующих красочных визуальных эффектов.
KY-009 — это RGB-светодиодный модуль с управлением яркостью каждого канала через PWM. Он использует светодиод 5050 SMD, способный смешивать красный, зелёный и синий цвета для создания практически любого оттенка. Модуль работает от 5В и совместим с Arduino, ESP32 и Raspberry Pi.
О модуле RGB светодиода KY-009
Модуль KY-009 оснащён светодиодом 5050 SMD, способным излучать широкий спектр цветов путём смешивания красного, зелёного и синего света. Яркость каждого цвета регулируется с помощью PWM (широтно-импульсной модуляции), что позволяет создавать практически любой цвет видимого спектра. Модуль работает от напряжения 5В, с прямыми напряжениями: 1.8В для красного светодиода и 2.8В для зелёного и синего. Он совместим с микроконтроллерами, такими как Arduino, Raspberry Pi и ESP32.
Приобретите KY-009
Характеристики KY-009
Полные технические характеристики модуля RGB светодиода KY-009.
Распиновка KY-009
KY-009 — это 4-пиновый RGB-светодиодный модуль со светодиодом 5050 SMD (общий катод):
- Управление: PWM для каждого цветового канала.
- Цвета: 16.7 млн цветов через RGB-смешивание.
- Резисторы: R=180Ω (1.8В), G=100Ω (2.8В), B=100Ω (2.8В).
| № | Название | Тип | Описание | Примечания |
|---|---|---|---|---|
| 1 | Pin (-) | Питание | Общий катод (земля) | Общая земля для всех светодиодов |
| 2 | Pin (R) | PWM | Анод красного светодиода | Напряжение 1.8В, резистор 180Ω |
| 3 | Pin (G) | PWM | Анод зелёного светодиода | Напряжение 2.8В, резистор 100Ω |
| 4 | Pin (B) | PWM | Анод синего светодиода | Напряжение 2.8В, резистор 100Ω |
Подключение KY-009 к ESP32
Подключите KY-009 к ESP32, используя PWM-сигналы на три GPIO для управления красным, зелёным и синим каналами. Убедитесь, что используются ограничивающие резисторы для защиты светодиодов.
| Вывод KY-009 | Подключение | Вывод ESP32 | Описание |
|---|---|---|---|
| Pin (-) обязательно | → | GND | Общий катод (земля) |
| Pin (R) обязательно | → | GPIO18 | Красный канал (через резистор 180Ω) |
| Pin (G) обязательно | → | GPIO19 | Зелёный канал (через резистор 100Ω) |
| Pin (B) обязательно | → | GPIO21 | Синий канал (через резистор 100Ω) |
Устранение неполадок KY-009
Распространённые проблемы и решения, которые помогут запустить модуль.
Светодиод не зажигается
Светодиод не излучает свет при ожидаемом управлении
Проблема: светодиод не загорается при подаче управляющих сигналов.
Возможные причины: неправильное подключение, отсутствие或неправильные ограничивающие резисторы, неверная конфигурация PWM на GPIO.
Решение: проверьте все соединения, убедитесь в использовании резисторов (180Ω для красного, 100Ω для зелёного и синего), проверьте, что пины настроены как PWM-выходы и выдают корректные сигналы.
Некорректные цвета или несмешивание
Отображаются неожиданные цвета или каналы не смешиваются
Проблема: цвета отображаются неверно или смешивание работает некорректно.
Возможные причины: некорректные PWM-сигналы, неподходящие значения резисторов или ошибки в коде управления.
Решение: проверьте, что PWM-сигналы на всех трёх каналах задаются правильно, убедитесь в использовании рекомендованных номиналов резисторов, проверьте код на наличие логических ошибок.
Советы по отладке
Serial Monitor
Проверка логов и ошибок
Проверка напряжения
Мультиметр и целостность цепи
Дополнительные ресурсы
Примеры программирования KY-009
Готовые к использованию примеры кода для различных платформ и фреймворков
Пример для Arduino
Совместим с Arduino IDE и платами ESP32
C++
Пример для Arduino
Совместим с Arduino IDE и платами ESP32
int redPin = 9;
int greenPin = 10;
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, 255, 0); // Жёлтый
delay(1000);
setColor(0, 255, 255); // Голубой
delay(1000);
setColor(255, 0, 255); // Пурпурный
delay(1000);
setColor(255, 255, 255); // Белый
delay(1000);
}
void setColor(int red, int green, int blue) {
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
Этот Arduino-скетч управляет RGB-светодиодным модулем KY-009, используя PWM на выводах 9 (красный), 10 (зелёный) и 11 (синий). Функция setColor() задаёт яркость каждого канала. В loop() последовательно выводятся основные цвета с задержкой в 1 секунду.
Пример для ESP-IDF
Официальный фреймворк Espressif для разработки IoT
C++
Пример для ESP-IDF
Официальный фреймворк Espressif для разработки IoT
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/ledc.h"
#define RED_PIN GPIO_NUM_18
#define GREEN_PIN GPIO_NUM_19
#define BLUE_PIN GPIO_NUM_21
#define LEDC_TIMER LEDC_TIMER_0
#define LEDC_MODE LEDC_HIGH_SPEED_MODE
#define LEDC_CHANNEL_R LEDC_CHANNEL_0
#define LEDC_CHANNEL_G LEDC_CHANNEL_1
#define LEDC_CHANNEL_B LEDC_CHANNEL_2
void configure_led_pwm(gpio_num_t pin, ledc_channel_t channel) {
ledc_timer_config_t ledc_timer = {
.speed_mode = LEDC_MODE,
.timer_num = LEDC_TIMER,
.duty_resolution = LEDC_TIMER_10_BIT,
.freq_hz = 1000
};
ledc_timer_config(&ledc_timer);
ledc_channel_config_t ledc_channel = {
.gpio_num = pin,
.speed_mode = LEDC_MODE,
.channel = channel,
.intr_type = LEDC_INTR_DISABLE,
.timer_sel = LEDC_TIMER,
.duty = 0,
.hpoint = 0
};
ledc_channel_config(&ledc_channel);
}
void set_color(uint32_t red, uint32_t green, uint32_t blue) {
ledc_set_duty(LEDC_MODE, LEDC_CHANNEL_R, red);
ledc_update_duty(LEDC_MODE, LEDC_CHANNEL_R);
ledc_set_duty(LEDC_MODE, LEDC_CHANNEL_G, green);
ledc_update_duty(LEDC_MODE, LEDC_CHANNEL_G);
ledc_set_duty(LEDC_MODE, LEDC_CHANNEL_B, blue);
ledc_update_duty(LEDC_MODE, LEDC_CHANNEL_B);
}
void app_main(void) {
configure_led_pwm(RED_PIN, LEDC_CHANNEL_R);
configure_led_pwm(GREEN_PIN, LEDC_CHANNEL_G);
configure_led_pwm(BLUE_PIN, LEDC_CHANNEL_B);
while (1) {
set_color(1023, 0, 0); // Красный
vTaskDelay(pdMS_TO_TICKS(1000));
set_color(0, 1023, 0); // Зелёный
vTaskDelay(pdMS_TO_TICKS(1000));
set_color(0, 0, 1023); // Синий
vTaskDelay(pdMS_TO_TICKS(1000));
}
}
Этот код для ESP-IDF настраивает PWM на GPIO18 (красный), GPIO19 (зелёный) и GPIO21 (синий) с разрешением 10 бит (0–1023). Функция configure_led_pwm() инициализирует PWM для каждого канала, а set_color() устанавливает заданную яркость. Основной цикл последовательно включает красный, зелёный и синий цвета.
Пример для ESPHome
Конфигурация ESPHome для Home Assistant
YAML
Пример для ESPHome
Конфигурация ESPHome для Home Assistant
output:
- platform: ledc
pin: GPIO18
id: red_led
- platform: ledc
pin: GPIO19
id: green_led
- platform: ledc
pin: GPIO21
id: blue_led
light:
- platform: monochromatic
name: "KY-009 RGB LED"
output: red_led
gamma_correct: 2.8
- platform: monochromatic
name: "KY-009 RGB LED"
output: green_led
gamma_correct: 2.8
- platform: monochromatic
name: "KY-009 RGB LED"
output: blue_led
gamma_correct: 2.8
Эта конфигурация ESPHome задаёт три LEDC PWM-выхода на GPIO18, GPIO19 и GPIO21. Каждая компонента создаётся как монохроматический светильник, что позволяет управлять каждым цветом отдельно и смешивать их в Home Assistant.
Пример для PlatformIO
Профессиональная среда разработки
C++
Пример для PlatformIO
Профессиональная среда разработки
platformio.ini
[env:esp32]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
main.cpp
#define RED_PIN 18
#define GREEN_PIN 19
#define BLUE_PIN 21
void setup() {
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
}
void loop() {
analogWrite(RED_PIN, 255);
analogWrite(GREEN_PIN, 0);
analogWrite(BLUE_PIN, 0);
delay(1000);
analogWrite(RED_PIN, 0);
analogWrite(GREEN_PIN, 255);
analogWrite(BLUE_PIN, 0);
delay(1000);
analogWrite(RED_PIN, 0);
analogWrite(GREEN_PIN, 0);
analogWrite(BLUE_PIN, 255);
delay(1000);
}
Файл platformio.ini настраивает проект для ESP32 на фреймворке Arduino в PlatformIO. В main.cpp используются PWM-выходы на GPIO18, GPIO19 и GPIO21 для управления RGB-светодиодом. Цикл последовательно включает красный, зелёный и синий цвета.
Пример для MicroPython
Python для микроконтроллеров
Python
Пример для MicroPython
Python для микроконтроллеров
import machine
import time
red = machine.PWM(machine.Pin(18), freq=1000)
green = machine.PWM(machine.Pin(19), freq=1000)
blue = machine.PWM(machine.Pin(21), freq=1000)
def set_color(r, g, b):
red.duty(r)
green.duty(g)
blue.duty(b)
while True:
set_color(1023, 0, 0) # Красный
time.sleep(1)
set_color(0, 1023, 0) # Зелёный
time.sleep(1)
set_color(0, 0, 1023) # Синий
time.sleep(1)
Этот скрипт MicroPython настраивает PWM на GPIO18, GPIO19 и GPIO21 с частотой 1 кГц. Функция set_color() устанавливает скважность для каждого канала. Основной цикл последовательно выводит красный, зелёный и синий цвета.
Итоги KY-009
Модуль RGB-светодиода KY-009 — это простой и эффективный компонент для создания цветовых эффектов. Он поддерживает различные платформы разработки, включая Arduino, ESP-IDF, ESPHome, PlatformIO и MicroPython, поэтому хорошо подходит для IoT-проектов и световых индикаторов.
Рекомендации
Для правильной работы обязательно используйте ограничивающие резисторы: 180Ω для красного канала (1.8В) и 100Ω для зелёного/синего каналов (2.8В). Подавайте на модуль стабильное напряжение 5В и выбирайте любые PWM-совместимые GPIO.
Безопасность прежде всего
Перед подачей питания проверьте правильность подключения всех выводов и номиналы резисторов. Избегайте короткого замыкания и переполюсовки. Убедитесь, что суммарный ток не превышает возможности GPIO.
Готовы начать создавать?
Теперь, когда у вас есть вся необходимая информация, пора интегрировать KY-009 в проект на ESP32 и воплотить идеи в жизнь!
Изучите альтернативные датчики
Ищете альтернативы KY-009? Посмотрите эти похожие датчики — возможно, они лучше подойдут под задачи вашего проекта.

Датчик пульса KY-039
Датчик пульса KY-039 использует инфракрасный светодиод и фототранзистор для обнаружения сигналов пульса. Он предоставляет аналоговый выход и подходит для...

Пассивный зуммер KY-006
Пассивный пьезо-зуммер KY-006 вырабатывает звук при управлении PWM-сигналом. Он идеален для генерации различных тонов и мелодий в проектах...

Реле контактного датчика KY-025
Реле контактного датчика KY-025 предоставляет как аналоговый, так и цифровой выход. Он оснащён потенциометром для регулировки чувствительности и...