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

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

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

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

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

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

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

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

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

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

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

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

Обратный эффект состоит в деформации пластины по оси Х. Относительное изменение размера пластины (толщины) равно:
Δa/a=kUx/a
Поперечный эффект состоит в деформации пластины по оси У. Относительное изменение толщины пластины равно:
Δl/l=kUx/a

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

Частота продольных колебаний вычисляется:

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

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

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

Рис 1

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

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

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

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

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

Рис 2

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

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

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

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

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

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

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

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

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

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

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

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

Рис 3

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

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

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

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

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

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

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

1. Принцип действия

На этот раз мы разберем работу одного из самых популярных датчиков — ультразвукового (УЗ) дальномера. Существует много разных модификаций подобных устройств, но все они работают по принципу измерения времени прохождения отраженного звука. То есть датчик отправляет звуковой сигнал в заданном направлении, затем ловит отраженное эхо и вычисляет время полета звука от датчика до препятствия и обратно. Из школьного курса физики мы знаем, что скорость звука в некоторой среде величина постоянная, но зависящая от плотности среды. Зная скорость звука в воздухе и время полета звука до цели, мы можем рассчитать пройденное звуком расстояние по формуле: s = v*t где v — скорость звука в м/с, а t — время в секундах. Скорость звука в воздухе, кстати, равна 340.29 м/с. Чтобы справиться со своей задачей, дальномер имеет две важные конструктивные особенности. Во-первых, чтобы звук хорошо отражался от препятствий, датчик испускает ультразвук с частотой 40 кГц. Для этого в датчике имеется пьезокерамический излучатель, который способен генерировать звук такой высокой частоты. Во-вторых, излучатель устроен таким образом, что звук распространяется не во все стороны (как это бывает у обычных динамиков), а в узком направлении. На рисунке представлена диаграмма направленности типичного УЗ дальномера. Как видно на диаграмме, угол обзора самого простого УЗ дальномера составляет примерно 50-60 градусов. Для типичного варианта использования, когда датчик детектирует препятствия перед собой, такой угол обзора вполне пригоден. Ультразвук сможет обнаружить даже ножку стула, тогда как лазерный дальномер, к примеру, может её не заметить. Если же мы решим сканировать окружающее пространство, вращая дальномер по кругу как радар, УЗ дальномер даст нам очень неточную и шумную картину. Для таких целей лучше использовать как раз лазерный дальномер. Также следует отметить два серьезных недостатка УЗ дальномера. Первый заключается в том, что поверхности имеющие пористую структуру хорошо поглощают ультразвук, и датчик не может измерить расстояние до них. Например, если мы задумаем измерить расстояние от мультикоптера до поверхности поля с высокой травой, то скорее всего получим очень нечеткие данные. Такие же проблемы нас ждут при измерении дистанции до стены покрытой поролоном. Второй недостаток связан со скоростью звуковой волны. Эта скорость недостаточно высока, чтобы сделать процесс измерения более частым. Допустим, перед роботом есть препятствие на удалении 4 метра. Чтобы звук слетал туда и обратно, потребуется целых 24 мс. Следует 7 раз отмерить, прежде чем ставить УЗ дальномер на летающих роботов.

2. Ультразвуковой дальномер HC-SR04

В этом уроке мы будем работать с датчиком HC-SR04 и контроллером Ардуино Уно. Этот популярный дальномер умеет измерять расстояние от 1-2 см до 4-6 метров. При этом, точность измерения составляет 0.5 — 1 см. Встречаются разные версии одного и того же HC-SR04. Одни работают лучше, другие хуже. Отличить их можно по рисунку платы на обратной стороне. Версия, которая работает хорошо выглядит так:

А вот версия, которая может давать сбои:

3. Подключение HC-SR04

Датчик HC-SR04 имеет четыре вывода. Кроме земли (Gnd) и питания (Vcc) еще есть Trig и Echo. Оба этих вывода цифровые, так что подключаем из к любым выводам Ардуино Уно:
HC-SR04 GND VCC Trig Echo
Arduino Uno GND +5V 3 2
Принципиальная схема устройства Внешний вид макета

4. Программа

