Датчик расстояния до объекта. Ультразвуковой датчик измерения расстояния HC-SR04. Как действует датчик с двумя цифровыми выходами

Датчики REAL3 от Infineon используют ToF-технологию для измерения времени пролета ИК-импульсов света и построения трехмерной картины окружающего пространства. Главной особенностью этих сенсоров становится чувствительная матрица, способная не только фиксировать ИК-излучение, но и измерять амплитуду принимаемых сигналов. Благодаря компактным размерам, сенсоры REAL3 могут использоваться не только в промышленных приложениях, но и в компактных коммерческих устройствах, таких как современные смартфоны.

В настоящее время развитие ультразвуковых сенсоров идет по нескольким направлениям: расширение радиуса действия, уменьшение потребления, снижение габаритов, сокращение стоимости. В данной статье рассказывается о новых бестрансформаторных датчиках 2-го поколения от Elmos Semiconductor с расширенным радиусом действия.

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

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

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

MB1340 – высокопроизводительный ультразвуковой дальномер серии XL-MaxSonar®-AE4™, которая характеризуется высочайшей помехоустойчивостью и очень узкой диаграммой направленности. Изделия линейки предназначены для использования внутри помещений. Датчик MB1340 разработан и откалиброван для получения надежной информации о расстояниях до крупных объектов даже в условиях сильных акустических и электрических шумов.

Ультразвуковые сенсоры чаще всего используются в качестве датчиков приближения или присутствия. При этом требования к ним сильно зависят от конкретного приложения. Где-то ключевыми параметрами становятся метрологические характеристики, где-то важнее оказывается рейтинг защиты IP или возможность совместного использования нескольких сенсоров. Компания MaxBotix, являясь одним из лидеров производства ультразвуковых датчиков, предлагает свои решения для самых разных приложений.

Ультразвуковые датчики серии XL-MaxSonar-EZ (MB12x0) и I2XL-MaxSonar-EZ (MB12x2) предназначены для обнаружения объектов и людей в помещении. Они имеют высокую акустическую выходную мощность и автокалибровку в реальном масштабе времени в каждом цикле измерения для компенсации влияния температуры, влажности, напряжения питания и схему подавления акустических или электрических шумов.

В настоящее время все больше функций, связанных с продажей и консультациями, выполняют электронные терминалы. Специально для интерактивных терминалов MaxBotix предлагает серию ультразвуковых сенсоров приближения ProxSonar. Эти датчики позволяют задавать дистанцию срабатывания в пределах от 30 см до примерно 2 м, что полезно для точной установки алгоритмов поведения терминала.

Назначение и принцип действия ультразвукового датчика. Описаны распространенные режимы работы: одно- / двунаправленные системы и системы с отражателями.

Назначение и принцип действия ультразвукового датчика

Физика и техника

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

В зависимости от условий эксплуатации и особенности контролируемого объекта целесообразно применение одно-/двунаправленного или отражательного способа контроля.

Однонаправленные системы

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

Преимущество: Высокая дальность действия.

Отражательные системы


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

Преимущество: Также могут распознаваться не отражающие или только слабо отражающие объекты.

Режим отражения от объекта

Отличают 2 основных функциональных вида:

Однонаправленный режим

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

Преимущества: Простой, компактный сенсор, самый часто используемый принцип.

Двухнаправленный режим

Передатчик и приемник разделены, секторы передачи/приема (передатчика/приемника) пересекаются.

Преимущества: Трехмерная область регистрации — распознает очень маленькие объекты.

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

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

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

Ультразвуковые датчики используются для вычисления временного промежутка, который может потребоваться звуку для движения от прибора к тому или иному объекту и назад к датчику (функционирование в диффузионном режиме), либо для проверки — был ли принят отправленный сигнал определенным отдельным приемником (для оппозиционного режима работы).

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

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

  • оппозиционный;
  • диффузионный.

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

Выделяют несколько особенностей:

  1. Большой диапазон, ведь ультразвуковой пучок преодолевает сигнальное расстояние всего лишь один раз;
  2. Достаточно быстрое переключение;
  3. Не очень воспринимает интерференцию, что позволяет использовать его в довольно трудных условиях;
  4. Сравнительно высокая стоимость монтажных работ, потому что необходимо установить два датчика — передатчик и приемник.

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

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

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

