Питание ультразвуковой датчик для ардуино. Ардуино: ультразвуковой дальномер HC-SR04

Является ультразвуковым датчиком расстояния - дальномером. Принцип работы датчика очень похож на работу сенсоров летучих мышей или дельфинов. Датчик излучает пакет звуковых импульсов на ультразвуковой частоте. Отраженные от препятствий звуковые волны возвращаются обратно к датчику. Микрофон датчика улавливает первый пришедший импульс. По времени прохождения импульса можно вычислить расстояние до препятствия. Ультразвук не слышен человеческим ухом, по этому датчик не производит никаких слышимых шумов. Исходя из принципа работы можно определить основные особенности измерения расстояния таким датчиком. Во первых, датчик измеряет расстояние в определенном секторе пространства перед собой, равный 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);

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

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

В данное статье рассмотрим принцип работы ультразвукового дальномера HC-SR04.

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

Используемые компоненты (купить в Китае):

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

1. Подаем импульс продолжительностью 10 мкс, на вывод Trig.

2. Внутри дальномера входной импульс преобразуется в 8 импульсов частотой 40 КГц и посылается вперед через "T глазик"

3. Дойдя до препятствия, посланные импульсы отражаются и принимаются "R глазиком". Получаем выходной сигнал на выводе Echo.

4. Непосредственно на стороне контроллера переводим полученный сигнал в расстояние по формуле:

ширина импульса (мкс) / 58= дистанция (см)

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

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

Модуль оборудован четырех-пиновым разъемом стандарта 2.54мм

VCC : "+" питания

TRIG (T) : вывод входного сигнала

ECHO (R) : вывод выходного сигнала (Длина сигнала зависит от расстояния объекта до датчика)

GND : "-" питания

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

пример программного кода:

#define Trig 9 #define Echo 8 #define ledPin 13 void setup //инициируем как выход pinMode (Echo, INPUT ); //инициируем как вход pinMode (ledPin, OUTPUT ); Serial .begin (9600); /* задаем скорость общения. В нашем случае с компьютером */ } unsigned int impulseTime=0; unsigned int distance_sm=0; void loop () { digitalWrite (Trig, HIGH ); /* Подаем импульс на вход trig дальномера */ delayMicroseconds (10); // равный 10 микросекундам digitalWrite (Trig, LOW ); // Отключаем impulseTime=pulseIn (Echo, HIGH ); // Замеряем длину импульса distance_sm=impulseTime/58; Serial .println (distance_sm); // Выводим на порт if (distance_sm<30) // Если расстояние менее 30 сантиметром { digitalWrite (ledPin, HIGH ); // Светодиод горит } else { digitalWrite (ledPin, LOW ); // иначе не горит } delay (100); /* ждем 0.1 секунды, Следующий импульс может быть излучён, только после исчезновения эха от предыдущего. Это время называется периодом цикла (cycle period). Рекомендованный период между импульсами должен быть не менее 50 мс. */ }

Дополнительный пример работы:

Взаимодействие дальномера и сервопривода. Дистанция, измеряемая дальномером преобразуется в угол поворота сервопривода

Пример программного кода

//Тестировалось на Arduino IDE 1.0.1 #include #define coef 10 //(коэффициент соответствия 10 градусов на 1см) #define dead_zone 4 #define max_value 22 #define Trig 9 #define Echo 8 #define ledPin 13 #define servoPin 11 Servo myservo; void setup () { pinMode (Trig, OUTPUT ); //инициируем как выход pinMode (Echo, INPUT ); //инициируем как вход pinMode (ledPin, OUTPUT ); myservo.attach (servoPin); myservo.write (0); } unsigned int impulseTime=0; unsigned int distance_sm=0; void loop () { digitalWrite (Trig, HIGH ); /* Подаем импульс на вход trig дальномера */ delayMicroseconds (10); // равный 10 микросекундам digitalWrite (Trig, LOW ); // Отключаем impulseTime = pulseIn (Echo, HIGH ); // Замеряем длину импульса distance_sm = impulseTime/58; // Пересчитываем в сантиметры if (distance_sm >= dead_zone && distance_sm <= max_value) { myservo.write (coef * (distance_sm - dead_zone)); } else if (distance_sm < dead_zone)// если дистанция менее 4 см, серва в положении ноль градусов { myservo.write (0); } else { myservo.write (180); } delay (100); /* ждем 0.1 секунды, Следующий импульс может быть излучён, только после исчезновения эха от предыдущего. Это время называется периодом цикла (cycle period). Рекомендованный период между импульсами должен быть не менее 50 мс. */ }

Ультразвуковые датчики 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 лучше адаптируются к применениям, связанным с контролем уровней.

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

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

Просмотров