Ультразвуковой датчик расстояния принцип работы

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

Датчик расстояния в проектах Arduino

Способность ультразвукового датчика определять расстояние до объекта основано на принципе сонара – посылая пучок ультразвука, и получая его отражение с задержкой, устройство определяет наличие объектов и расстояние до них. Ультразвуковые сигналы, генерируемые приемником, отражаясь от препятствия, возвращаются к нему через определенный промежуток времени. Именно этот временной интервал становится характеристикой помогающей определить расстояние до объекта.

Описание датчика HC SR04

Ультразвуковой датчик расстояния принцип работыДатчик расстояния Ардуино является прибором бесконтактного типа, и обеспечивает высокоточное измерение и стабильность. Диапазон дальности его измерения составляет от 2 до 400 см. На его работу не оказывает существенного воздействия электромагнитные излучения и солнечная энергия. В комплект модуля с HC SR04 arduino также входят ресивер и трансмиттер.

Ультразвуковой дальномер HC SR04 имеет такие технические параметры:

  • Питающее напряжение 5В;
  • Рабочий параметр силы т ока – 15 мА;
  • Сила тока в пассивном состоянии -6 с.

Ультразвуковой датчик расстояния принцип работы

Датчик оснащен четырьмя выводами (стандарт 2, 54 мм):

  • Контакт питания положительного типа – +5В;
  • Trig (Т) – выход сигнала входа;
  • Echo (R) – вывод сигнала выхода;
  • GND – вывод «Земля».

Где купить модуль SR04 для Ардуино

Датчик расстояния – достаточно распространенный компонент и его без труда можно найти в интернет-магазинах. Самые дешевые варианты (от 40-60 рублей за штуку), традиционно на всем известном сайте.

Схема взаимодействия с Arduino

Для получения данных, необходимо выполнить такую последовательность действий:

  • Подать на выход Trig импульс длительностью 10 микросек;
  • В ультразвуковом дальномере hc sr04 подключенном к arduino произойдет преобразование сигнала в 8 импульсов с частотой 40 кГц, которые через излучатель будут посланы вперед;
  • Когда импульсы дойдут до препятствия, они отразятся от него и будут приняты приемником R, что обеспечит наличие входного сигнала на выходе Echo;
  • На стороне контроллера полученный сигнал при помощи формул следует перевести в расстояние.

При делении ширины импульса на 58.2, получим данные в сантиметрах, при делении на 148 – в дюймах.

Ультразвуковой датчик расстояния принцип работы

Подключение HC SR04 к Arduino

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

Ультразвуковой датчик расстояния принцип работы

Контакт земли подключаем к выводу GND на плате Arduino, выход питания соединяем с 5V. Выходы Trig и Echo подсоединяем к arduino на цифровые пины. Вариант подключения с помощью макетной платы:

Ультразвуковой датчик расстояния принцип работы

Библиотека для работы с HC SR04

Для облегчения работы с датчиком расстояния HC SR04 на arduino можно использовать библиотеку NewPing. Она не имеет проблем с пинговыми доступами и добавляет некоторые новые функции.

К особенностям библиотеки можно отнести:

  • Возможность работы с различными ультразвуковыми датчиками;
  • Может работать с датчиком расстояния всего через один пин;
  • Отсутствие отставания на 1 секунду при отсутствии пинга эха;
  • Для простой коррекции ошибок есть встроенный цифровой фильтр;
  • Максимально точный расчет расстояния.

Скачать бибилотеку NewPing можно здесь

Точность измерения расстояния датчиком HC SR04

Точность датчика зависит от нескольких факторов:

  • температуры и влажности воздуха;
  • расстояния до объекта;
  • расположения относительно датчика (согласно диаграммы излучения);
  • качества исполнения элементов модуля датчика.