Итак, попробуем приказать датчику отправить зондирующий ультразвуковой импульс, а затем зафиксируем его возвращение. Посмотрим как выглядит временная диаграмма работы HC-SR04.
На диаграмме видно, что для начала измерения нам необходимо сгенерировать на выводе Trig положительный импульс длиной 10 мкс. Вслед за этим, датчик выпустит серию из 8 импульсов и поднимет уровень на выводе Echo , перейдя при этом в режим ожидания отраженного сигнала. Как только дальномер почувствует, что звук вернулся, он завершит положительный импульс на Echo . Получается, что нам нужно сделать всего две вещи: создать импульс на Trig для начала измерения, и замерить длину импульса на Echo, чтобы потом вычислить дистанцию по нехитрой формуле. Делаем. int echoPin = 2; int trigPin = 3; void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { int duration, cm; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); cm = duration / 58; Serial.print(cm); Serial.println(" cm"); delay(100); } Функция pulseIn замеряет длину положительного импульса на ноге echoPin в микросекундах. В программе мы записываем время полета звука в переменную duration. Как мы уже выяснили ранее, нам потребуется умножить время на скорость звука: s = duration * v = duration * 340 м/с Переводим скорость звука из м/с в см/мкс: s = duration * 0.034 м/мкс Для удобства преобразуем десятичную дробь в обыкновенную: s = duration * 1/29 = duration / 29 А теперь вспомним, что звук прошел два искомых расстояния: до цели и обратно. Поделим всё на 2: s = duration / 58 Теперь мы знаем откуда взялось число 58 в программе! Загружаем программу на Ардуино Уно и открываем монитор последовательного порта. Попробуем теперь наводить датчик на разные предметы и смотреть в мониторе рассчитанное расстояние.

Задания

Теперь, когда мы умеем вычислять расстояние с помощью дальномера, сделаем несколько полезных устройств.
  1. Строительный дальномер. Программа каждые 100мс измеряет расстояние с помощью дальномера и выводит результат на символьный ЖК дисплей. Для удобства полученное устройство можно поместить в небольшой корпус и запитать от батареек.
  2. Ультразвуковая трость. Напишем программу, которая будет «пищать» зуммером с различной частотой, в зависимости от измеренного расстояния. Например, если расстояние до препятствия более трех метров — зуммер издает звук раз в пол секунды. При расстоянии 1 метр — раз в 100мс. Менее 10см — пищит постоянно.

Заключение

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

Ультразвуковые датчики расстояния Ардуино очень востребованы в робототехнических проектах из-за своей относительной простоты, достаточной точности и доступности. Они могут быть использованы как приборы, помогающие объезжать препятствия, получать размеры предметов, моделировать карту помещения и сигнализировать о приближении или удалении объектов. Одним из распространенных вариантов такого устройства является датчик расстояния, в конструкцию которого входит ультразвуковой дальномер 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 отлично справлялся со своей работой.

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

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



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


Микроволновый блок естественно был отключен, зачем нам подставлять макушку под микроволны. Осталась только ИК матрица.
Штука довольна специфическая. Минимальная зона у него размером с помещение. Свет включает и выключает при посещении на ура. Но есть один недостаток. Датчик очень педантичен и любит, чтобы все стояло на своих местах. Передвинул рулончик бумажки или опустил/поднял стульчак, требуется перенастройка. Да и ценник у него не сортирный.
Так что поиск решения был продолжен.
На просторах интернета набрел на сайт и с темой о простом автоматическом выключателе света на ультразвуковом датчике.
Тема показалась интересной, тем более изобретать велосипед с прошивкой не надо, автор постарался за нас, за что ему спасибо.
Схема есть, прошивки есть. Осталось сделать печатку и получить на выходе полноценный датчик присутствия. Или не получить… посмотрим…
Датчик был заказан на banggood"e. Нравится мне этот магазин стабильностью сроков доставки. Безтреком 28-30 дней и заказ у меня.
Приехал безтреком в срок. Упаковка для посылок без трека у banggood"а стандартная, мусорный мешок и все…
Датчик был упакован в антистатик, что подозреваю и спасло его от почтовых неприятностей. :0)
К сожалению мусорный мешок выбросил по пути домой, а антистатик уже дома, так что показать кроме датчика вам нечего, да и сам датчик уже потрепался (ножки выпрямил) в процессе изготовления устройства.
ТТХ датчика:
- 45*20*23 мм. ДхШхГ (Г - с выпрямленными ножками)
- вес - 8,28 грамм
- напряжение питания - DC 5V
- ток потребления - 15mA
- минимальное рабочее расстояние - 2 см.
- максимальное рабочее расстояние - 4 метра
- угол зоны обнаружения - 15 градусов
Кратко.
Датчик работает по принципу эха. Один пьезик датчика излучает пакет импульсов с частотой 40 кГц, сигнал отражается от поверхности перед датчиком, отраженный сигнал принимает другой пьезик, блок обработки обрабатывает полученные данные и на выходе выдает импульс длинной пропорциональной расстоянию прохождения УЗ сигнала.
Т.е. на выходе мы имеем импульс, длительность которого нам и важна.
В изготавливаемом нами автоматическом включателе/выключателе мы сравниваем длительность импульса занесенного в память микроконтроллера, с длительностью нового отраженного импульса. Если длительность нового импульса меньше того что в памяти, микроконтроллер решает, что в зоне обнаружение есть объект и нужно включить нагрузку… Если длинна импульса больше, то ничего не делаем или выключаем нагрузку, если она включена.
Далее:
Сам датчик.


