Ультразвуковой дальномер HC-SR04: устройство и подключение к Arduino

Как работает ультразвуковой модуль HC-SR04, какие у него характеристики и как собрать на нём поворотную сигнализацию с сервоприводом и динамиком.
Эхолокация на одной плате
HC-SR04 — один из самых распространённых датчиков расстояния в любительской робототехнике. На небольшой плате размещены излучатель и приёмник ультразвука, а также вся необходимая обвязка. Модуль работает по принципу эхолокации: излучатель посылает акустический сигнал, тот отражается от препятствия и возвращается к приёмнику. Скорость ультразвука в воздухе известна, поэтому по задержке между отправкой и приёмом сигнала легко вычислить дистанцию до преграды.
В сравнении с инфракрасными дальномерами у ультразвукового есть заметное преимущество: на результат не влияют ни освещение, ни цвет объекта. Слабое место — тонкие и пушистые предметы, расстояние до которых определяется с трудом.

Выводы и порядок измерения
У модуля четыре вывода с шагом 2,54 мм:
- VCC — питание +5 В;
- Trig (T) — вход запускающего сигнала;
- Echo (R) — выход с результатом измерения;
- GND — земля.
Измерение запускается импульсом длительностью 10 мкс на выводе Trig. Электроника модуля превращает его в пачку из 8 импульсов частотой 40 кГц и отправляет их через излучатель. Отражённые от препятствия импульсы улавливает приёмник, после чего на выводе Echo появляется выходной сигнал. Контроллеру остаётся измерить его ширину и пересчитать в расстояние: длительность в микросекундах, делённая на 58, даёт сантиметры, делённая на 148 — дюймы.
Технические характеристики
| Диапазон измерения | 2–500 см |
| Точность | 0,3 см |
| Эффективный рабочий угол | менее 15° |
| Угол измерений | 30° |
| Напряжение питания | 5 В |
| Ток покоя | менее 2 мА |
| Рабочий ток | 15 мА |
| Длительность импульса запуска | 10 мкс |
| Размеры | 45 × 20 × 15 мм |
Где применяют
Ультразвуковые дальномеры ставят в парковочные датчики, контроллеры уровня и устройства наблюдения за местностью. Но чаще всего HC-SR04 встречается в самодельных роботах, где он отвечает за обнаружение препятствий.
Пример: поворотная сигнализация
Наглядный проект — звуковая сигнализация, которая срабатывает, когда объект оказывается ближе 1 м от датчика. Модуль закреплён на платформе, которую сервопривод поворачивает в горизонтальной плоскости. Как только в зоне обнаружения появляется объект, платформа останавливается, а динамик звучит до тех пор, пока объект не отойдёт дальше.
Пьезоизлучатель, подключённый прямо к цифровому выводу, звучит очень тихо, поэтому в проекте используется динамик, включённый через транзистор. Для сборки понадобятся:
- плата Arduino;
- модуль HC-SR04;
- сервопривод и платформа для крепления сервопривода и датчика;
- динамик 8 Ом;
- резистор 500 Ом и транзистор КТ503Е;
- внешний источник питания 5 В для сервопривода;
- соединительные провода.

Что делает скетч
В скетче вывод Trig назначен на пин 12, Echo — на пин 13, сервопривод управляется с пина 9, динамик подключён к пину 8. Для дальномера используется библиотека Ultrasonic.h, для привода — стандартная Servo.h. Порог обнаружения задан константой DIST_DETECT, равной 100 см, частота звукового сигнала — 546.
В основном цикле сервопривод шаг за шагом поворачивает платформу от 0 до 180 градусов и обратно, меняя направление в крайних положениях. На каждом шаге расстояние считывается вызовом ultrasonic.Ranging(CM). Если значение больше нуля и меньше порога, функцией tone(PIN_SPEAKER, FREQ) включается звук, и программа продолжает опрашивать датчик, пока объект остаётся в зоне. Затем звук отключается командой noTone, выдерживается пауза 50 мс, и вращение продолжается. Текущие показания для контроля выводятся в последовательный порт на скорости 9600.


Если что-то не работает
- Платформа не вращается — стоит проверить наличие и полярность внешнего питания 5 В на сервоприводе, а также соединение «земли» Arduino с «землёй» внешнего источника.
- Динамик молчит при приближении объекта — нужно проверить подключение HC-SR04, посмотреть его показания в мониторе порта и убедиться, что динамик подсоединён правильно.