В основу принципа действия любого ультразвукового датчика заложено явление отражения акустических волн, распространяющихся в воздухе. Но как известно из курса физики, скорость распространения звука в воздухе зависит от свойств этого самого воздуха (в первую очередь от температуры). Датчик же, испуская волны и замеряя время до их возврата, не догадывается, в какой именно среде они будут распространяться и берет для расчетов некоторую среднюю величину. В реальных условиях из-за фактора температуры воздуха HC-SR04 может ошибаться от 1 до 3-5 см.

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

Также для повышения точности надо правильно направить датчик: сделать так, чтобы предмет был в рамках конуса диаграммы направленности. Проще говоря, “глазки” HC-SR04 должны смотреть прямо на предмет.Ультразвуковой датчик расстояния принцип работы

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

  • усредняются значения (несколько раз замеряем, убираем всплески, потом находим среднее);
  • с помощью датчиков (например, DHT11 или DHT22) определяется температура и вносятся поправочные коэффициенты;
  • датчик устанавливается на серводвигатель, с помощью которого мы “поворачиваем голову”, перемещая диаграмму направленности влево или вправо.
Читайте также:  Титан и титановые сплавы

Примеры использования датчика расстояния

Давайте рассмотрим пример простого проекта с платой Arduino Uno и датчиком расстояния HC SR04. В скетче мы будем получать значение расстояния до предметов и выводить их в монитор порта в среде Arduino IDE. Вы сможете легко изменить скетч и схему подключения, чтобы датчик сигнализировал о приближении или отдалении предмета.

Подключение датчика к ардуино

При написании скетча использовалась следующий вариант распиновки подключения датчика:

  • VCC: +5V
  • Trig – 12 пин
  • Echo – 11 пин
  • Земля (GND) – Земля (GND)

Пример скетча

Начнем работу с датчиком сразу с относительного сложного варианта – без использования внешних библиотек.

В данном скетче мы выполняем такую последовательность действий:

  • Коротким импульсом (2-5 микросекунды) переводим датчик расстояния в режим эхолокации, при котором в окружающее пространство высылаются ультразвуковые волны с частотой 40 КГц.
  • Ждем, пока датчик проанализирует отраженные сигналы и по задержке определит расстояние.
  • Получаем значение расстояния. Для этого ждем, пока HC SR04 выдаст на входе ECHO импульс, пропорциональный расстоянию. Мы определяем длительность импульса с помощью функции pulseIn, которая вернет нам время, прошедшее до изменения уровня сигнала (в нашем случае, до появления обратного фронта импульса).
  • Получив время, мы переводим его в расстояние в сантиметрах путем деления значения на константу (для датчика SR04 это 29.1 для сигнала «туда», столько же для сигнала «обратно», что в сумме даст 58.2).

Если датчик расстояния не выполняет считывание сигнала, то преобразование выходного сигнала никогда не примет значения короткого импульса – LOW. Так как у некоторых датчиков время задержки варьируется в зависимости от производителя, рекомендуется при использовании указанных скетчей выставлять его значение вручную (мы это делаем в начале цикла).

Если расстояние составляет более 3 метров, при котором HC SR04 начинает плохо работать, время задержки лучше выставлять более 20 мс, т.е. 25 или 30 мс.

Скетч с использованием библиотеки NewPing

Теперь давайте рассмотрим вариант скетча с использованием библиотеки NewPing. Код существенно упростится, т.к. все описанные ранее действия спрятаны внутри библиотеки. Все, что нам нужно сделать – создать объект класса NewPing, указав пины, с помощью которых мы подключаем датчик расстояния и использовать методы объекта. В нашем примере для получения расстояния в сантиметрах нужно использовать ping_cm().

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

Подключение HC-SR04 к Arduino может быть выполнено посредством использования одного пина. Такой вариант пригодится, если вы работаете с большим проектом и вам не хватает свободных пинов. Для подключения вам нужно просто установить между контактами TRIGи ECHO резистор номиналом 2.2K и подключить к ардуино контакт TRIG.

Краткие выводы

