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

Содержание

Ультразвуковые датчики в настоящее время находят широкое применение для измерений расстояния, измерения уровня воды и других подобных задач. С их помощью можно эффективно и точно измерять небольшие расстояния. В этом проекте мы будем использовать ультразвуковой датчик для определения расстояния от датчика до препятствия. Принцип измерения расстояния с помощью ультразвукового датчика основан на эффекте эхо (ECHO). Когда звуковая волна излучается в окружающее пространство то, если она встречает на своем пути препятствие, она отражается от него и возвращается обратно к источнику в виде эхо. Все, что нам нужно сделать в этом случае, это определить время, за которое звуковая волна достигнет препятствия и вернется обратно. Поскольку скорость звука нам известна, то после небольших вычислений мы сможем на основе этого измеренного времени определить расстояние до препятствия.

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

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress) или Pro Mini.
  2. Ультразвуковой датчик HC-SR04 (купить на AliExpress).
  3. ЖК дисплей 16×2 (купить на AliExpress).
  4. Шкала (линейка).
  5. Батарейка на 9 В.
  6. Макетная плата.
  7. Соединительные провода.

Принцип работы ультразвукового датчика HC-SR04

Внешний вид ультразвукового датчика HC-SR04

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

  1. Вначале с формируется сигнал высокого уровня длительностью 10 мкс, который запускает в работу ультразвуковой датчик.
  2. Затем модуль автоматически посылает 8 импульсов с частотой 40 кГц, а затем проверяет приняты они или нет.
  3. Если эти излученные сигналы принимаются, то вычисляется время между временем передачи этих импульсов и их приемом.

Расстояние затем можно рассчитать по следующей формуле:

Distance= (Time x Speed of Sound in Air (340 m/s))/2

где Time – измеренное датчиком время;
Speed of Sound in Air – скорость звука в воздухе, равная 340 м/с.

Временные диаграммы

Как уже указывалось, измерение расстояний осуществляется на основе эхо. Вначале передается импульс длительностью 10 мкс чтобы запустить модуль в работу. После этого модуль автоматически передает 8 импульсов с частотой 40 кГц (то есть ультразвуковая частота) и проверяет эхо – то есть не вернулись ли эти импульсы обратно, отразившись от препятствия. Если импульсы вернулись обратно, то расстояние до препятствия можно рассчитать по следующей формуле:

Distance= (time x speed)/2

В этой формуле мы разделили произведение скорости и времени на 2 потому что измеренное время равно сумме времен распространения звуковой волны до препятствия и обратно. То есть время, чтобы звук достиг препятствия, равно половине времени, измеренного датчиком.

Временные диаграммы работы модуля приведены на следующем рисунке:

Работа схемы

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

Схема устройства для измерения расстояний с помощью 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.

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

Distance= (travel time/2) * speed of sound

где speed of sound (скорость звука) составляет примерно 340 м/с.

Затем на ЖК дисплее 16×2 производится отображение измеренного расстояния.

Исходный код программы

В представленном участке кода мы производим измерение времени с помощью функции pulseIn(pin). Затем после выполнения необходимых вычислений мы показываем результат на ЖК дисплее 16×2.


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