
Ультразвуковой датчик расстояния Arduino
Описание
Ультразвуковой датчик расстояния HC-SR04(рисунок 1), входящий в состав ARDUINO SENSOR KIT, является прибором бесконтактного типа, обеспечивающим высокоточное измерение в диапазоне от 20 мм до 4000 мм. На работу данного датчика не оказывают существенного воздействия электромагнитные излучения и солнечная энергия. В комплект с модулем ультразвукового датчика Аrduino также входят ресивер и трансмиттер (обозначены соответствующими буквами R и Т на плате).

Рисунок 1 - Ультразвуковой датчик расстояния HC-SR04.
Ультразвуковой датчик расстояния состоит из двух мембран, одна из которых генерирует звук, а другая регистрирует отображенное эхо (в общем случае мы имеем дело со звуковым генератором и микрофоном). Звуковой генератор создает маленький, с некоторым периодом ультразвуковой импульс и запускает таймер. Вторая мембрана регистрирует прибытие отображенного импульса и останавливает таймер. По времени таймера и по скорости звука возможно вычислить пройденное расстояние звуковой волны.
Модуль ультразвукового датчика расстояния HC-SR04 содержит дополнительную электрическую обвязку с предохранителями, резисторами и конденсаторами. Технические характеристики ультразвукового датчика расстояния HC-SR04 представлены в таблице.
Таблица – Технические характеристики ультразвукового датчика расстояния HC-SR04.
Параметр | Значение |
---|---|
Номинальное рабочее напряжение | 5 В |
Рабочий ток | 15 мА |
Сила тока в пассивном состоянии | не более 2 мА |
Обзорный угол | 15° |
Измерительный угол | 30° |
Сенсорное разрешение | 3 мм |
Измеряемое расстояние | от 20 мм до 4000 мм |
Ширина импульса | 10-6 с |
Рабочая температура | от 0 °С до + 60 °С |
Габаритные размеры | 45 мм х 20 мм х 15 мм |
Точность ультразвукового датчика расстояния зависит от нескольких факторов:
- температуры и влажности воздуха;
- расстояния до объекта;
- расположения объекта относительно датчика (согласно диаграммы излучения);
- качества исполнения элементов модуля датчика.
В реальных условиях из-за фактора температуры и влажности воздуха HC-SR04 может ошибаться от 1 до 3-5 см.
Фактор расстояния до объекта важен, т.к. растет вероятность отражения от соседних предметов, к тому же и сам сигнал затухает с расстоянием.
Подключение ультразвукового датчика расстояния
На плате ультразвукового датчика расстояния имеются четыре вывода:
- VСС, положительное напряжение постоянного тока 5 В;
- Trig, цифровой вход. Для запуска измерения необходимо подать на этот вход импульс (логическую единицу) длительностью 10 мкс. Cледующий импульс рекомендуется подавать не ранее чем через 50 мс, что связано со временем обработки первого импульса;
- Echo, цифровой выход. После обработки отраженного сигнала, на этот выход будет подан импульс (логическая единица), длительностью пропорциональной расстоянию до объекта;
- GND, заземление.
Распиновка ультразвукового датчика представлена на рисунке 2.

Рисунок 2 – Распиновка ультразвукового датчика расстояния HC-SR04.
Для его подключения потребуются:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- провода типа «папа-мама»;
- ультразвуковой датчик расстояния.
Схема подключения модуля зуммера представлена на рисунке 3. Дополнительно для индикации в схеме можно использовать светодиод или модуль зуммера Arduino.

Рисунок 3 – Подключение ультразвукового датчика расстояния HC-SR04 к Arduino UNO.
Схемы подключения модуля зуммера к микроконтроллерам Arduino Uno, Arduino Nano или Arduino Mega принципиально ничем не отличаются.
Подключается ультразвуковой датчик расстояния к Arduino Uno на схеме следующим образом:
- GND - GND;
- VCC - 5V;
- Trig – к пину 12;
- Echo – к пину 11.
После сборки электрической схемы, необходимо загрузить управляющую программу (скетч) в микроконтроллер.
Для облегчения работы с ультразвуковым датчиком расстояния Arduino можно использовать различные библиотека (Ultrasonic, NewPing и др.) Например, библиотека NewPing не имеет проблем с пинговыми доступами и добавляет ряд функций и особенностей, таких как:
- возможность работы с различными ультразвуковыми датчиками;
- возможность работы с датчиком расстояния через один пин;
- отсутствие отставания на 1 секунду при отсутствии пинга эха;
- встроенный цифровой фильтр для простой коррекции ошибок;
- максимально точный расчет расстояния.
Использование одного пина может понадобиться, если ведется работа с большим проектом и не хватает свободных пинов. Для подключения через один пин необходимо установить между контактами Trig и Echo резистор номиналом 2.2K и подключить к Arduino контакт Trig.
Cледует отметить, что ультразвуковой датчик расстояния не рекомендуется подключать непосредственно к подключенной к электропитанию плате микроконтроллера, необходимо отключить электропитание платы в момент подключения датчика, во избежание нарушения нормальной работы ультразвукового датчика расстояния (первым должен быть подключен вывод GND).
Применение
Ультразвуковой датчик расстояния Arduino отличается своей относительной простотой, достаточной точностью и доступностью, что делает его востребованным во многих робототехнических проектах.
Он может быть использован в качестве прибора, помогающего роботу:
- обнаруживать и объезжать препятствия;
- сигнализировать о приближении или удалении объектов;
- получать размеры предметов;
- моделировать карту помещения.
Кроме как в роботах и робототехнических системах, датчик может быть использован в моделях и в других устройствах.