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

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

Как работает ультразвуковой модуль HC-SR04, какие у него характеристики и как собрать на нём поворотную сигнализацию с сервоприводом и динамиком.

Эхолокация на одной плате

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 В для сервопривода;
  • соединительные провода.
Схема подключения HC-SR04, сервопривода и динамика к Arduino

Что делает скетч

В скетче вывод 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, посмотреть его показания в мониторе порта и убедиться, что динамик подсоединён правильно.

← Все статьи