Как работает ультразвуковой датчик ардуино. Ультразвуковые SIMATIC PXS - Датчики приближения SIMATIC PX

Является ультразвуковым датчиком расстояния - дальномером. Принцип работы датчика очень похож на работу сенсоров летучих мышей или дельфинов. Датчик излучает пакет звуковых импульсов на ультразвуковой частоте. Отраженные от препятствий звуковые волны возвращаются обратно к датчику. Микрофон датчика улавливает первый пришедший импульс. По времени прохождения импульса можно вычислить расстояние до препятствия. Ультразвук не слышен человеческим ухом, по этому датчик не производит никаких слышимых шумов. Исходя из принципа работы можно определить основные особенности измерения расстояния таким датчиком. Во первых, датчик измеряет расстояние в определенном секторе пространства перед собой, равный 15 градусам, и любой предмет, помещенный в этот сектор, способен отразить звуковую волну. Если предмет достаточно маленький, то мощности отраженной волны может не хватить для определения расстояния до такого предмета, и он становится «не видим» для датчика. Некоторые поверхности, если они расположены под углом к датчику, отражают звуковые волны в сторону, как зеркало. В этом случае датчик так же может давать ложные данные.

Датчик HC-SR04 имеет два контакта для подключения к микроконтроллеру: TRIG и ECHO. Для начала процесса измерения необходимо на вход TRIG подать сигнал высокого уровня длительностью 10 мкс. Датчик излучит в пространство серию ультразвуковых импульсов. После приема отраженного сигнала, датчик формирует на выводе ECHO импульс высокого уровня, длительность которого пропорционально расстоянию до преграды (150мкс-25мс). После одного цикла работы датчика, волны продолжают распространяться по помещению и отражаться. Если в этот момент снова активизировать измерение, вполне вероятно, что сенсор датчика зафиксирует отраженные волны от предыдущей серии импульсов и результат измерения будет не верным.


Для пересчета в длины импульса в расстояние используется формула:
S=F/58,
где:
S - дистанция в сантиметрах,
F - длительность импульса ECHO в микросекундах.

На рисунке приведен один из возможных вариантов подключения дальномера HC-SR04 к Ардуино. Контакт TRIG дальномера подключен к Pin 9, контакт ECHO к Pin 8. Дальномер запитан от напряжения питания 5 вольт, взятое с платы Arduino.

Для работы с дальномером HC-SR04 c Arduino удобно использовать функцию pulseIn. При помощи этой функции меряется длительность импульса на контакте ECHO. Ниже приведен пример программы для Arduino, которая опрашивает дальномер HC-SR04 и передает измеренное значение в сантиметрах в последовательный порт. Данные из последовательного порта считываем монитором, входящим в комплект программы IDE Arduino.

#define Trig 9
#define Echo 8

Void setup()
{
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
Serial.begin(9600);
}

