Двухцветный светодиодный модуль KY-011

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

Светодиоды PWM

Обзор

KY-011 — это двухцветный светодиодный модуль с общим катодом 3-мм светодиода, способного излучать красный и зелёный свет. Регулируя интенсивность каждого цвета с помощью PWM, можно получить различные цвета. Идеально подходит для визуальной обратной связи в электронных проектах.

KY-011 — двухцветный светодиодный модуль (красный/зелёный) с общим катодом. Управление через PWM позволяет смешивать цвета и регулировать яркость. Совместим с Arduino, ESP32 и другими микроконтроллерами.

Двухцветный светодиодный модуль KY-011
Быстрая навигация
Основные разделы статьи
Примеры кода
Популярные платформы
Где купить

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

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

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

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

Прямое напряжение
2.0В – 2.5В
Прямой ток
20 мА
Диаметр светодиода
3 мм
Цвета
Красный и зелёный
Угол излучения
150°
Длина волны
Красный: 644 нм, Зелёный: 571 нм
Световой поток
Красный: 40-80 мкд, Зелёный: 20-40 мкд
Интерфейс
PWM (цифровой)
Скачать полный даташит
Распиновка

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

KY-011 — это 3-пиновый двухцветный светодиодный модуль (красный/зелёный, общий катод):

Визуальная диаграмма распиновки
Основная
Распиновка KY-011
Всего выводов
3
Типы
Питание + PWM
Быстрые советы
  • Управление — PWM для каждого канала цвета.
  • Цвета — Красный, зелёный и смешанные (жёлтый/оранжевый).
  • Конфигурация — Общий катод (общая земля).
  • Ток — 20 мА на светодиод, 2.0-2.5В прямого напряжения.
Описание выводов
Название Тип Описание Примечания
1 G Питание Общий катод (земля) Общая земля для обоих светодиодов
2 R PWM Анод красного светодиода 2.0-2.5В прямого напряжения, 20 мА
3 Y PWM Анод зелёного светодиода 2.0-2.5В прямого напряжения, 20 мА (Y=жёлтая маркировка)
Подключение

Подключение KY-011 к ESP32

Для управления двухцветным светодиодным модулем KY-011 через PWM на ESP32:

Схема подключения
Рекомендуемая (PWM)
Подключение KY-011 к ESP32
Подключений
3
Статус
Все обязательны
Протокол
PWM
Подключения пинов
Вывод KY-011 Подключение Вывод ESP32 Описание
1 Pin (G) обязательно GND Общая земля
2 Pin (R) обязательно GPIO18 Красный канал (через резистор ограничения тока)
3 Pin (Y) обязательно GPIO19 Зелёный канал (через резистор ограничения тока)
🔧 Резисторы: 100-220Ом для защиты светодиода 🌈 PWM: для смешивания цветов и регулировки яркости ⚡ Логика 3.3В: ESP32 подходит с правильными резисторами 📊 Общий катод: ошибки замыкания могут повредить плату 🎯 Применение: индикаторы состояния, визуальная обратная связь
Устранение неполадок

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

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

Светодиод не загорается
Модуль не реагирует на команды

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

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

Решение: проверьте подключение модуля к микроконтроллеру, убедитесь в использовании резисторов 100-220 Ом, проверьте пины в коде и убедитесь, что общий катод подключён к GND.

Неправильный цвет
Светодиод показывает неожиданный цвет

Проблема: светодиод излучает не тот цвет, который ожидается.

Возможные причины: перепутаны пины R и Y, неправильные значения PWM, общий катод не подключён к земле.

Решение: проверьте, что красный пин подключён к R (пин 2), а зелёный — к Y (пин 3). Отрегулируйте PWM-значения в коде и убедитесь в правильном подключении общего катода.

Светодиод повреждён
Постоянное горение или не горит вообще

Проблема: светодиод перестал работать, горит постоянно или не загорается после включения.

Возможные причины: перегрузка по току (отсутствие резисторов), выход за пределы напряжения, статическое повреждение.

Решение: добавьте резисторы 150-220 Ом в цепь каждого светодиода, проверьте напряжение питания (2.0-2.5В для каждого светодиода), замените модуль при физическом повреждении.

PWM не работает
ШИМ-сигнал не меняет яркость

Проблема: яркость светодиода не меняется при изменении ШИМ-сигнала.

Решение: убедитесь, что пины поддерживают PWM (на ESP32 практически все GPIO). Проверьте частоту ШИМ (рекомендуется 500-5000 Гц) и диапазон duty cycle (0-255 для 8-битного). Пример настройки PWM для ESP32: ledcSetup(channel, freq, resolution); ledcAttachPin(pin, channel);.

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

Serial монитор
Проверка логов и ошибок
Используйте Serial Monitor для просмотра сообщений об ошибках и проверки работы датчика. Добавьте отладочную печать в код, чтобы отслеживать состояние модуля.
Проверка напряжения
Мультиметр и целостность цепи
Используйте мультиметр для проверки уровней напряжения на выводах модуля. Убедитесь, что питание стабильно и соответствует требованиям (2.0-2.5В на светодиод).
Проверка резисторов
Корректность ограничения тока
Убедитесь, что на каждом анодном выводе (R и Y) установлен резистор 100-220 Ом. Отсутствие резисторов может привести к перегрузке и повреждению светодиодов. Проверьте номинал резисторов с помощью мультиметра.

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

Примеры кода

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

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

Пример для Arduino

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

C++
int redPin = 10;    // Пин для красного светодиода
int greenPin = 9;   // Пин для зелёного светодиода