Ультразвуковые датчики расстояния достаточно универсальны и точны, что позволяет их использовать для большинства любительских проектов. В статье рассмотрен крайне популярный датчик HC SR04, который легко подключается к плате ардуино (для этого следует сразу предусмотреть два свободных пина, но есть вариант подключения и с одним пином). Для работы с датчиком существуют несколько бесплатных библиотек (в статье рассмотрена лишь одна из них, NewPing), но можно обойтись и без них – алгоритм взаимодействия с внутренним контроллером датчика достаточно прост, мы показали его в этой статье.

Исходя из собственного опыта, можно утверждать, что датчик HC-SR04 показывает точность в пределах одного сантиметра на расстояниях от 10 см до 2 м. На более коротких и дальних дистанциях возможно появление сильных помех, что сильно зависит от окружающих предметов и способа использования. Но в большинстве случаев HC-SR04 отлично справлялся со своей работой.

Сенсорные устройства, преобразующие электрический ток в волны ультразвука, называются ультразвуковые датчики. Их принцип действия аналогичен работе радара, они улавливают цель по отраженному сигналу. Скорость звука – величина постоянная. На основании этого таким датчиком вычисляется расстояние до некоторого объекта, соответствующее диапазону времени между выходом сигнала и его возвращением.

Устройство и принцип действия

Работают ультразвуковые датчики основываясь на взаимодействии колебаний ультразвука с измеряемым пространством. Ультразвуковые колебания – это механические колебания, которые совершаются с частотой выше 20000 герц, а значит, больше верхней границы колебаний звука, воспринимаемого человеком.

Распространение таких колебаний в газообразных, жидких и твердых средах зависит от параметров самой среды. Скорость передачи колебаний для газов равна 200-1300 метров в секунду, для твердых тел 1500-8000 м/с, для жидких веществ 1100-2000 м/с. Значительно зависит скорость колебаний от давления газа.

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

Ультразвуковые способы измерения являются электрическими, так как возбуждение колебаний и их прием осуществляется с помощью электричества. Чаще всего в датчиках применяют пьезоэлементы, преобразователи магнитострикционного вида. Для возбуждения колебаний ультразвуковой частоты применяется эффект растяжения и сжатия пьезокристалла, называемый обратным пьезоэффектом. Поэтому пьезоэлемент применяется как в качестве приемника колебаний, так и в качестве излучателя.

Читайте также:  Оборудование для столярного цеха

Излучатели магнитострикционного вида применяют эффект деформации ферромагнитов в магнитном поле. Излучатель стержневого вида выполнен в виде тонких листов ферромагнетика, на котором намотана катушка возбуждения.

Ультразвуковой датчик расстояния принцип работы

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

Чтобы получить значительные механические деформации применяют подмагничивание стержня. Магнитострикционные излучатели действуют в условиях резонанса, если частота поля возбуждения совпадает с колебаниями стержня, определяемыми по формуле:

Ультразвуковой датчик расстояния принцип работы

Где l — длина стержня, Е — модуль упругости, р — плотность.

В излучателе на основе пьезоэлемента применяется кварцевая пластина, к которой подключено переменное напряжение Uх, образующее электрическое поле по оси Х.

Ультразвуковой датчик расстояния принцип работы

Обратный эффект состоит в деформации пластины по оси Х. Относительное изменение размера пластины (толщины) равно:

Δa/a=kUx/a

Поперечный эффект состоит в деформации пластины по оси У. Относительное изменение толщины пластины равно:

Δl/l=kUx/a

Размеры пластины не влияют на величину продольной деформации. Поперечная деформация повышается с увеличением отношения l/а. При разности потенциалов до 2500 вольт имеется прямая зависимость деформации и напряжения. При высоких напряжениях деформация повышается не так интенсивно. Амплитуда колебаний доходит до наибольшего значения, когда частота напряжения и частота колебаний пластины совпадают. Частота продольных колебаний вычисляется:

Ультразвуковой датчик расстояния принцип работы

Модуль упругости определяется по оси Х. Модуль упругости по оси У влияет на частоту поперечных колебаний:

Ультразвуковой датчик расстояния принцип работы

Если сравнить два рассмотренных типа излучателей, то можно сделать вывод, что пьезоэлектрические излучатели могут обеспечить большую частоту колебаний ультразвука.