Void loop()
{
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
unsigned int impulse=pulseIn(Echo, HIGH);
unsigned int distance=impulse/58;
Serial.println(distance);
delay(1000);

Новые статьи

● Проект 23: Ультразвуковой датчик расстояния HC-SR04. Принцип работы, подключение, пример

В этом эксперименте мы рассмотрим ультразвуковой датчик для измерения расстояния и создадим проект вывода показаний датчика на экран ЖКИ WH1602.

Необходимые компоненты:

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

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

Измеряемый диапазон - от 2 до 500 см;
. точность - 0,3 см;
. угол обзора - < 15°;
. напряжение питания - 5 В.

Датчик имеет 4 вывода стандарта 2,54 мм:

VCC - питание +5 В;
. Trig (T) - вывод входного сигнала;
. Echo (R) - вывод выходного сигнала;
. GND - земля.

Последовательность действий для получения данных такова:

Подаем импульс продолжительностью 10 мкс на вывод Trig;
. внутри дальномера входной импульс преобразуется в 8 импульсов частотой 40 кГц и посылается вперед через излучатель T;
. дойдя до препятствия, посланные импульсы отражаются и принимаются приемником R, в результате получаем выходной сигнал на выводе Echo;
. непосредственно на стороне контроллера переводим полученный сигнал в расстояние по формуле:

Ширина импульса (мкс) / 58 = дистанция (см);
-- ширина импульса (мкс) / 148 = дистанция (дюйм).

В нашем эксперименте мы создадим звуковую сигнализацию, которая будет включаться при приближении к плате Arduino на расстояние меньше 1 м. Датчик размещен на кронштейне вращающейся сервы и контролирует пространство с углом обзора 180°. Если датчик обнаруживает объект в радиусе 1 м, подается звуковой сигнал на пьзоизлучатель, вращение сервы прекращается. Схема соединения элементов представлена на рис. 23.2.

Рис. 23.2. Схема соединения элементов для звуковой сигнализации

При написании скетча будем использовать библиотеку Servo для работы с сервоприводом и библиотеку Ultrasonic.
Для работы Arduino с датчиком HC-SR04 имеется готовая библиотека - Ultrasonic.
Конструктор Ultrasonic принимает два параметра: номера пинов, к которым подключены выводы Trig и Echo, соответственно:

Ultrasonic ultrasonic(12,13);

Содержимое скетча показано в листинге 23.1.

#include // подключение библиотеки Servo Servo servo1; const int pinServo=8 ; // пин для подключения сервопривода int pos = 0 ; // переменная для хранения позиции сервопривода int dir =1 ; // направление перемещения сервопривода // Выводы для подключения HC-SR04 Trig - 12, Echo - 13 Ultrasonic ultrasonic (12 , 13 ) ; float dist_cm; // переменная для дистанции, см // подключить динамик к pin 9 int speakerPin = 9 ; void setup () { // подключить переменную servo1 к выводу pinServo1 servo1.attach(pinServo1); pinMode(speakerPin, OUTPUT); } void loop () { servo1.write(pos); // поворот сервоприводов на полученный угол delay(15 ); // пауза для ожидания поворота сервоприводов float dist_cm = ultrasonic.Ranging(CM); if (dist_cm<100 && dist_cm>20 ) tone(speakerPin,); // включить пьезозуммер else { tone(speakerPin,0 ); // отключить пьезозуммер pos=pos+dir; // изменение переменной положения сервопривода if (pos==0 || pos==180 ) dir=dir*(-1 ); // изменение направления движения } }
Порядок подключения:

1. Закрепляем датчик расстояния HC-SR04 на сервоприводе.
2. Подключаем датчик HC-SR04, пьезозуммер и сервопривод к плате Arduino по схеме на рис. 23.2.
3. Загружаем в плату Arduino скетч из листинга 23.1.
4. Наблюдаем за циклическим перемещением сервопривода, при попадании объекта в поле зрения датчика 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

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

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

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

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

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

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

Самодельное охранное оборудование

В. ГУСЬКОВ, В. СВИРИДОВ, г. Самара
Радио, 2002 год, № 8

Работа многих систем охранной сигнализации основана на очень простом принципе: в охраняемом помещении в неурочное время не должно быть никакого движения. Чтобы обнаружить его, помещение "заполняют" излучением - чаще всего радио- или акустическим. Многократно отразившись от стен и находящихся в помещении предметов, лучи достигают приемника. Любое изменение обстановки вызовет модуляцию принятого сигнала, что и зафиксирует датчик.
Акустические (ультразвуковые) датчики такого типа имеют довольно существенное преимущество над использующими радиоволны - ничего не излучая в "эфир", они не требуют оформления разрешений на установку и эксплуатацию. Читателям предлагается описание одного из подобных датчиков, сравнительно простого и достаточно чувствительного для охраны помещения площадью до 20 м 2 .

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

Основные технические характеристики

Частота звука, кГц...............10
Излучаемая акустическая
мощность, мВт, не более........5
Напряжение питания (постоянное), В................10...16
Потребляемая мощность
в дежурном режиме, мВт......120
Габариты, мм............150x50x30

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

Схема прибора

Для увеличения кликните по изображению (откроется в новом окне)

К входу усилителя на ОУ DA1.1 и DA1.2 подключен пьезоэлектрический микрофон ВМ1, к выходу - пьезоэлектрический звукоизлучатель BF1. В результате усилитель охвачен акустической обратной связью через контролируемый газовый объем, за счет которой в системе возникают автоколебания. Их частота зависит от АЧХ и ФЧХ элементов (в первую очередь микрофона и излучателя) и от акустических свойств охраняемого помещения. Амплитуду колебаний поддерживает постоянной система АРУ из детектора на диодах VD2, VD3 и усилителя на одном из элементов микросхемы DA2 К176ЛП1. Регулирующими элементами АРУ служат имеющиеся в той же микросхеме отдельные полевые транзисторы, участки сток-исток которых включены в цепи местной обратной связи каскадов на ОУ DA1.1 и DA1.2.

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

Переменная составляющая напряжения на выходе усилителя АРУ, вызванная движением, поступает на вход компаратора DA1.3. Порог срабатывания устанавливают подстроечным резистором R8. К выходу компаратора через буферный усилитель из двух соединенных параллельно элементов микросхемы DD1 подключен светодиод HL1, вспышками свидетельствующий о движении в охраняемом помещении.

Кроме того, сигнал с выходов элементов DD1.1 и DD1.2 запускает одновибратор на элементах DD1.3 и DD1.4, импульсы которого открывают ключ на транзисторе VT2, заставляя сработать реле К1. Одновибратор генерирует импульсы лишь при условии, что на входе 13 элемента DD1.4 - высокий логический уровень. Благодаря цепи R14C16 этот уровень будет достигнут лишь через некоторое время после включения питания, давая датчику возможность войти в установившийся режим, не подавая сигналов тревоги.

Если тревожные импульсы повторяются слишком часто, конденсатор С16 разряжается через резистор R16 и диод VD5, что блокирует запуск одновибрато-ра и предотвращает лишние срабатывания реле К1. Таким образом достигается значительная экономия ресурса реле и потребляемой мощности.

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

Внешний вид датчика показан на рис. 2.

Он собран на печатной плате, помещенной в корпус из изоляционного материала, например, полистирола. На верхней крышке корпуса установлены микрофон ВМ1 и излучатель BF1, акустически изолированные от корпуса и друг от друга с помощью поролоновых шайб толщиной 3 мм. Чем больше расстояние между излучателем и микрофоном, тем выше чувствительность датчика. В авторской конструкции оно составило 100 мм. В той же крышке предусмотрено отверстие для светодиода HL1.

В качестве BF1 и ВМ1 применены одинаковые пьезопреобразователи ВУТА-1, выпускаемые предприятием «Альфа-Оптим» (г. Волгоград). Замена их на более высокочастотные и чувствительные желательна, однако это потребует некоторых доработок датчика, изменяющих частотные характеристики контура автогенерации.

В датчике установлены оксидные конденсаторы К50-35, керамические К10-17, резисторы МЛТ-0,125, реле РЭС55А (паспорт РС4.569.600-01). Транзисторы КТ361Б можно заменить на КТ361Г, КТ361Е и другие маломощные кремниевые структуры р-п-р.

При регулировке чувствительности датчика (подстроечным резистором R8) иногда приходится для достижения нужного результата поменять местами выводы 12 и 13 элемента DA1.3.

ЛИТЕРАТУРА
1. Вилл В. Ультразвуковой автосторож. - Радио, 1996, № 1, с. 52-54.
2. Волков А. УЗ датчик охранной сигнализации. - Радио, 1996, № 5, с. 54-56.
3. Койнов А. Ультразвуковое охранное устройство. - Радио, 1998, № 7, с. 42.
4. Гуськов В., Гуськова М. Способ для определения изменения состояния объема, заполненного упругой средой, и устройства (варианты) для его осуществления. - Патент РФ № 2104494 МКИ 6G 01D1/18, заявлено 26 января 1995 г., опубликовано 10 февраля 1998 г.

  • макетная плата (breadboard);
  • персональный компьютер со средой разработки Arduino IDE.
  • 1 Принцип действия ультразвукового дальномера HC-SR04

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

    Запуск звуковой волны начинается с подачи положительного импульса длительностью не менее 10 микросекунд на ножку TRIG дальномера. Как только импульс заканчивается, дальномер излучает в пространство перед собой пачку звуковых импульсов частотой 40 кГц. В это же время на ножке ECHO дальномера появляется логическая единица. Как только датчик улавливает отражённый сигнал, на выводе ECHO появляется логический ноль. По длительности логической единицы на ножке ECHO («Задержка эхо» на рисунке) определяется расстояние до препятствия.

    Диапазон измерения расстояния дальномера HC-SR04 - до 4 метров с разрешением 0,3 см. Угол наблюдения - 30°, эффективный угол - 15°. Ток потребления в режиме ожидания 2 мА, при работе - 15 мА.

    2 Схема подключения датчика расстояния

    Питание ультразвукового дальномера осуществляется напряжением +5 В. Два других вывода подключаются к любым цифровым портам Arduino, мы подключим к 11 и 12.



    3 Получение дистанции до объекта с датчика HC-SR04

    Теперь напишем скетч, определяющий расстояние до препятствия и выводящий его в последовательный порт. Сначала задаём номера выводов TRIG и ECHO - это 12 и 11 пины. Затем объявляем триггер как выход, а эхо - как вход. Инициализируем последовательный порт на скорости 9600 бод. В каждом повторении цикла loop() считываем дистанцию и выводим в порт.

    Const int trigPin = 12; const int echoPin = 11; void setup() { pinMode(trigPin, OUTPUT); // триггер - выходной пин pinMode(echoPin, INPUT); // эхо - входной digitalWrite(trigPin, LOW); Serial.begin(9600); // инициализация послед. порта } void loop() { long distance = getDistance(); // получаем дистанцию с датчика Serial.println(distance); // выводим в последовательный порт delay(100); } // Определение дистанции до объекта в см long getDistance() { long distacne_cm = getEchoTiming() * 1.7 * 0.01; return distacne_cm; } // Определение времени задержки long getEchoTiming() { digitalWrite(trigPin, HIGH); // генерируем 10 мкс импульс запуска delayMicroseconds(10); digitalWrite(trigPin, LOW); // определение на пине echoPin длительности уровня HIGH, мкс: long duration = pulseIn(echoPin, HIGH); return duration; }

    Функция getEchoTiming() генерирует импульс запуска. Она как раз создаёт тот 10-микросекундный импульс, который является триггером для начала излучения дальномером звукового пакета в пространство. Далее она запоминает время от начала передачи звуковой волны до прихода эха.

    Функция getDistance() рассчитывает дистанцию до объекта. Из школьного курса физики мы помним, что расстояние равно скорость умножить на время: S = V×t Скорость звука в воздухе 340 м/сек, время в микросекундах мы знаем (переменная duration ). Чтобы получить время duration в секундах, нужно разделить его на 1 000 000. Так как звук проходит двойное расстояние - до объекта и обратно - нужно ещё разделить результат пополам. Вот и получается, что расстояние до объекта S = 34000 см/сек × duration / 1 000 000 сек / 2 = 1,7 см/сек / 100, что мы и написали в скетче.

    Операцию умножения микроконтроллер выполняет быстрее, чем операцию деления, поэтому :100 я заменил на эквивалентное ×0,01 .

    4 Библиотека для работы с эхолокатором HC-SR04

    Также для работы с ультразвуковым дальномером написано множество библиотек. Например, вот эта библиотека Ultrasonic . Установка библиотеки происходит стандартно: скачать, разархивировать в директорию /libraries/ , которая находится в папке с Arduino IDE. После этого библиотекой можно пользоваться.

    Установив библиотеку, напишем новый скетч.

    #include // подключаем библиотеку Ultrasonic ultrasonic(12, 11); // Trig - 12, Echo - 11 void setup() { Serial.begin(9600); // инициализация послед. порта } void loop() { float dist_cm = ultrasonic.Ranging(CM); // дистанция в см Serial.println(dist_cm); // выводим дистанцию в порт delay(100); }

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

    Если в скетче написать float dist_cm = ultrasonic.Ranging(INC); - дистанция будет отображаться в дюймах.

    5 Выводы по работе с сонаром HC-SR04

    Итак, мы с вами подключили к Arduino ультразвуковой дальномер HC-SR04 и получили с него данные двумя разными способами: с использованием специальной библиотеки и без.

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

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

    Просмотров