Обзор
KY-051 — это универсальный четырехканальный модуль преобразователя логических уровней, который позволяет безопасно соединять устройства, работающие при разных напряжениях (например, 3.3В и 5В). Благодаря двунаправленной передаче сигналов, он обеспечивает совместимость и защищает компоненты от повреждений, вызванных несоответствием уровней напряжения.
KY-051 предназначен для безопасного сопряжения устройств с разным напряжением питания. Он имеет 4 канала, которые могут преобразовывать цифровые сигналы как вверх (step-up), так и вниз (step-down), упрощая связь между микроконтроллерами и периферией.
О преобразователе уровней KY-051
Преобразователь уровней KY-051, также известный как Level Shifter, разработан для безопасного соединения устройств, работающих на различных уровнях напряжения. Он оснащен четырьмя (или восемью, в зависимости от чипа TXS0108E/BSS138) каналами, которые могут преобразовывать цифровые сигналы, облегчая связь между микроконтроллерами и датчиками с разными требованиями к напряжению.
⚡ Ключевые особенности
- Двунаправленность — Сигналы автоматически преобразуются в обе стороны (вверх и вниз).
- Четыре канала — Возможность одновременного преобразования до 4 независимых линий (например, SPI или I2C).
- Безопасность — Защищает чувствительные входы 3.3В контроллеров от сигналов 5В.
Приобретите KY-051
Цены могут изменяться в зависимости от продавца и количества модулей в упаковке.
Характеристики KY-051
Полные технические характеристики модуля преобразователя уровней KY-051.
Распиновка KY-051
Модуль KY-051 представляет собой 8-пиновый (на каждой стороне по 4 сигнальных пина) двунаправленный преобразователь:
- VCCb ≥ VCCa — напряжение на стороне B всегда должно быть выше или равно напряжению на стороне A.
- Двунаправленность — сигналы автоматически идут от A к B или от B к A.
- Поддержка протоколов — идеально для I2C, SPI, UART.
| Название | Тип | Описание | Примечания |
|---|---|---|---|
| VCCa | Питание | Опорное низкое напряжение | 1.2В – 3.6В (например, 3.3В) |
| VCCb | Питание | Опорное высокое напряжение | 1.7В – 5.5В (например, 5В) |
| GND | Земля | Общий минус | Общий для обеих сторон |
| A1-A4 | I/O | Линии низкого напряжения | Соединяются с 3.3В устройством |
| B1-B4 | I/O | Линии высокого напряжения | Соединяются с 5В устройством |
Подключение KY-051 к ESP32
Для сопряжения ESP32 (3.3В логика) с устройством на 5В:
| Вывод KY-051 | Подключение | Вывод ESP32 / Устройства |
|---|---|---|
| VCCa | → | 3.3V (ESP32) |
| VCCb | → | 5V (Внешнее питание / USB) |
| GND | → | GND (Общий) |
| A1-A4 | → | GPIO (3.3V) ESP32 |
| B1-B4 | → | GPIO (5V) Устройства |
Отладка и ошибки
Распространенные проблемы
Нет сигнала на выходе
Нестабильная передача данных (I2C)
Примеры кода KY-051
Ниже приведены примеры для проверки работоспособности преобразователя.
Arduino IDE
Тест прохождения сигнала
C++
// Определяем пины для теста
#define LOW_VOLT_PIN 2 // Подключен к стороне VCCa (например, 3.3В логика)
#define HIGH_VOLT_PIN 3 // Подключен к стороне VCCb (например, 5В логика)
void setup() {
pinMode(LOW_VOLT_PIN, INPUT); // Читаем сигнал с одной стороны
pinMode(HIGH_VOLT_PIN, OUTPUT); // Выводим на другую сторону
Serial.begin(9600);
Serial.println("KY-051 Voltage Level Shifter Test");
}
void loop() {
// Читаем низковольтный сигнал
int low_signal = digitalRead(LOW_VOLT_PIN);
// Дублируем его на высоковольтную сторону
digitalWrite(HIGH_VOLT_PIN, low_signal);
Serial.print("Вход (3.3В): ");
Serial.print(low_signal);
Serial.print(" -> Выход (5В): ");
Serial.println(low_signal); // Сигнал транслируется аппаратно модулем
delay(500);
}
Этот код предназначен для базовой проверки: вы подаете сигнал на одну сторону модуля и проверяете его наличие на другой. Помните, что модуль преобразует уровни аппаратно, код лишь помогает визуализировать процесс.
ESP-IDF Native
Конфигурация GPIO
C/C++
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#define LOW_VOLT_PIN GPIO_NUM_2 // Сторона 3.3В
#define HIGH_VOLT_PIN GPIO_NUM_3 // Сторона 5В
void app_main() {
// Настройка пинов
gpio_reset_pin(LOW_VOLT_PIN);
gpio_set_direction(LOW_VOLT_PIN, GPIO_MODE_INPUT);
gpio_reset_pin(HIGH_VOLT_PIN);
gpio_set_direction(HIGH_VOLT_PIN, GPIO_MODE_OUTPUT);
printf("KY-051 Level Shifter Test Started\n");
while (1) {
int level = gpio_get_level(LOW_VOLT_PIN);
gpio_set_level(HIGH_VOLT_PIN, level);
printf("Signal Level: %d\n", level);
vTaskDelay(pdMS_TO_TICKS(500));
}
}
Пример на ESP-IDF показывает простую трансляцию логического уровня через GPIO, что позволяет убедиться в корректности работы всей цепочки соединений.
MicroPython
Простой скрипт
Python
import machine
import time
# Настройка пинов
low_pin = machine.Pin(2, machine.Pin.IN)
high_pin = machine.Pin(3, machine.Pin.OUT)
print("KY-051 Testing...")
while True:
val = low_pin.value()
high_pin.value(val)
print("Логический уровень:", val)
time.sleep(0.5)
Итоги
KY-051 Voltage Translator — это незаменимый инструмент для любого разработчика электроники, работающего с современными 3.3В контроллерами (ESP32, Raspberry Pi) и классической 5В периферией.
Используйте KY-051 для защиты пинов ESP32 при подключении датчиков, работающих строго от 5В. Это предотвратит выход контроллера из строя.
Никогда не подавайте 5В напрямую на пины VCCa или сигнальные линии стороны A, если они соединены с 3.3В микроконтроллером.
Теперь у вас есть вся информация для интеграции преобразователя уровней в ваш следующий проект на ESP32!