void setup() {
    pinMode(redPin, OUTPUT);
    pinMode(greenPin, OUTPUT);
}

void loop() {
    digitalWrite(redPin, HIGH);   // Красный светодиод включён
    digitalWrite(greenPin, LOW);  // Зелёный светодиод выключен
    delay(3000);                  // Ждём 3 секунды

    digitalWrite(redPin, LOW);    // Красный светодиод выключен
    digitalWrite(greenPin, HIGH); // Зелёный светодиод включён
    delay(3000);                  // Ждём 3 секунды
}

Этот Arduino-скетч поочерёдно включает красный и зелёный светодиоды модуля KY-011 каждые 3 секунды. Пины 10 и 9 настроены как выводы для управления красным и зелёным светодиодами соответственно.

Для регулировки яркости и смешивания цветов используйте функцию analogWrite() вместо digitalWrite(), передавая значения от 0 до 255.

Пример для 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 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

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_8_BIT,
        .freq_hz = 5000,
        .clk_cfg = LEDC_AUTO_CLK
    };
    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_led_color(uint32_t red, uint32_t green) {
    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);
}

void app_main(void) {
    configure_led_pwm(RED_PIN, LEDC_CHANNEL_R);
    configure_led_pwm(GREEN_PIN, LEDC_CHANNEL_G);

    while (1) {
        set_led_color(255, 0);  // Красный включён, зелёный выключен
        vTaskDelay(pdMS_TO_TICKS(3000));
        set_led_color(0, 255);  // Красный выключен, зелёный включён
        vTaskDelay(pdMS_TO_TICKS(3000));
    }
}

Этот пример для ESP-IDF настраивает режимы ШИМ (PWM) с помощью аппаратного контроллера LEDC ESP32. Функция configure_led_pwm() инициализирует таймер и канал ШИМ для каждого светодиода. Функция set_led_color() устанавливает скважность (duty) для красного и зелёного каналов.

GPIO18 управляет красным светодиодом, GPIO19 — зелёным. В примере красный и зелёный цвета переключаются каждые 3 секунды. Значение 255 соответствует 100% яркости, 0 — выключено.

Пример для ESPHome

Конфигурация ESPHome для Home Assistant

YAML
# Конфигурация ESPHome для двухцветного светодиода KY-011
output:
  - platform: ledc
    pin: GPIO18
    id: red_led
  - platform: ledc
    pin: GPIO19
    id: green_led

light:
  - platform: monochromatic
    name: "KY-011 Красный светодиод"
    output: red_led
    gamma_correct: 2.8
  - platform: monochromatic
    name: "KY-011 Зелёный светодиод"
    output: green_led
    gamma_correct: 2.8

В этой конфигурации ESPHome используются LEDC PWM-выходы на ESP32 для управления двумя отдельными светодиодами. Созданы два объекта light, которые можно управлять независимо через Home Assistant. Параметр gamma_correct обеспечивает плавную регулировку яркости.

Пример для PlatformIO

Профессиональная среда разработки

C++

platformio.ini

[env:esp32]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200

main.cpp

int redPin = 18;   // Красный светодиод на GPIO18
int greenPin = 19; // Зелёный светодиод на GPIO19

void setup() {
    pinMode(redPin, OUTPUT);
    pinMode(greenPin, OUTPUT);
}

void loop() {
    digitalWrite(redPin, HIGH);   // Красный включён
    digitalWrite(greenPin, LOW);  // Зелёный выключен
    delay(3000);

    digitalWrite(redPin, LOW);    // Красный выключен
    digitalWrite(greenPin, HIGH); // Зелёный включён
    delay(3000);
}

Файл platformio.ini задаёт конфигурацию проекта для ESP32 на фреймворке Arduino. В main.cpp настроены пины GPIO18 и GPIO19 как цифровые выходы для управления светодиодами. Пример переключает цвета каждые 3 секунды.

Для регулировки яркости замените digitalWrite() на analogWrite(pin, value) со значениями 0-255.

Пример для MicroPython

Python для микроконтроллеров

Python
from machine import Pin, PWM
import time

# Настройка PWM-пинов для двухцветного светодиода
red_pin = PWM(Pin(18), freq=5000)   # Красный на GPIO18
green_pin = PWM(Pin(19), freq=5000) # Зелёный на GPIO19

while True:
    # Красный на полную яркость, зелёный выключен
    red_pin.duty(255)
    green_pin.duty(0)
    time.sleep(3)

    # Красный выключен, зелёный на полную яркость
    red_pin.duty(0)
    green_pin.duty(255)
    time.sleep(3)

Этот скрипт MicroPython использует аппаратный PWM для управления яркостью каждого светодиода отдельно. Создаются объекты PWM на GPIO18 (красный) и GPIO19 (зелёный) с частотой 5 кГц. Метод duty() задает скважность в диапазоне 0-255.

Итоги KY-011

Двухцветный светодиодный модуль KY-011 — это простой и эффективный компонент для визуальной обратной связи в проектах на Arduino и ESP32. Поддержка PWM позволяет смешивать цвета и регулировать яркость.

Рекомендации

Используйте резисторы 150-220 Ом для защиты светодиодов. Управляйте яркостью через PWM (0-255) для плавных переходов и создания дополнительных цветов путём смешивания красного и зелёного.

Безопасность прежде всего

Общий катод (G) должен быть подключён к земле. Не превышайте 20 мА на светодиод. Проверьте полярность: красный пин (R) и зелёный пин (Y) управляются отдельно.

Готовы начать создавать?

Теперь, когда у вас есть вся необходимая информация, пора интегрировать KY-011 в проект на ESP32 и воплотить идеи в жизнь!