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

Содержание

В этой статье мы подключим ультразвуковой дальномер-эхолокатор HC-SR04 к Arduino и научимся с помощью него определять расстояние до цели.

Инструкция по подключению ультразвукового датчика расстояния HC-SR04 к Arduino

    или иная совместимая плата; ;

  • соединительные провода (рекомендую вот такой набор); (breadboard);
  • персональный компьютер со средой разработки Arduino IDE.

1 Принцип действияультразвукового дальномера HC-SR04

Действие ультразвукового дальномера HC-SR04 основано на принципе эхолокации. Он излучает звуковые импульсы в пространство и принимает отражённый от препятствия сигнал. По времени распространения звуковой волны к препятствию и обратно определяется расстояние до объекта.

Запуск звуковой волны начинается с подачи положительного импульса длительностью не менее 10 микросекунд на ножку TRIG дальномера. Как только импульс заканчивается, дальномер излучает в пространство перед собой пачку звуковых импульсов частотой 40 кГц. В это же время на ножке ECHO дальномера появляется логическая единица. Как только датчик улавливает отражённый сигнал, на выводе ECHO появляется логический ноль. По длительности логической единицы на ножке ECHO (Задержка эхо на рисунке) определяется расстояние до препятствия.

Принцип действия ультразвукового дальномера HC-SR04 Принцип действия ультразвукового дальномера HC-SR04

Диапазон измерения расстояния дальномера HC-SR04 до 4 метров с разрешением 0,3 см. Угол наблюдения 30, эффективный угол 15. Ток потребления в режиме ожидания 2 мА, при работе 15 мА.

2 Схема подключения датчика расстояния

Питание ультразвукового дальномера осуществляется напряжением +5 В. Два других вывода подключаются к любым цифровым портам Arduino, мы подключим к 11 и 12.

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

3 Получение дистанции до объекта с датчика HC-SR04

Теперь напишем скетч, определяющий расстояние до препятствия и выводящий его в последовательный порт. Сначала задаём номера выводов TRIG и ECHO это 12 и 11 пины. Затем объявляем триггер как выход, а эхо как вход. Инициализируем последовательный порт на скорости 9600 бод. В каждом повторении цикла loop() считываем дистанцию и выводим в порт.

Функция getEchoTiming() генерирует импульс запуска. Она как раз создаёт тот 10-микросекундный импульс, который является триггером для начала излучения дальномером звукового пакета в пространство. Далее она запоминает время от начала передачи звуковой волны до прихода эха.

Функция getDistance() рассчитывает дистанцию до объекта. Из школьного курса физики мы помним, что расстояние равно скорость умножить на время: S = V×t Скорость звука в воздухе 340 м/сек, время в микросекундах мы знаем (переменная duration). Чтобы получить время duration в секундах, нужно разделить его на 1 000 000. Так как звук проходит двойное расстояние до объекта и обратно нужно ещё разделить результат пополам. Вот и получается, что расстояние до объекта S = 34000 см/сек × duration / 1 000 000 сек / 2 = 1,7 см/сек / 100, что мы и написали в скетче.

Операцию умножения микроконтроллер выполняет быстрее, чем операцию деления, поэтому :100 я заменил на эквивалентное ×0,01.

4 Библиотека для работы с эхолокатором HC-SR04

Также для работы с ультразвуковым дальномером написано множество библиотек. Например, вот эта библиотека Ultrasonic. Установка библиотеки происходит стандартно: скачать, разархивировать в директорию /libraries/, которая находится в папке с Arduino IDE. После этого библиотекой можно пользоваться.

Установив библиотеку, напишем новый скетч.

Результат его работы тот же в мониторе последовательного порта выводится дистанция до объекта в сантиметрах.

Если в скетче написать float dist_cm = ultrasonic.Ranging(INC); дистанция будет отображаться в дюймах.

5 Выводы по работе с сонаром HC-SR04

Итак, мы с вами подключили к Arduino ультразвуковой дальномер HC-SR04 и получили с него данные двумя разными способами: с использованием специальной библиотеки и без.

Преимущество использования библиотеки в том, что количество кода значительно сокращается и улучшается читаемость программы, вам не приходится вникать в тонкости работы устройства и вы сразу же можете его использовать. Но в этом же кроется и недостаток: вы хуже понимаете, как работает устройство и какие в нём происходят процессы. В любом случае, каким способом пользоваться решать только вам.


Источник: soltau.ru