Модуль RGB светодиода KY-009

Узнайте всё о модуле RGB светодиода KY-009: спецификации, распиновка, схемы подключения, документация и примеры кода для ESP32, Arduino, Raspberry

Освещение PWM

Обзор

KY-009 — это RGB-светодиодный модуль, который позволяет создавать различные цвета путём регулировки яркости красного, зелёного и синего светодиодов с помощью сигналов PWM. Модуль идеально подходит для проектов, требующих красочных визуальных эффектов.

KY-009 — это RGB-светодиодный модуль с управлением яркостью каждого канала через PWM. Он использует светодиод 5050 SMD, способный смешивать красный, зелёный и синий цвета для создания практически любого оттенка. Модуль работает от 5В и совместим с Arduino, ESP32 и Raspberry Pi.

Модуль KY-009
Быстрая навигация
Основные разделы статьи
Примеры кода
Популярные платформы

О модуле RGB светодиода KY-009

Модуль KY-009 оснащён светодиодом 5050 SMD, способным излучать широкий спектр цветов путём смешивания красного, зелёного и синего света. Яркость каждого цвета регулируется с помощью PWM (широтно-импульсной модуляции), что позволяет создавать практически любой цвет видимого спектра. Модуль работает от напряжения , с прямыми напряжениями: 1.8В для красного светодиода и 2.8В для зелёного и синего. Он совместим с микроконтроллерами, такими как Arduino, Raspberry Pi и ESP32.

Где купить

Приобретите KY-009

Технические характеристики

Характеристики KY-009

Полные технические характеристики модуля RGB светодиода KY-009.

Интерфейс
PWM
Тип светодиода
5050 SMD RGB
Питание
Размеры
18.5 × 15 мм
Скачать полный даташит
Конфигурация пинов

Распиновка KY-009

KY-009 — это 4-пиновый RGB-светодиодный модуль со светодиодом 5050 SMD (общий катод):

Визуальная диаграмма распиновки
Основное
Распиновка KY-009
Всего выводов
4
Типы
Питание + PWM
Быстрые советы
  • Управление: 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 для управления красным, зелёным и синим каналами. Убедитесь, что используются ограничивающие резисторы для защиты светодиодов.

Схема подключения
Рекомендуемая (PWM)
Подключение KY-009 к ESP32
Подключений
4
Статус
Все обязательны
Протокол
PWM
Подключения пинов
Вывод KY-009 Подключение Вывод ESP32 Описание
Pin (-) обязательно GND Общий катод (земля)
Pin (R) обязательно GPIO18 Красный канал (через резистор 180Ω)
Pin (G) обязательно GPIO19 Зелёный канал (через резистор 100Ω)
Pin (B) обязательно GPIO21 Синий канал (через резистор 100Ω)
⚡ PWM управление каждым каналом 🔌 Резисторы обязательны: R=180Ω, G/B=100Ω 🌈 Создание 16.7 млн цветов 📐 Компактные размеры: 18.5×15 мм 💡 Тип светодиода: 5050 SMD
Помощь и поддержка

Устранение неполадок KY-009

Распространённые проблемы и решения, которые помогут запустить модуль.

Светодиод не зажигается
Светодиод не излучает свет при ожидаемом управлении

Проблема: светодиод не загорается при подаче управляющих сигналов.

Возможные причины: неправильное подключение, отсутствие或неправильные ограничивающие резисторы, неверная конфигурация PWM на GPIO.

Решение: проверьте все соединения, убедитесь в использовании резисторов (180Ω для красного, 100Ω для зелёного и синего), проверьте, что пины настроены как PWM-выходы и выдают корректные сигналы.

Некорректные цвета или несмешивание
Отображаются неожиданные цвета или каналы не смешиваются

Проблема: цвета отображаются неверно или смешивание работает некорректно.

Возможные причины: некорректные PWM-сигналы, неподходящие значения резисторов или ошибки в коде управления.

Решение: проверьте, что PWM-сигналы на всех трёх каналах задаются правильно, убедитесь в использовании рекомендованных номиналов резисторов, проверьте код на наличие логических ошибок.

Советы по отладке

Serial Monitor
Проверка логов и ошибок
Используйте Serial Monitor для просмотра сообщений об ошибках и проверки работы модуля. Добавляйте отладочный вывод в код для отслеживания состояния управления светодиодом.
Проверка напряжения
Мультиметр и целостность цепи
Используйте мультиметр для проверки уровней напряжения и целостности соединений. Убедитесь, что питание стабильно и соответствует требованиям модуля (5В).

Дополнительные ресурсы

Примеры кода

Примеры программирования KY-009

Готовые к использованию примеры кода для различных платформ и фреймворков

Пример для Arduino

Совместим с Arduino IDE и платами ESP32

C++
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++
#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
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.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
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 и воплотить идеи в жизнь!