Рассмотрим работу датчика по времени прохождения сигнала. Обработка отраженного сигнала осуществляется в той же точке, откуда и излучается. Такой метод является непосредственным обнаружением.

Ультразвуковой датчик расстояния принцип работы

Рис 1

Ультразвуковые датчики в момент времени Т излучают сигнал (некоторый набор импульсов) длительностью ∆t, распространяющийся в среде со звуковой скоростью С. При достижении объекта сигналом, часть его отражается и возвращается в приемник за время Т1. Схема электронного устройства, предназначенная для обработки сигнала, определяет расстояние, вычисляя время Т1 — Т.

Для определения расстояния может использоваться схема с одной или двумя головками датчика. В случае с двумя головками, одна из них излучает сигнал, а вторая принимает отраженный сигнал.

Ультразвуковые датчики с одной головкой

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

Мертвое время вынуждает ультразвуковые датчики работать в «слепой зоне». Другими словами, когда объект расположен очень близко, то отраженный сигнал возвращается в измерительную головку настолько быстро, что она еще не перестроилась на работу приема, вследствие чего объект не обнаруживается.

Ультразвуковой датчик расстояния принцип работы

Рис 2

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

На рисунке 2 изображена схема функционирования датчика непосредственного обнаружения. С помощью импульса запуска схема возбуждения излучателя становится активной. Она формирует некоторый набор импульсов. Тем же импульсом запуска производится блокировка входа усилителя приемника. При отключении излучателя происходит разблокировка приемника.

Восстановление приемника происходит около 300 мкс. Это намного меньше времени успокоения излучателя. Вследствие этого параметры приемника не оказывают влияния на размер слепой зоны.

При нахождении объекта с необходимой способностью отражения в контролируемой зоне, отраженный сигнал возбуждает на мембране переменное напряжение высокой частоты, которое обрабатывается методами обнаружения сигналов аналогового типа: усиливается, ограничивается, приходит на компаратор.

Это напряжение превышает заданное значение порога обнаружения, что является сигналом того, что объект находится в контролируемой зоне. Схема электронного устройства фиксирует промежуток времени, который прошел с момента активации излучателя и создает на выходе электрический сигнал. Длина этого сигнала зависит от размера этого интервала времени, и передается на цифровой индикатор.

Схема управления после регистрации первого сигнала отражения задерживает создание следующего пускового импульса. При этом она ожидает вероятного прихода отраженного сигнала от наиболее удаленных объектов в контролируемой зоне.

Ультразвуковые датчики с двумя головками

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

Отслеживание порога

Размер слепой зоны является важным параметром ультразвукового датчика, который определяет его успех применяемости. Поэтому изготовители стараются снизить эту величину разными способами.

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

Это заставляет найти компромисс между точностью измерения, ложной тревоги и чувствительностью обнаружения. На рисунке 3 показан способ отслеживания порога обнаружения.

Ультразвуковой датчик расстояния принцип работы

Рис 3

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

Читайте также:  Работа электролобзиком для начинающих видео

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

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

Ультразвуковой датчик расстояния принцип работы

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

Интервал зондирования – это интервал расстояния обнаружения, который определяется только возможностями датчика в виде направленности и мощности луча, а также свойствами объекта.

Интервал настройки – это интервал расстояний, в котором можно регулировать датчик по месту для его наилучшего применения в конкретном случае. При этом необходимо учитывать расположение объекта относительно датчика и его свойства.

Необходимые знания: Ультразвуковой датчик расстояния принцип работыAndurite moodul, Ультразвуковой датчик расстояния принцип работыLCD moodul, Ультразвуковой датчик расстояния принцип работыLoendur /> Riistvaraline viide

Теория

Ультразвуковой датчик расстояния принцип работы