Маркировка на микросхемах стерта.


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

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


Засвечиваем, промываем, травим.


Травим, смываем фоторезист.


Наносим маску, засвечиваем шаблон.


Режем платку, сверлим.



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


Припаиваем датчик к платке.


Программируем.


В результате получаем готовый бескорпусной датчик присутствия с питанием пять вольт, кушающее 30mA, способное обнаруживать посторонние предметы в заранее запрограммированной зоне обнаружения с углом в 15 градусов и расстоянием от 2 сантиметров, до 3,5 метров. При обнаружении включать светодиод.
Принцип работы прост. Направляем датчик, куда нам нужно. Нажимаем кнопку.
Настроечный светодиод (у меня он красненький) начинает мигать.
Мигает он в 3-х режимах:
10% светодиод включен- объект вне зоны действия, нагрузка выключена.
90% светодиод включен- объект в зоне действия, нагрузка включена.
50% светодиод включен- зона обнаружения свободна, идет отсчет 60 или 10 секунд, или одна секунда, в зависимости от прошивки, до выключения, лампа включена.
Дальше у вас есть 10 секунд чтобы уйти из зоны обнаружения.
Можно ограничить зону. Для этого нужно в момент запоминания настроек встать на границе зоны, тем самым зона будет ограничена.
Паспортные минимальные 2 сантиметра я подтверждаю. Если ограничить зону как на фото, то при просовывании пальца между коробкой и датчиком светодиод загорается, убираем палец, гаснет.
Если подвинуть коробку на полсантиметра ближе, то свтодиод загорается, устройство настраиваться отказывается.


Максимальные 4 метра подтвердить не удалось. Максимальное расстояние которое удалось подтвердить, где устройство уверенно фиксирует человека равно 3.5 метра. На з-х метрах уверенно фиксирует мою руку с коробкой 15х15 сантиметров. Включает нагрузку и не отключает, пока коробку не уберешь.
Выводы.
- Получившийся датчик присутствия мне понравился.
- Простейшая и удобная настройка.
- Реально работает.
- Дешево и сердито.
В общем, вот такое получилось годное устройство на ультразвуковом модуле измерения расстояния HY-SRF05.
В недалеком будущем я приспособлю его по месту, только коробку подберу.
Теперь можно будет замирать в нужной позе не боясь отключения света.
Желающие думаю могут придумать еще множество способов его использования. Особенно ардуинщики, для кого этот датчик в принципе и разработан. А может и не для них… Планирую купить +41 Добавить в избранное Обзор понравился +41 +81

Ультразвуковые датчики Simatic PXS работают только в воздушной среде и могут фиксировать все объекты, отражающие ультразвук.

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

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

Разрешающая способность

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

Пример:

Simatic PXS 3RG6014- (от 60 до 600 см)

При дальности действия от 60 до 600 см разрешающая способность получается равной 1,3 мм:

6000 мм - 600 мм = 5400 мм 5400 мм/4096 = 1,3 мм (12 бит)

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

Температурная компенсация

Для компенсации изменений расстояния срабатывания из-за колебаний температуры датчики Simatic PXS типоряда компактных моделей II, III и М 18, а также модульного типоряда II снабжены датчиками температуры и схемой компенсации.

Компенсация действует во всем диапазоне температур. За счет этого достигается абсолютная точность +/- 1,5 % (типоряд II и III) и, соответственно, +/- 2,5 % (типоряд М 18).

Датчики BERO с коммутирующим выходом

Датчики Simatic PXS с коммутирующим выходом, в зависимости от типа, могут использоваться в следующих режимах:

Только излучатель, только приемник

Для этого режима используются два датчика Simatic PXS. Один параметрируется как приемник, другой как излучатель. Имеются две возможности применения:

  • УЗ-барьер однонаправленного действия:
    Определяется только наличие объекта между датчиками. Дальность действия удваивается. В этом случае настройка коммутационной зоны и обработка сигнала аналогового выхода являются излишними.
  • Активная измерительная система:
    Измеряется время прохождения ультразвука от излучателя до приемника. Для этого деблокирующие входы обоих датчиков должны быть связаны друг с другом. Все возможности применения сохраняются; дальность действия удваивается.

Излучатель и приемник