Особенности датчиков расстояния и перемещения

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

Датчики такого типа используются с целью преобразования линейных показателей расстояния до обнаруженного объекта в электрические сигналы, которые соответствуют стандарту 4-20 мА либо 0-10 Вольт. Точность измерения является не менее 0,5 мм при расстоянии меньше одного метра, а также примерно 1 мм, если расстояние составляет более одного метра.

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

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

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

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

Как действует датчик с двумя цифровыми выходами?

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

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

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

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

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

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

Таблица 1

Индуктивные Ультразвуковые Оптические
Триангуляционные Радарные
Расстояние 0 – 20 мм 10 – 10.000 мм 10 – 1.000 мм 10 – 500.000 мм
Разрешение 0,1 мкм 0,1 мм 1 мкм 0,5 мм
Точность 1 мкм 0,2 мм 2 мкм 2 мм
Линейность 0,4% – 5% 0,5% 0,05% - 1% 0,001%
Время 0,3 мс 20 мс 1 мс 1 мс

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

Вместе с тем, несмотря на прекрасную точность, разрешение и время отклика, существенная нелинейность, составляющая 3% - 5%, представляет определенную проблему. Что бы преодолеть это некоторые производители определяют выходной сигнал датчика как полиномную функцию, математически описывающую сигнал, и тем самым дают возможность запрограммировать с помощью такой функции большинство современных контроллеров для более точного алгоритма измерения. Типичная функция, описывающая выходной сигнал аналогового индуктивного датчика в зависимости от расстояния, представлена ниже:

Расстояние = a + b (I вых) + c (I вых)2 + d (I вых)3 + e (I вых)4

Где: I вых = выходной ток
Измеряемое расстояние = 0-2 мм, 0-20 мА (I вых)

Коэффициенты функции имеют следующие значения:
a = -0.144334; c = -0.00782; e = -7.27311 ? 10-6; b = 0.151453; d = 0.00040

Тем самым, например, на расстоянии 0,4638 мм выходной сигнал будет 5 мА. Проблемы с линейностью могут быть так же решены с использованием интегрированного в датчик микропроцессора. Такой метод позволяет произвести линеаризацию выходной характеристики датчика и существенно снизить нелинейность. Например, индуктивный датчик диаметром 12 мм и расстоянием измерения 0 – 4 мм., со встроенным микропроцессором имеет линейность лучше, чем 0,4%.

Ультразвуковые датчики. Принцип действия ультразвуковых датчиков расстояния основан на излучении импульсов ультразвука и измерении, пока звуковой импульс, отразившись от объекта измерения, вернется обратно в датчик. При этом достигается разрешения до 0,2 мм.

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

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

Оптические датчики. Существует множество различных способов измерить расстояние до предмета с помощью оптики: например лазерные интерферометры, датчики с рассеянным отражением света и оптические датчики радарного типа. Каждый из видов датчиков имеет свои сильные и слабые стороны. Лазерные интерферометры имеют большой диапазон измерений и точность несколько нанометров, однако, эти приборы очень дорогие и сложные в эксплуатации. Датчики с рассеянным отражением и аналоговым выходом могут измерять расстояния в широких пределах, однако поскольку они работают с отраженным светом, то могут быть проблемы с измерением расстояний до окрашенных или отражающих объектов. Оптические датчики радарного типа, преимущественно лазерные, могут измерять большие расстояния, однако принцип их работы, основанный на измерении времени распространения света от датчика до объекта и обратно, позволяет измерять с ограниченным разрешением в 2 – 3 мм.

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


Рисунок. Принцип работы оптического датчика расстояния

На рисунке показан принцип работы оптического датчика расстояния. Лазер посылает через линзу луч, который отражается от объекта и фокусируется на линейке из фотодиодов, которая прообразует световой сигнал в электрический. Всякое изменение расстояния до объекта вызывает изменение угла отраженного луча и, следовательно, позиции, которую отраженный луч занимает на линейке фотодиодов. Микроконтроллер обрабатывает сигнал от линейки фотодиодов и преобразует его в аналоговый электрический сигнал.

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

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

