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

Ультразвуковые датчики расстояния Ардуино очень востребованы в робототехнических проектах из-за своей относительной простоты, достаточной точности и доступности.

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

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

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

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

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

Именно этот временной интервал становится характеристикой помогающей определить расстояние до объекта.

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

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

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

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

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

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

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

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

  • усредняются значения (несколько раз замеряем, убираем всплески, потом находим среднее);
  • с помощью датчиков (например, 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 мс.

#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 отлично справлялся со своей работой.

Как измерять расстояния ультразвуком.Что такое ультразвуковые датчики

Как измерять расстояния ультразвуком.Что такое ультразвуковые датчики

Ультразвук — звуковые волны, имеющие частоту выше воспринимаемых человеческим ухом, обычно, под ультразвуком понимают частоты выше 20 000 герц.

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

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

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

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

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

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

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

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

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

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

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

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

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

Вернемся, однако, к ультразвуковым датчикам. Модуль состоит из ультразвукового передатчика и приемника (как ухо у летучей мыши). Передатчик служит для генерации ультразвукового излучения частотой 40 кГц, а приемник — для улавливания ультразвука именно на этой частоте.

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

  • Передатчик расположен на плате рядом с приемником, так что он способен воспринимать ультразвуковые волны, испущенные приемником и отраженные от объекта, находящегося перед датчиком, если между датчиком и объектом от которого происходит отражение находится воздух.
  • Когда в зону действия ультразвукового луча попадает какое-нибудь препятствие, схема рассчитывает время, которое проходит с момента отправки ультразвукового сигнала до момента его прихода обратно — в приемник.
  • Это осуществить легко, тем более электронике, ведь скорость звука в воздухе известна, она равна 343,2 метра в секунду, следовательно умножив время на данную скорость — получим длину прямолинейной траектории на пути ультразвука от приемника до места отражения и обратно.

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

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

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

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

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

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

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

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

  1. Пример создания простого ультразвукового дальномера в домашних условиях:
  2. Ранее ЭлектроВести писали, что композитор Ханс Циммер, известный по работе над «Интерстелларом» и «Началом», совместно с инженером Ренцо Витали (Renzo Vitale) написал звуки для нового поколения электромобилей BMW.

Ультразвуковой датчик измерения расстояния HC-SR04

Ультразвуковой датчик расстояния HC-SR04 — позволяет определять расстояние до препятствий находящихся в зоне от 2 мм до 4 м.

Видео:

Спецификация:

  • Входное напряжение: 5 В
  • Потребляемый ток в режиме ожидания: до 2 мА
  • Потребляемый ток в режиме измерений: до 15 мА
  • Частота ультразвука: 40 кГц
  • Измеряемая дальность: 3 … 400 см
  • Точность измерения: от 0,3 см
  • Угол измерения: до 15°
  • Рабочая температура: -30 … 80 °С
  • Габариты: 45x20x15 мм

Подключение:

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

  • При работе с библиотекой iarduino_HC_SR04_int, вывод TRIG датчика подключается к любому выводу Arduino, а вывод ECHO датчика нужно подключить только к тому выводу Arduino, который использует внешнее прерывание.Измерение расстояния ультразвуком и ультразвуковые датчики

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

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

Питание:

Входное напряжение 5 В постоянного тока, подаётся на выводы Vcc и GND датчика.

Подробнее о датчике:

Если подать положительный импульс на вход датчика TRIG длительностью 10 мкс, то датчик отправит звуковую волну (8 импульсов на частоте 40 кГц — ультразвук) и установит уровень логической «1» на выходе ECHO.

Читайте также:  Как определить неисправность конденсаторов

Звуковая волна отразится от препятствия и вернётся на приёмник датчика, после чего он сбросит уровень на выходе ECHO в логический «0» (то же самое датчик сделает, если звуковая волна не вернётся в течении 38 мс.) В результате время наличия логической «1» на выходе ECHO равно времени прохождения ультразвуковой волны от датчика до препятствия и обратно.

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

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

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

L = V * Echo / 2

  • L – расстояние (м);
  • V – скорость звука в воздухе (м/с);
  • Echo – время ожидания эха (с).

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

V2 = γ R T / M

  • V – скорость звука в воздухе (м/с)
  • γ – показатель адиабаты воздуха (ед.) = 7/5
  • R – универсальная газовая постоянная (Дж/моль*K) = 8,3144598(48)
  • T – абсолютная температура воздуха (°К) = t°C + 273,15
  • M – молекулярная масса воздуха (г/моль) = 28,98

Подставив в формулу известные значения γRM, получим:

V ≈ 20,042 √T

  • T – абсолютная температура воздуха (°К) = t°C + 273,15

Осталось объединить формулы вычисления V и L, и перевести L из м в см, Echo из с в мкс, T из °К в °C, получим:

L ≈ Echo √(t+273,15) / 1000

  • L – расстояние (см)
  • Echo – время ожидания эха (мкс)
  • t – температура воздуха (°C)

Для работы с датчиком, нами разработаны две библиотеки iarduino_HC_SR04 и iarduino_HC_SR04_int, синтаксис обеих библиотек одинаков. Они сами рассчитывают все значения и возвращают только расстояние в см. Температура по умолчанию установлена в 23°C, но её можно указывать. Работа с библиотеками и их функции описаны ниже.

Для работы с датчиком, нами разработаны две библиотеки iarduino_HC_SR04 и iarduino_HC_SR04_int, синтаксис обеих библиотек одинаков.

  • Преимуществом библиотеки iarduino_HC_SR04 является то, что датчики можно подключать к любым выводам Arduino, а недостаток заключается в том, что библиотека ждёт ответа от датчика, который может длиться до 38 мс.
  • Преимуществом библиотеки iarduino_HC_SR04_int является то, что она не ждёт ответа от датчиков (не приостанавливает выполнение скетча), но выводы ECHO датчиков нужно подключать только к тем выводам Arduino, которые используют внешние прерывания.

Подробнее про установку библиотеки читайте в нашей инструкции.

Примеры:

Определение расстояния с использованием библиотеки iarduino_HC_SR04:

#include // Подключаем библиотеку
iarduino_HC_SR04 sensor(2,3); // Объявляем объект sensor, указывая номера arduino подключенные к выводам TRIG и ECHO датчика
// Можно использовать любые выводы Arduino
void setup(){
Serial.

begin(9600); // Инициализация передачи данных в монитор последовательного порта
}
void loop(){
delay(500); // Задержка 0,5 сек
Serial.println(sensor.distance() ); // Вывод расстояния (см) при температуре воздуха, около +23 °C
Serial.println(sensor.

distance(-20)); // Вывод расстояния (см) при температуре воздуха, около -20 °C
Serial.println(«==================»);
}

Определение расстояния с использованием библиотеки iarduino_HC_SR04_int:

#include // Подключаем библиотеку
iarduino_HC_SR04_int sensor(2,3); // Объявляем объект sensor, указывая номера arduino подключенные к выводам TRIG и ECHO датчика
// (вывод ECHO нужно подключить к выводу Arduino использующему внешнее прерывание)
void setup(){
Serial.

begin(9600); // Инициализация передачи данных в монитор последовательного порта
}
void loop(){
delay(500); // Задержка 0,5 сек
Serial.println(sensor.distance() ); // Вывод расстояния (см) при температуре воздуха, около +23 °C
Serial.println(sensor.

distance(-20)); // Вывод расстояния (см) при температуре воздуха, около -20 °C
Serial.println(«==================»);
}

Результат работы обоих примеров:

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

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

Описание основных функций библиотек:

Библиотека iarduino_HC_SR04, как и библиотека iarduino_HC_SR04_int, имеет только одну функцию — distance().

Подключение библиотеки iarduino_HC_SR04:

#include // Подключаем библиотеку
iarduino_HC_SR04 sensor( №_ВЫВОДА_TRIG , №_ВЫВОДА_ECHO ); // Создаём объект sensor с указанием выводов TRIG и ECHO датчика.

Подключение библиотеки iarduino_HC_SR04_int:

#include // Подключаем библиотеку
iarduino_HC_SR04_int sensor( №_ВЫВОДА_TRIG , №_ВЫВОДА_ECHO ); // Создаём объект sensor с указанием выводов TRIG и ECHO датчика.

Функция distance():

  • Назначение: Возвращает расстояние до препятствия в см
  • Синтаксис: distance( [ ТЕМПЕРАТУРА ] )
  • Параметры: ТЕМПЕРАТУРА — необязательный параметр, целое число, от -128 °C до +127 °C, по умолчанию +23 °C
  • Возвращаемые значения: long расстояние в см
  • Пример:

long A = sensor.distance(); // Присваиваем переменной A расстояние до препятствия при температуре воздуха по умолчанию +23 °C.
long B = sensor.distance(70); // Присваиваем переменной B расстояние до препятствия при температуре воздуха +70 °C.

Усреднение показаний:

Переменная averaging типа long является коэффициентом усреднения выводимых показаний. Данной переменной можно присвоить положительное целое число (0-без усреднений — значение по умолчанию, 1-слабое усреднение, …, 10-нормальное усреднение, …, 100-сильное усреднение, …, 1000-чрезмерное усреднение, …).

При снятии показаний без усреднений (по умолчанию) мы можем получать «прыгающие» значения.

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

#include // Подключаем библиотеку
iarduino_HC_SR04_int sensor(2,3); // Объявляем объект sensor, указывая номера arduino подключенные к выводам TRIG и ECHO датчика
void setup(){
Serial.begin(9600); // Инициализация передачи данных в монитор последовательного порта
sensor.averaging=15; // Указываем коэффициент усреднения равный 15
} // Коэффициент подбирается экспериментально, в зависимости от условий эксплуатации датчика
void loop(){
delay(500); // Задержка 0,5 сек
Serial.println(sensor.distance() ); // Вывод усреднённого расстояния (см) при температуре воздуха, около +23 °C
Serial.println(«==================»);
}

Применение:

  • Подвижные механизмы не требующие участие оператора.
  • Системы сигнализаций, где невозможно использовать ИК-датчики.

Ссылки:

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

  • Ультразвуковой датчик расстояния

Ультразвуковой датчик расстояния SRF04

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

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

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

Звуковой генератор создает маленький, с некоторым периодом ультразвуковой импульс и запускает таймер. Вторая мембрана регистрирует прибытие отображенного импульса и останавливает таймер. От времени таймера по скорости звука возможно вычислить пройденное расстояние звуковой волны. Расстояние объекта приблизительно половина пройденного пути звуковой волны.

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

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

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

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

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

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

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

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

Сигналы SRF04

Для использования ультразвукового датчика Devantech с микроконтроллером AVR, нужно выводы триггера и эха соединить с какими-либо выводами AVR. Для измерения времени желательно использовать 16-битный таймер, к примеру, timer3.

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

Читайте также:  Инфракрасное отопление дома и интересные факты про инфракрасные обогреватели

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

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

#define ULTRASONIC_SPEED_OF_SOUND 33000 // cm/s
 
//
// Измерение ультразвука датчиком расстояния
//
unsigned short ultrasonic_measure(pin trigger, pin echo)
{ // Установка выводов pin_setup_output(trigger); pin_setup_input_with_pullup(echo);
  // Таймер 3 в нормальный режим // c периодом F_CPU / 8 timer3_init_normal(TIMER3_PRESCALE_8);
  // Вывод триггера высоким pin_set(trigger);
  // Обнуление таймера timer3_overflow_flag_clear(); timer3_set_value(0);   // Ожидание ~10 us while (timer3_get_value() 0) { // Перевод расстояния в текст sprintf(text, «%d cm «, distance); } // При измерении произошла ошибка? else { // Текст ошибки sprintf(text, «Ошибка «); }   // Отображение текста в начале второго ряда LCD lcd_alpha_goto_xy(0, 1); lcd_alpha_write_string(text);
  // Маленькая пауза sw_delay_ms(500); }
}

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

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

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

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

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

Ультразвуковые зонды и ультразвуковые ванны применяют ультразвуковую энергию агитировать частицы в широком диапазоне материалов; См Ультразвука .

Приложения и производительность

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

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

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

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

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

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

Эта техника известна как ультразвуковая микрометрия , где транзита время ультразвукового сигнала измеряются в электронном виде (т.е.

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

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

преобразователи

Звуковое поле, не фокусирующие 4 МГц ультразвукового преобразователя с близкой длиной поля Н = 67 мм в воде. График показывает давление звука в логарифмическом масштабе дб.

Звуковое поле давления одного и того же ультразвукового преобразователя (4 МГц, N = 67 мм) с поверхностью преобразователя, имеющий сферическую кривизну с радиусом кривизны R = 30 мм

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

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

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

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

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

Принцип диафрагмы (или мембрана) также используется в относительно новых микро-механической обработки ультразвуковых преобразователей (Muts). Эти устройства изготовлены с использованием кремния микро-технологии обработки ( МЭМС технологии), что особенно полезно для изготовления решеток преобразователей.

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

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

Использование в медицине

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

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

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

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

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

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

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

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

Использование в промышленности

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

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

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

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

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

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

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

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

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

Рекомендации

  1. ^ «GunCleaners» . GunCleaners.com .

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Adblock
detector