Обзор
KY-029 — это двухцветный светодиодный модуль, оснащенный 3-мм светодиодом, который излучает красный и зеленый свет. Путем регулировки интенсивности каждого цвета с помощью ШИМ (PWM) можно достичь различных цветовых комбинаций, таких как желтый или оранжевый. Модуль с общим катодом упрощает интеграцию с микроконтроллерами для визуальной индикации состояния устройств.
KY-029 — двухцветный светодиодный модуль (красный/зеленый). Изменяя яркость каждого светодиода через ШИМ, можно получать смешанные цвета. Это компактное решение для индикации статуса в IoT‑устройствах и робототехнических проектах.
Приобретите KY-029
Характеристики KY-029
Полные технические характеристики двухцветного светодиодного модуля KY-029.
Распиновка KY-029
Модуль KY-029 имеет 3 активных вывода для управления двухцветным светодиодом:
- Общий катод — средний пин подключается к GND микроконтроллера.
- Резисторы — обязательно подключайте токоограничивающие резисторы (~220 Ом).
- ШИМ — используйте PWM сигналы для смешивания цветов и настройки яркости.
| № | Название | Тип | Описание | Примечания |
|---|---|---|---|---|
| 1 | S (Signal) | Вход | Анод одного из светодиодов (обычно зеленый) | Управление яркостью через ШИМ |
| 2 | Middle (VCC/GND) | Питание | Общий катод (минус) | Подключить к GND (земля) |
| 3 | - (GND/S) | Вход | Анод второго светодиода (обычно красный) | Управление яркостью через ШИМ |
Подключение KY-029 к ESP32
Для управления KY-029 с помощью ESP32 используйте любые свободные GPIO с поддержкой ШИМ. Ниже приведена типовая схема подключения с использованием токоограничивающих резисторов.
| Вывод KY-029 | Подключение | Вывод ESP32 | Описание |
|---|---|---|---|
| Pin S (Signal) обязательно | → | GPIO16 | Управление зеленым светодиодом (через резистор) |
| Middle обязательно | → | GND | Общий катод (земля) |
| Pin - (Signal) обязательно | → | GPIO17 | Управление красным светодиодом (через резистор) |
Устранение неполадок KY-029
Распространённые проблемы и их решения для модуля KY-029.
Светодиод не горит
Проверка базового подключения
Проблема: Светодиод не излучает свет при подаче логического сигнала.
- Убедитесь, что средний пин подключен к GND (общий катод).
- Проверьте, настроены ли GPIO пины на выход (OUTPUT) в программном коде.
- Убедитесь в наличии контакта и правильном номинале токоограничивающих резисторов.
Тусклое свечение или неправильный цвет
Проблемы с яркостью или смешением
Проблема: Цвета светят неравномерно или смешиваются не так, как ожидалось.
Решение: Учтите, что красные и зеленые светодиоды имеют разные падения напряжения. Для выравнивания яркости может потребоваться подбор разных номиналов резисторов или программная корректировка коэффициента заполнения ШИМ-сигнала. Также проверьте частоту ШИМ — слишком низкая частота может вызвать мерцание.
Советы по отладке
Проверка через Serial монитор
Отслеживание логики работы кода
Замер напряжения
Проверка питания на сигнальных пинах
Примеры программирования KY-029
Готовые решения для управления модулем KY-029 на различных платформах.
Пример для Arduino
Простой скетч для поочередного переключения цветов
C++
Пример для Arduino
Простой скетч для поочередного переключения цветов
int redPin = 11; // Пин для красного цвета
int greenPin = 10; // Пин для зеленого цвета
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
}
void loop() {
// Включаем красный цвет
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
delay(2000);
// Включаем зеленый цвет
digitalWrite(redPin, LOW);
digitalWrite(greenPin, HIGH);
delay(2000);
// Смешиваем цвета (оранжевый/желтый)
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, HIGH);
delay(2000);
}
Данный скетч поочередно включает красный, зеленый и оба цвета сразу для получения смешанного оттенка.
Пример для ESP-IDF
Использование LEDC для управления яркостью на ESP32
C/C++
Пример для ESP-IDF
Использование LEDC для управления яркостью на ESP32
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/ledc.h"
#define LED_RED_IO 17
#define LED_GREEN_IO 16
void app_main(void) {
ledc_timer_config_t ledc_timer = {
.speed_mode = LEDC_LOW_SPEED_MODE,
.duty_resolution = LEDC_TIMER_8_BIT,
.timer_num = LEDC_TIMER_0,
.freq_hz = 5000,
.clk_cfg = LEDC_AUTO_CLK
};
ledc_timer_config(&ledc_timer);
ledc_channel_config_t ledc_channel[2] = {
{
.gpio_num = LED_RED_IO,
.speed_mode = LEDC_LOW_SPEED_MODE,
.channel = LEDC_CHANNEL_0,
.timer_sel = LEDC_TIMER_0,
.duty = 0
},
{
.gpio_num = LED_GREEN_IO,
.speed_mode = LEDC_LOW_SPEED_MODE,
.channel = LEDC_CHANNEL_1,
.timer_sel = LEDC_TIMER_0,
.duty = 0
}
};
for (int i = 0; i < 2; i++) {
ledc_channel_config(&ledc_channel[i]);
}
while (1) {
// Плавно включаем красный
ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, 255);
ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0);
vTaskDelay(pdMS_TO_TICKS(2000));
// Переключаем на зеленый
ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, 0);
ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0);
ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_1, 255);
ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_1);
vTaskDelay(pdMS_TO_TICKS(2000));
}
}
Этот пример демонстрирует использование аппаратного ШИМ контроллера ESP32 (LEDC) для управления каналами модуля.
Пример для ESPHome
Конфигурация для интеграции в Home Assistant
YAML
Пример для ESPHome
Конфигурация для интеграции в Home Assistant
output:
- platform: ledc
pin: GPIO17
id: red_led_output
- platform: ledc
pin: GPIO16
id: green_led_output
light:
- platform: monochromatic
name: "KY-029 Красный"
output: red_led_output
- platform: monochromatic
name: "KY-029 Зеленый"
output: green_led_output
Данная конфигурация создает два независимых элемента управления яркостью светодиодов в интерфейсе Home Assistant.
Пример для MicroPython
Скрипт для циклического изменения цвета
Python
Пример для MicroPython
Скрипт для циклического изменения цвета
from machine import Pin, PWM
import time
# Инициализация ШИМ на пинах
red = PWM(Pin(17))
green = PWM(Pin(16))
# Установка частоты
red.freq(1000)
green.freq(1000)
while True:
# Только красный
red.duty(1023)
green.duty(0)
time.sleep(1)
# Только зеленый
red.duty(0)
green.duty(1023)
time.sleep(1)
# Смешанный (желтый)
red.duty(1023)
green.duty(1023)
time.sleep(1)
MicroPython скрипт позволяет легко управлять интенсивностью цветов модуля на контроллерах типа ESP32 или Raspberry Pi Pico.
Итоги KY-029
Двухцветный светодиодный модуль **KY-029** — это компактный и эффективный инструмент для визуального отображения статусов работы ваших устройств. Благодаря возможности смешивания красного и зеленого цветов, вы можете получить дополнительные оттенки, что расширяет возможности индикации без увеличения количества используемых компонентов.
Советы по применению
Используйте различные частоты мерцания для передачи разных состояний. Например: постоянный зеленый — норма, мигающий красный — ошибка, постоянный красный — критический сбой.
Защита устройства
Не подключайте светодиоды напрямую к пинам контроллера без резисторов. Это может привести к перегрузке по току и необратимому повреждению как модуля KY-029, так и самого микроконтроллера.
Готовы использовать KY-029?
Теперь у вас есть все необходимые знания и примеры кода для интеграции KY-029 в ваши проекты. Начните с создания простых световых индикаторов прямо сейчас!