Правильный выбор датчика. Для того, что бы правильно выбрать подходящий датчик расстояния, необходимо ответить на 7 вопросов:

Из чего состоит объект измерения? Какое расстояние до объекта? Какая требуется точность? Насколько быстро движется объект? Какие существуют внешние неблагоприятные условия? Какой тип выходного сигнала необходим? Насколько ограничено пространство для установки датчика?

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

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

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

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

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

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

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

  • Питающее напряжение 5В;
  • Рабочий параметр силы т ока – 15 мА;
  • Сила тока в пассивном состоянии < 2 мА;
  • Обзорный угол – 15°;
  • Сенсорное разрешение – 0,3 см;
  • Измерительный угол – 30°;
  • Ширина импульса – 10 -6 с.

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

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

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

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

Модуль датчика расстояния HC-SR04 для Ардуино Еще один вариант ультразвукового сенсора HC-SR04 у надежного поставщика
Датчики расстояния SR05 Ultrasonic HC-SR05 (улучшенные характеристики) Модуль HC-SR05 HY-SRF05 для UNO R3 MEGA2560 DUE от надежного поставщика

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

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

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

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

Давайте рассмотрим пример простого проекта с платой 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 мс.

#define PIN_TRIG 12 #define PIN_ECHO 11 long duration, cm; void setup() { // Инициализируем взаимодействие по последовательному порту Serial.begin (9600); //Определяем вводы и выводы pinMode(PIN_TRIG, OUTPUT); pinMode(PIN_ECHO, INPUT); } void loop() { // Сначала генерируем короткий импульс длительностью 2-5 микросекунд. digitalWrite(PIN_TRIG, LOW); delayMicroseconds(5); digitalWrite(PIN_TRIG, HIGH); // Выставив высокий уровень сигнала, ждем около 10 микросекунд. В этот момент датчик будет посылать сигналы с частотой 40 КГц. delayMicroseconds(10); digitalWrite(PIN_TRIG, LOW); // Время задержки акустического сигнала на эхолокаторе. duration = pulseIn(PIN_ECHO, HIGH); // Теперь осталось преобразовать время в расстояние cm = (duration / 2) / 29.1; Serial.print("Расстояние до объекта: "); Serial.print(cm); Serial.println(" см."); // Задержка между измерениями для корректной работы скеча delay(250); }

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

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

#include #define PIN_TRIG 12 #define PIN_ECHO 11 #define MAX_DISTANCE 200 // Константа для определения максимального расстояния, которое мы будем считать корректным. // Создаем объект, методами которого будем затем пользоваться для получения расстояния. // В качестве параметров передаем номера пинов, к которым подключены выходы ECHO и TRIG датчика NewPing sonar(PIN_TRIG, PIN_ECHO, MAX_DISTANCE); void setup() { // Инициализируем взаимодействие по последовательному порту на скорости 9600 Serial.begin(9600); } void loop() { // Стартовая задержка, необходимая для корректной работы. delay(50); // Получаем значение от датчика расстояния и сохраняем его в переменную unsigned int distance = sonar.ping_cm(); // Печатаем расстояние в мониторе порта Serial.print(distance); Serial.println("см"); }

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

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

#include #define PIN_PING 12 // Пин с Arduino соединен с пинами trigger и echo на датчике расстояния #define MAX_DISTANCE 200 // Максимальное расстояние, которое мы способны контролировать (400-500см). NewPing sonar(PIN_PING, PIN_PING, MAX_DISTANCE); // Регулировка пинов и максимального расстояния void setup() { Serial.begin(9600); // Открывается протокол с данными и частотой передачи 115200 бит/сек. } void loop() { delay(50); // Задержка в 50 мс между генерируемыми волнами. 29 мс – минимально допустимое значение unsigned int distanceSm = sonar.ping(); // Создание сигнала, получение параметра его продолжительности в мкс (uS). Serial.print("Ping: "); Serial.print(distanceSm / US_ROUNDTRIP_CM); // Пересчет параметра времени в величину расстояния и вывод результата (0 соответствует выходу за допустимый предел) Serial.println("cm"); }

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

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

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