Подключение ультразвукового датчика HC-SR04 к Raspberry Pi — практическое руководство
В ранних проектах мы рассматривали датчики температуры, PIR-модули и базовую работу с GPIO. Ультразвуковой дальномер HC-SR04 популярен для измерения расстояния, но его 5-вольтовый выход нужно понизить до 3,3 В для защиты GPIO Raspberry Pi. Это руководство проведет через физику, электронику и Python-код для безопасного подключения и использования датчика.
Необходимые компоненты
- Ультразвуковой датчик HC-SR04
- Резистор 1 кОм
- Резистор 2 кОм
- Перемычки (male-to-female)
- Опционально: макетная плата
Принцип работы ультразвуковых датчиков
Звук распространяется в виде волн давления; частота определяет тональность. Ультразвуковые датчики излучают высокочастотный звук, неслышимый человеком, который отражается от объектов и возвращается как эхо. Измеряя время туда-обратно, встроенная электроника вычисляет расстояние, используя скорость звука (~343 м/с в воздухе).
Распиновка и функции HC-SR04
- Vcc — питание 5 В
- GND — земля
- TRIG — вход триггера; импульс 10 мкс запускает измерение
- ECHO — выходной импульс 5 В, ширина которого равна времени полета эха
Датчик выдает 5-вольтовый импульс на ECHO от момента обнаружения эха до готовности к следующему триггеру. Так как GPIO Pi терпит только 3,3 В, необходимо понизить напряжение.
Делитель напряжения
Простой делитель использует два последовательных резистора. С 5 В на ECHO входе, резистор 1 кОм (R1) и 2 кОм (R2) дадут 3,3 В на стыке:
Vout = Vin × (R2 / (R1 + R2))
Подключите 1 кОм между линией ECHO и GPIO Pi, а 2 кОм от этой точки к земле. Это защищает Pi и сохраняет точность измерений.
Схема подключения (на макетной плате)
Используйте следующие выводы Raspberry Pi:
Pin 2— 5 ВPin 6— GNDPin 16— GPIO 23 (TRIG)Pin 18— GPIO 24 (ECHO)
- Подключите контакты HC-SR04 к макетной плате: красный (Vcc), синий (TRIG), желтый (ECHO), черный (GND).
- Соедините шины питания макетной платы с 5 В и GND Pi.
- Подключите TRIG к GPIO 23 напрямую или через шину.
- Для линии ECHO: поставьте 1 кОм на шине от контакта
ECHOдатчика, затем 2 кОм к земле. Подключите GPIO 24 к точке между резисторами. - Проверьте все соединения перед включением Pi.
Python-код для измерения расстояния
Скрипт демонстрирует запуск датчика и интерпретацию ширины импульса эха для расчета расстояния в сантиметрах.
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
TRIG = 23
ECHO = 24
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
GPIO.output(TRIG, False)
time.sleep(2) # датчик стабилизируется
while True:
# Триггер: 10 мкс высокий импульс
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
# Ждем начала эха
pulse_start = time.time()
while GPIO.input(ECHO) == 0:
pulse_start = time.time()
# Ждем конца эха
pulse_end = time.time()
while GPIO.input(ECHO) == 1:
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150 # скорость звука в см/с
print("Distance: %0.2f cm" % distance)
time.sleep(1)
GPIO.cleanup()
Запуск скрипта покажет измерения расстояния в реальном времени. Настройте задержку или интервал триггера под вашу задачу.
Меры безопасности
- Никогда не подключайте
ECHOHC-SR04 напрямую к GPIO Pi без делителя напряжения. - Всегда питайте Pi и датчик от одной шины 5 В, чтобы избежать несоответствия напряжений.
- Проверьте даташит датчика на предмет максимальной рабочей температуры и рекомендуемой нагрузки.
Следуя этим шагам, вы получите надежную систему ультразвукового измерения расстояния, безопасную для Raspberry Pi и точную для робототехники и автоматизации.
Производственный процесс
- Сборка логгера температуры на Raspberry Pi с $5 I2C датчиком
- Профессиональный мониторинг температуры на Raspberry Pi с датчиком DS18B20
- Создание удалённого датчика температуры на Raspberry Pi и Python — пошаговое руководство
- Создание метеостанции на Raspberry Pi с ежедневными email-отчётами о погоде
- Компактный breakout для DHT температуры и влажности на Raspberry Pi — ATtiny85 и DHT22/DHT11
- Интеграция данных сенсоров в Raspberry Pi: практическое руководство
- Подключение ультразвукового датчика HC‑SR04 к Raspberry Pi 3 — полное руководство
- Управление светодиодом с PIR-датчиком движения на Raspberry Pi
- Построение низкобюджетного датчика влажности почвы на Raspberry Pi для умного полива
- Чтение линейного Холловского датчика с Raspberry Pi: руководство по Java и особенности ADC0832