Приобретите KY-050 Ультразвуковой датчик расстояния
Обзор
Модуль KY-050 — это ультразвуковой датчик расстояния, способный измерять дистанцию от 2 см до 300 см с разрешением около 3 мм. Он излучает ультразвуковой импульс частотой 40 кГц и измеряет время, необходимое для возвращения эхо-сигнала, что позволяет точно рассчитывать расстояние до объектов.
KY-050 — это бесконтактный датчик, работающий по принципу эхолокации. Модуль идеально подходит для обнаружения препятствий, измерения уровня жидкостей или сыпучих материалов, а также для создания систем парковки в различных робототехнических проектах.
Быстрая навигация
Где купить
Магазины
* Цены указаны для ознакомления и могут меняться в зависимости от продавца и региона доставки.
Характеристики KY-050
Полные технические сведения о модуле KY-050.
Распиновка KY-050
Модуль имеет 4 вывода, стандартных для ультразвуковых датчиков типа HC-SR04:
Быстрые советы
- 🔌 Протокол Trigger/Echo — время полёта звука.
- ⚡ Требует 5В для стабильной работы, 3.3В может быть недостаточно.
- ⚠️ Вывод Echo выдает 5В, для ESP32 нужен делитель напряжения.
| Pin | Имя | Описание |
|---|---|---|
| 1 | VCC | Питание +5В |
| 2 | Trig | Вход запуска (Триггер) |
| 3 | Echo | Выход эха (Сигнал) |
| 4 | GND | Общий (Земля) |
Подключение KY-050 к ESP32
Для сопряжения модуля KY-050 с контроллером ESP32 используйте следующую схему:
| Пин KY-050 | Пин ESP32 | Описание |
|---|---|---|
| VCC | VIN / 5V | Требуется 5В |
| Trig | GPIO5 | Любой GPIO (выход) |
| Echo | GPIO18 | Любой GPIO (вход) |
| GND | GND | Общий |
Устранение неполадок KY-050
❌
Нет показаний расстояния
⚠️
Неверные или «прыгающие» значения
Примеры кода KY-050
Готовые решения для различных платформ и сред разработки.
Arduino IDE
C++
Стандартный код для Arduino и ESP32
Этот скетч измеряет время возврата импульса и переводит его в сантиметры.
#define echoPin 7 // Пин для получения эхо-сигнала
#define triggerPin 8 // Пин для отправки триггерного импульса
// Определение переменных для хранения данных
int maximumRange = 300;
int minimumRange = 2;
long distance;
long duration;
void setup() {
pinMode(triggerPin, OUTPUT); // Установка пина триггера как выход
pinMode(echoPin, INPUT); // Установка пина эхо как вход
Serial.begin(9600);
Serial.println("KY-050 Измерение расстояния начато");
}
void loop() {
// Запуск измерения 10-микросекундным импульсом
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
// Измерение длительности HIGH сигнала на пине echo
duration = pulseIn(echoPin, HIGH);
// Расчет расстояния (звук проходит путь туда и обратно)
// Скорость звука 340 м/с или 1 см за 29.1 мкс
distance = duration / 58.2;
// Проверка на нахождение в допустимом диапазоне
if (distance >= maximumRange || distance <= minimumRange) {
Serial.println("Вне диапазона измерения");
} else {
Serial.print("Расстояние: ");
Serial.print(distance);
Serial.println(" см");
}
delay(500); // Пауза полсекунды между замерами
}
MicroPython
Python
Для ESP32 и Raspberry Pi Pico
import machine
import time
# Настройка пинов для ESP32
TRIGGER_PIN = machine.Pin(5, machine.Pin.OUT)
ECHO_PIN = machine.Pin(18, machine.Pin.IN)
def measure_distance():
# Обеспечиваем чистый старт
TRIGGER_PIN.off()
time.sleep_us(2)
# Посылаем триггерный импульс
TRIGGER_PIN.on()
time.sleep_us(10)
TRIGGER_PIN.off()
# Ждем начала эха
while ECHO_PIN.value() == 0:
start_time = time.ticks_us()
# Ждем окончания эха
while ECHO_PIN.value() == 1:
end_time = time.ticks_us()
# Считаем время и дистанцию
duration = end_time - start_time
distance = duration / 58.2
return distance
while True:
dist = measure_distance()
if 2 <= dist <= 300:
print("Расстояние: {:.2f} см".format(dist))
else:
print("Вне диапазона")
time.sleep(0.5)
Итоги
Модуль KY-050 является незаменимым инструментом для измерения расстояния в бюджетных проектах. Его простота подключения и высокая точность в пределах 3 метров делают его отличным выбором для начинающих и профессионалов.
💡 Рекомендации
Для повышения точности проводите несколько измерений подряд и вычисляйте среднее значение. Используйте библиотеку NewPing для Arduino, чтобы избежать блокировок кода.
🛡️ Безопасность
Не забывайте про защиту GPIO ESP32 при подключении к пину Echo. Контакт с 5В может необратимо повредить контроллер.
Готовы начать сборку?
Используйте все преимущества KY-050 в ваших DIY проектах прямо сейчас!