Измерение расстояния с помощью ультразвукового датчика на Arduino

Измерение расстояния ультразвуковым датчикомУльтразвуковые датчики — отличные инструменты для измерения расстояния и обнаружения объектов без какого-либо фактического контакта с физическим миром. Данный датчик используется, например, для измерения уровня жидкости, в автомобилях в системах самостоятельной парковки или для предотвращения столкновений. В предыдущих статьях, мы уже разбирали работу такого датчика, и даже приводили пример программы на Ардуино, чтобы увидеть его возможности.

В этом мини-проекте мы будем использовать ультразвуковой датчик HC-SR04 для определения расстояния до препятствия от датчика. Основной принцип ультразвукового измерения расстояния основан на эхо. Когда звуковые волны распространяются в окружающей среде, волны возвращаются обратно к источнику в виде эхо после столкновения с препятствием. Таким образом, нам нужно будет только рассчитать время прохождения обоих звуков, означающее исходящее время и время возвращения в исходное положение после столкновения с препятствием. Поскольку скорость звука нам известна, то после некоторых вычислений мы сможем вычислить и расстояние. Мы будем использовать специальную формулу в этом мини-проекте для измерения расстояния на Arduino, так что давайте начнем.

Читать также:  Комплект для тренировки реакции своими руками

Используемые компоненты

  1. Arduino UNO или Pro mini (можно заказать здесь)
  2. Ультразвуковой датчик HC-SR04 (можно заказать здесь)
  3. ЖК-дисплей 16×2 (можно заказать здесь)
  4. Потенциометр (можно заказать здесь)
  5. Макетная плата (можно заказать здесь)
  6. 9 вольтовая батарейка
  7. Соединительные провода

Ультразвуковой датчик

Существует много типов датчиков расстояния работающих в паре с Arduino, но в нашем мини-проекте мы решили использовать HC-SR04 для измерения расстояния в диапазоне от 2 см до 400 см с точностью до 3 мм. Данный датчик состоит из ультразвукового передатчика, приемника и схемы управления. Принцип работы ультразвукового датчика следующий:

  1. Сигнал высокого уровня отправляется в течение 10 мкс с использованием триггера.
  2. Датчик автоматически отправляет восемь сигналов частотой 40 кГц, а затем определяет, получен ли импульс или нет.
  3. Если сигнал принимается, то он идет через высокий уровень. Время HIGH продолжительности — это временной промежуток между отправкой и получением сигнала.

Вот формула расчета:

Расстояние = (время x скорость звука в воздухе (340 м/с))/2

Ультразвуковой датчик
Ультразвуковой датчик HC-SR04

Читать также:  Библиотеки Ардуино

Работа датчика

Датчик работает на природном явлении эхо звука. Импульс отправляется примерно на 10 мкс, после чего модуль автоматически посылает 8 циклов ультразвукового сигнала частотой 40 кГц. Сигнал после столкновения с препятствием возвращается обратно и улавливается приемником. Таким образом, расстояние препятствия от датчика просто рассчитывается по формуле:

Расстояние = (время х скорость)/2

Здесь мы разделили произведение скорости и времени на 2, т.к. время — это общее время, которое потребовалось, для достижения препятствия и возвращения обратно. Таким образом, время, необходимое для достижения препятствия, составляет лишь половину общего времени.

Диаграмма HC-SR04

Схема сборки и объяснение

Схема измерения расстояния

Принципиальная схема Arduino и ультразвукового датчика для измерения расстояния показана выше. В схемных соединениях контакты «trigger» и «echo» ультразвукового датчика напрямую подключены к контактам 18 (A4) и 19 (A5) платы Arduino. ЖК-дисплей 16×2 подключен к плате Arduino в 4-битном режиме. Управляющие контакты RS, RW и En напрямую подключены к контактам 2, GND и 3 платы Arduino. А контакты данных D4-D7 подключены к контактам 4, 5, 6 и 7 платы Arduino.

Читать также:  ШИМ-сигнал в Python

Прежде всего, нам нужно запустить ультразвуковой датчик для передачи сигнала с помощью Arduino, а затем дождаться получения сигнала echo. Arduino считывает время между запуском и получением эха. Мы знаем, что скорость звука составляет около 340 м/с, поэтому мы можем рассчитать расстояние, используя данную формулу:

Расстояние = (время в пути/2) * скорость звука

Где, скорость звука около 340 м в секунду.

ЖК-дисплей 16×2 используется для отображения расстояния.

Код программы с использованием ультразвукового датчика и Arduino

Полный код программы для этого мини-проекта приведен внизу этой статьи. В коде мы считываем время с помощью pulseIn(pin). Затем выполняем вычисления и отображаем результат на ЖК-дисплее, используя соответствующие функции.

Полный код программы на Ардуино для датчика HC-SR04

Работа ультразвукового датчика для измерения расстояния

С Уважением, МониторБанк

Добавить комментарий