Измеряем расстояние (ультразвук)

Иногда приходится определять расстояние до препятствия. Существуют разные способы. Здесь рассмотрим ультразвуковой «дальномер»

Принцип работы ультразвукового дальномера

Сенсор излучает короткий ультразвуковой импульс (в момент времени 0), который отражается от объекта и принимается сенсором. Расстояние рассчитывается исходя из времени до получения эха и скорости звука в воздухе.

Паять ничего не надо — «все давно уже спаяно за нас» — есть такой модуль: HC-SR04Тут есть и излучатель (Т), и приемник (R) ультразвукового сигнала. Ну и все необходимые элементы согласования с ТТЛ.

Характеристики ультразвукового дальномера HC-SR04

  • Простота в использовании и 4-контактное подключение.
  • Диапазон измерения: от 2 см до 400 см.
  • Точность измерения: ± 1 см (при максимальной дальности ± 3 см).
  • Угол измерения: 15º.
  • Ультразвуковой диапазон работы на частоте 40 кГц.
  • Рабочее напряжение 4,8 В до 5,5 В.
  • Диапазон рабочих температур: 0 ° С до 60 ° С.

Модуль имеет четыре вывода: питание, вход и выход. Для замера расстояния надо подать импульс на вход, а затем померить запаздывание появления импульса на выходе.

Для примера: подключаем модуль по питанию, вход модуля (Trig) к pin8; выход модуля (Echo) — к pin9.

Первый скетч построен на использовании библиотеки ultrasonic. Она позволяет сразу получить расстояние в привычных единицах длины.

#include "Ultrasonic.h"
Ultrasonic ultrasonic(8, 9);
void setup()
{
Serial.begin(9600);
}
void loop()
{
float dist_cm = ultrasonic.Ranging(CM);
Serial.println(dist_cm);
delay(1000);
}

Библиотеку можно найти во многих местах, например, на общепринятом ресурсе Hithub

(сразу возникнет вопрос про «СМ» 🙂  — если True, то результат в сантиметрах, иначе — в дюймах)

Ничего «заумного» в библиотеке нет, так, что и без нее довольно просто написать такой же тестовый пример.Оба примера с периодом в секунду выдают расстояние до препятствия в сантиметрах в монитор последовательного интерфейса.

По материалам курса робототехники

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

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".