Обзор
KY-016 — это RGB-светодиодный модуль, способный отображать широкий спектр цветов путём регулировки яркости красного, зелёного и синего светодиодов. Он подходит для различных проектов, требующих красочной визуальной обратной связи.
KY-016 — RGB-светодиодный модуль с общей катодной конфигурацией. Позволяет отображать до 16.7 миллионов цветов через ШИМ (PWM). Идеален для декоративного оформления, цветовых индикаторов и статус- Light.
Приобретите KY-016
Характеристики KY-016
Полные технические характеристики модуля RGB-светодиода KY-016.
Распиновка KY-016
KY-016 — это 4-пиновый RGB-светодиодный модуль с общей катодной конфигурацией:
- Интерфейс: ШИМ-управление для каждого канала.
- Конфигурация: Общий катод (GND общий).
- Резисторы: R=180Ω, G/B=100Ω (уже на модуле).
| № | Название | Тип | Описание | Примечания |
|---|---|---|---|---|
| 1 | Pin 1 (GND) | Питание | Общий катод (земля) | Подключить к GND |
| 2 | Pin 2 (R) | Выход | Анод красного светодиода | 1.8В, резистор 180Ω |
| 3 | Pin 3 (G) | Выход | Анод зелёного светодиода | 2.8В, резистор 100Ω |
| 4 | Pin 4 (B) | Выход | Анод синего светодиода | 2.8В, резистор 100Ω |
Подключение KY-016 к ESP32
Для управления RGB-светодиодом KY-016 с ESP32 используется ШИМ (PWM) на трёх выводах красного, зелёного и синего каналов. На модуле уже установлены current-limiting резисторы.
| Вывод KY-016 | Подключение | Вывод ESP32 | Описание |
|---|---|---|---|
| Pin 1 (GND) обязательно | → | GND | Общая земля |
| Pin 2 (R) обязательно | → | GPIO25 | Красный канал (через 180Ω) |
| Pin 3 (G) обязательно | → | GPIO26 | Зелёный канал (через 100Ω) |
| Pin 4 (B) обязательно | → | GPIO27 | Синий канал (через 100Ω) |
Устранение неполадок KY-016
Распространённые проблемы и решения, которые помогут запустить модуль.
Светодиод не загорается
RGB LED не включается вообще
Проблема: светодиод полностью не светится.
Возможные причины: неправильные соединения, неисправность пинов, отсутствие питания.
Решение: проверьте все подключения к GND и трём каналам цвета. Убедитесь, что пины GPIO настроены как OUTPUT. Проверьте, что модуль получает питание (3.3В или 5В в зависимости от версии).
Неправильные цвета
Цвет не соответствует ожидаемому
Проблема: цвета отображаются искажённо или слабые.
Возможные причины: неправильные значения ШИМ, путаница с пинами цветов, короткое замыкание.
Решение: проверьте, что в коде правильные пины для каждого цвета (R, G, B). Убедитесь, что значения analogWrite в диапазоне 0-255. Проверьте на короткое замыкание между выводами модуля.
ШИМ не работает на ESP32
analogWrite или ledc не регулируют яркость
Проблема: ШИМ-сигнал не меняет яркость светодиода.
Решение: на ESP32 убедитесь, что используются правильные функции ШИМ. В Arduino-окружении для ESP32 analogWrite работает через ledc. Проверьте, что пины поддерживают ШИМ (любой GPIO, кроме 34-39). Установите частоту ШИМ (обычно 5 кГц) и разрешение (обычно 8 бит).
Советы по отладке
Serial монитор
Проверка логов и ошибок
Проверка напряжения
Мультиметр и целостность цепи
Дополнительные ресурсы
Примеры программирования KY-016
Готовые к использованию примеры кода для различных платформ и фреймворков
Пример для Arduino
Совместим с Arduino IDE и платами ESP32
C++
Пример для Arduino
Совместим с Arduino IDE и платами ESP32
#define RED_PIN 25
#define GREEN_PIN 26
#define BLUE_PIN 27
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);
}
Этот Arduino-скетч настраиваетRGB-светодиодный модуль KY-016, определяя пины для красного, зелёного и синего светодиодов. В цикле loop() модуль sequentially показывает красный, зелёный и синий цвета, каждый в течение одной секунды. Используйте значения от 0 до 255 для создания различных комбинаций.
Примечание для ESP32
На ESP32 в среде Arduino функция analogWrite() использует LEDC контроллер. Для точной настройки частоты и разрешения можно использовать:
ledcSetup(0, 5000, 8); // канал, частота 5 кГц, 8 бит
ledcAttachPin(RED_PIN, 0);
ledcWrite(0, 255); // значение 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_25
#define GREEN_PIN GPIO_NUM_26
#define BLUE_PIN GPIO_NUM_27
#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_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_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(255, 0, 0); // Красный
vTaskDelay(pdMS_TO_TICKS(1000));
set_color(0, 255, 0); // Зелёный
vTaskDelay(pdMS_TO_TICKS(1000));
set_color(0, 0, 255); // Синий
vTaskDelay(pdMS_TO_TICKS(1000));
}
}
Этот код для ESP-IDF настраивает ШИМ на пинах GPIO25 (красный), GPIO26 (зелёный) и GPIO27 (синий). Функция configure_led_pwm() настраивает каналы ШИМ для каждого светодиода, а set_color() регулирует яркость каждого. Лампа циклически переключает цвета каждую секунду.
Пример для ESPHome
Конфигурация ESPHome для Home Assistant
YAML
Пример для ESPHome
Конфигурация ESPHome для Home Assistant
output:
- platform: ledc
pin: GPIO25
id: red_led
- platform: ledc
pin: GPIO26
id: green_led
- platform: ledc
pin: GPIO27
id: blue_led
light:
- platform: rgb
name: "KY-016 RGB LED"
red: red_led
green: green_led
blue: blue_led
gamma_correct: 2.8
Эта конфигурация ESPHome задаёт три ШИМ-выхода на GPIO25, GPIO26 и GPIO27. Светодиод управляется как RGB-светильник через Home Assistant с полным управлением цветом. Параметр gamma_correct компенсирует нелинейность восприятия яркости.
Пример для PlatformIO
Профессиональная среда разработки
C++
Пример для PlatformIO
Профессиональная среда разработки
platformio.ini
[env:esp32]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
main.cpp
#define RED_PIN 25
#define GREEN_PIN 26
#define BLUE_PIN 27
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 настраивает плату ESP32 с фреймворком Arduino. Код идентичен Arduino-примеру, но организован в виде проекта PlatformIO с отдельным файлом конфигурации platformio.ini.
Пример для MicroPython
Python для микроконтроллеров
Python
Пример для MicroPython
Python для микроконтроллеров
import machine
import time
# Настройка пинов ШИМ
red = machine.PWM(machine.Pin(25))
green = machine.PWM(machine.Pin(26))
blue = machine.PWM(machine.Pin(27))
# Частота ШИМ 1000 Гц
red.freq(1000)
green.freq(1000)
blue.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 настраивает ШИМ на пинах 25, 26 и 27 для управления RGB-светодиодом. Функция set_color() принимает значения от 0 до 1023 (10-битное разрешение на ESP32). Цикл последовательно зажигает красный, зелёный и синий цвета.
Итоги KY-016
Модуль RGB-светодиода KY-016 — это простой и доступный компонент для проектов сmulticoloured световыми эффектами. Поддерживается на всех основных платформах: Arduino, ESP-IDF, ESPHome, PlatformIO и MicroPython.
Рекомендации
Для стабильной работы используйте пины, поддерживающие ШИМ. На ESP32 почти все пины имеют ШИМ, кроме 34–39. Убедитесь, что на каждом канале установлены соответствующие резисторы (на модуле они уже есть). Для плавности цветов используйте 8-битное или более высокое разрешение ШИМ.
Безопасность прежде всего
Проверьте полярность подключения: общий катод (GND) должен быть правильно соединён. Избегайте переполюсовки. Хотя на модуле установлены резисторы, избегайте коротких замыканий между выводами R, G, B. При питании 5В убедитесь, что логические уровни ESP32 (3.3В) всё равно корректно управляют светодиодами через ШИМ.
Готовы начать создавать?
Теперь, когда у вас есть вся необходимая информация, пора интегрировать KY-016 в проект на ESP32 и воплотить идеи в жизнь!
Изучите альтернативные модули
Ищете альтернативы KY-016? Посмотрите эти похожие KY-0xx модули — возможно, они лучше подойдут под задачи вашего проекта.

Модуль двухцветного светодиода KY-011
Модуль KY-011 представляет собой двухцветный светодиод 3 мм с общей катодной конфигурацией. Может излучать красный и зелёный свет...

Аналоговый датчик температуры KY-013
Модуль KY-013 использует термистор NTC для измерения температуры в диапазоне от -55°C до +125°C с сопротивлением 10 кОм...

Модуль лазерного передатчика KY-008
Модуль KY-008 представляет собой лазерный передатчик, излучающий красный лазерный луч длиной волны 650 нм с мощностью излучения 5 мВт...