Это нормальный режим работы датчика Simatic PXS; он работает как классический сенсорный выключатель.

  • Датчик отражающего действия:
    При датчике отражающего действия объект, который должен быть обнаружен, действует как отражатель. Когда объект находится в установленной коммутационной зоне, эхо от этого предмета вызывает срабатывание.
  • Барьер отражающего действия:
    При работе в качестве барьера отражающего действия против устанавливается фиксированный отражатель (например, маленькая металлическая пластинка). Коммутационная зона настраивается под этот отражатель. При пересечении объектом промежутка между Simatic PXS и отражателем датчик перестает «видеть» отражатель, что вызывает изменение сигнала на коммутирующем выходе.

Синхронизация

Несколько датчиков компактных типорядов II, III и М18 могут быть синхронизированы друг с другом путем соединения только их выходов синхронизации (контакт 2 при функции замыкающего контакта, контакт 4 при функции размыкающего контакта). Можно синхронизировать до 10 приборов (до 6 приборов компактной модели 0). Благодаря этому во многих случаях становится возможной установка датчиков очень близко друг к другу без их взаимного влияния.

Преимущества:

  • Не требуется дополнительной электропроводки, необходимо только соединение деблокирующих выходов отдельных Simatic PXS.
  • Быстрота реакции, поскольку каждый Simatic PXS постоянно активен.

Недостатки

  • Объект нельзя присвоить определенному Simatic PXS.

Пример

Два датчика Simatic PXS смонтированы на расстоянии е, которое меньше минимального (см. инструкции по монтажу). Объект находится в их общей коммутационной зоне. Эхо от B2 может путем отражения попасть на B1 (GB). Поэтому может иметь место взаимное влияние. Объект захватывается обоими эхо E1 и E2 от датчиков Simatic PXS B1 и B2. Благодаря синхронизации можно добиться, чтобы оба прибора перестали влиять друг на друга, так, например, эхо E1 приходит на BERO B2 только после E2. Приборы всегда реагируют только на первое эхо.


Мультиплексная функция

Внешний мультиплексный режим

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

Контакт деблокирующего входа:

  • Simatic PXS активен, деблокирующий вход XI на L+ или открыт.
  • Simatic PXS не активен, деблокирующий вход XI на DC от 0 до 3 В

Преимущества:

  • Надежная защита от взаимного влияния.
  • Объект можно присвоить определенному Simatic PXS.

Недостатки

  • Дополнительное усложнение схемы (например, появление программируемого контроллера).
  • Большее время реакции, чем в схеме с синхронизацией, поскольку каждый Simatic PXS активен лишь короткое время и затем должен ожидать, пока все другие Simatic PXS в системе выдадут излучение.

Пример: обнаружение узких объектов

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


В этом примере эхо GB может имитировать на датчике B1 наличие реального объекта. Здесь синхронизация помочь не может, так как эховый импульс Е2 приходит на B1 только после GB, a датчик всегда регистрирует только первое эхо. В этом примере необходимо, чтобы программируемый контроллер циклически включал и отключал оба датчика.

Внутренний мультиплексный режим

Датчики Simatic PXS компактных типорядов III, III и М 18 могут объединяться в группу. При этом последовательно и параллельно (см. "Синхронизация") можно включать до 10 приборов (до 6 приборов компактного типоряда 0). Для этого не нужно никакой дополнительной электроники. Следует только соединить вместе деблокирующие входы всех датчиков в группе. При программировании каждому прибору задается количество датчиков в группе, а также его позиция (адрес) в группе. После соединения и подключения напряжения питания датчики автоматически работают в мультиплексном режиме.

Программатор SONPROG

Программатор SONPROG 3RX4 000 используется для адаптации на месте рабочих параметров датчиков Simatic PXS компактных типорядов II, III и М 18 к местным условиям. Эта программа предоставляет интерфейс, с помощью которого можно:

  • проверять параметры датчика Simatic PXS
  • изменять параметры датчика Simatic PXS
  • адаптировать датчик Simatic PXS к конкретному применению.

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

К важнейшим настраиваемым параметрам относятся:

  • начало и конец коммутационной зоны
  • гистерезис
  • функция коммутационного элемента (замыкающий или размыкающий)
  • частота коммутации
  • начало и конец аналоговой характеристики (только компактные типоряды III и М 18)
  • аналоговая характеристика нарастающая или падающая
  • конец слепой зоны
  • конец дальности действия
  • формирование среднего значения
  • затухание

Кроме того, может быть задана функция датчика:

  • мультиплексная функция
  • температурная компенсация
  • функция кнопки или УЗ-барьера.

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

Подстройка с потенциометрами

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

Просмотров