Ультразвуковой датчик расстояния определяет расстояние до объекта, измеряя время отображения звуковой волны от объекта. Частота звуковой волны находится в пределах частоты ультразвука, что обеспечивает концентрированное направление звуковой волны, так как звук с высокой частотой рассеивается в окружающей среде меньше. Типичный ультразвуковой датчик расстояния состоит из двух мембран, одна из которых генерирует звук, а другая регистрирует отображенное эхо. Образно говоря, мы имеем дело со звуковой колонкой и микрофоном. Звуковой генератор создает маленький, с некоторым периодом ультразвуковой импульс и запускает таймер. Вторая мембрана регистрирует прибытие отображенного импульса и останавливает таймер. От времени таймера по скорости звука возможно вычислить пройденное расстояние звуковой волны. Расстояние объекта приблизительно половина пройденного пути звуковой волны.

Ультразвуковой датчик расстояния принцип работы

У ультразвукового датчика расстояния в повседневной жизни множество применений. Их используют взамен измерительной рулетки в устройствах измерения расстояния, например в строительстве. Современные автомобили снабжены ультразвуковым датчиком и предупреждающим сигналом для защиты от наезда на стоящее позади препятствие. Помимо измерения расстояния они могут также регистрировать нахождение объекта в измеряемом диапазоне, к примеру, в опасной зоне производственных машин. Если излучатель и приемник ультразвука разделить, то можно измерять скорость потока текущего между ними вещества, потому что звуковая волна против течения распространяется медленнее, а по течению быстрее.

Практика

В комплекте модуля «Датчики» Домашней Лаборатории имеется ультразвуковой датчик расстояния Devantech SRF04 или SRF05. SRF04/SRF05 — это только датчик, который напрямую информацию о расстоянии не выдает. У датчика помимо выводов питания имеется ещё вывод триггера и вывод эха. При настройке вывода триггера высоким датчик генерирует 8-периодную 40 kHz ультразвуковую волну. В этот момент вывод эха становится высоким и остается высоким до того времени, пока отображенная звуковая волна достигнет датчика. Таким образом сигнал эха показывает время, в течение которого звук распространяется до объекта и обратно. Измерив это время, умножив его на скорость распространения и разделив на два, можно получить расстояние до объекта. Находящийся рядом график представляет связь между временем и сигналами, излучателя звуковой волны и эха.

Ультразвуковой датчик расстояния принцип работы

Для использования ультразвукового датчика Devantech с микроконтроллером AVR, нужно выводы триггера и эха соединить с какими-либо выводами AVR. Для измерения времени желательно использовать 16-битный таймер, к примеру, timer3. Далее приведена функция, которая производит всю процедуру измерения — генерирует сигнал триггера, запускает таймер, измеряет длину сигнала эха и переводит его в расстояние в сантиметрах. Функция блокирующаяся, т.е. процессор занят этим до тех пор, пока результат измерения не получен или измерение затягивается дольше разрешенного. Чем быстрее эхо прибывает, тем быстрее получаем результат измерения. Если эхо не прибывает, то функция ждет этого

36 ms и возвращает 0. Важно между измерением оставить паузу в несколько десятков миллисекунд, чтобы звуковая волна от предыдущего измерения успела затихнуть и не нарушила новое измерение. Если в одно время используется несколько ультразвуковых датчиков, то придется так же следить за тем, чтобы звуковые волны не перекрещивались.

Приведенная функция позволяет пользователю выбрать выводы триггера и эха так, чтобы датчик можно было подключить туда, где удобнее или где есть место. Вдобавок, свобода выбора выводов дает возможность использовать функцию не только в комплекте Домашней Лаборатории. Приведенная функция принадлежит библиотеке Домашней Лаборатории, что позволяет не записывать её отдельно в свою программу. Но следует учитывать, что в библиотеке Домашней Лаборатории эта функция жестко связана с тактовой частотой в 14,7456 Mhz модуля «Контроллер» Домашней Лаборатории и при других тактовых частотах функция даст неправильный результат. При другой тактовой частоте придется эту функцию писать самому в свою программу. Приведенный далее программный код демонстрирует использование ультразвукового датчика SRF04/SRF05 с библиотекой Домашней Лаборатории.