Обзор
KY-011 — это двухцветный светодиодный модуль с общим катодом 3-мм светодиода, способного излучать красный и зелёный свет. Регулируя интенсивность каждого цвета с помощью PWM, можно получить различные цвета. Идеально подходит для визуальной обратной связи в электронных проектах.
KY-011 — двухцветный светодиодный модуль (красный/зелёный) с общим катодом. Управление через PWM позволяет смешивать цвета и регулировать яркость. Совместим с Arduino, ESP32 и другими микроконтроллерами.
Приобретите KY-011
Характеристики KY-011
Полные технические характеристики двухцветного светодиодного модуля KY-011.
Распиновка KY-011
KY-011 — это 3-пиновый двухцветный светодиодный модуль (красный/зелёный, общий катод):
- Управление — 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:
| Вывод KY-011 | Подключение | Вывод ESP32 | Описание |
|---|---|---|---|
| 1 Pin (G) обязательно | → | GND | Общая земля |
| 2 Pin (R) обязательно | → | GPIO18 | Красный канал (через резистор ограничения тока) |
| 3 Pin (Y) обязательно | → | GPIO19 | Зелёный канал (через резистор ограничения тока) |
Устранение неполадок 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 монитор
Проверка логов и ошибок
Проверка напряжения
Мультиметр и целостность цепи
Проверка резисторов
Корректность ограничения тока
Дополнительные ресурсы
Примеры программирования KY-011
Готовые к использованию примеры кода для различных платформ и фреймворков
Пример для Arduino
Совместим с Arduino IDE и платами ESP32
C++
Пример для Arduino
Совместим с Arduino IDE и платами ESP32
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++
Пример для 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 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
Конфигурация ESPHome для Home Assistant
# Конфигурация 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
Профессиональная среда разработки
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
Пример для MicroPython
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 и воплотить идеи в жизнь!
Изучите альтернативные датчики
Ищете альтернативы KY-011? Посмотрите эти похожие модули — возможно, они лучше подойдут под задачи вашего проекта.

Модуль Magic Light Cup KY-027
KY-027 — это модуль обнаружения движения с ртутным наклонным выключателем и светодиодом. Он обнаруживает наклон или изменение ориентации...

Активный зуммер KY-012
KY-012 — это активный пьезоэлектрический зуммерный модуль, который издает тональность 2.5 кГц при подаче питания. Работает в диапазоне...

Модуль геркона (Reed Switch) KY-025
KY-025 — это модуль reed-переключателя, который предоставляет аналоговые и цифровые выходы. Он оснащён потенциометром для регулировки чувствительности...