Страница в pdf

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

HC-SR04_01bVcc – напряжение питания 5 вольт
Trig – вход запускающих импульсов для процесса измерения
Echo – выход импульса длительность которого пропорциональна расстоянию.
GND – общий провод питания.

Для демо примера будем использовать плату ILLISSI-4B-03-primum и плату индикации ILLISSI-4С-01-secundo.

HC-SR04_02

В качестве управления будем использовать вывод RC2, для измерения длительности будем использовать вход T1G (RB5). Подключение:

HC-SR04_03

Для измерения частоты используется таймер 1 и его Gate-модуль управления.

HC-SR04_04

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

Для измерения сигнала настроим таймер для измерение длительности импульсов. На вход будем подавать тактовую частоту 1 мГц. Что соответствует 1 мкс длительности. Измеряемый импульс (эхо от модуля HC-SR04) будем подавать на вход T1G.

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

Процесс измерения начинается с инициализации таймера и сброса флага переполнения таймера.


Особенности работы модуля не соответствующие описанию.

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

HC-SR04_05

Длительность импульса ответа непрерывна и прерывается только в момент формирования импульса запуска измерения. Вид на ответ от модуля в ситуации отсутствия эха.

HC-SR04_06

Если эхо присутствует, то мы будем видеть следующие осциллограммы работы с модулем.

HC-SR04_07

В начале формируется (на входе Trig) импульс запуска длительностью не менее 10 мкс. После этого модуль через 0,5 мс, начинает формировать ответ импульсом длительностью пропорциональной расстоянию. На нижнем рисунке, пример, формирования импульса (это расстояние от поверхности моего стола до потолка и составляет 1,74 м).

HC-SR04_08

Длительность 10114 мкс. Что составляет 10114/58=174 см.


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

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

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

После выполнения измерения, останавливаем таймер:

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

Примечание: для устранения “дрожания” показаний применим «накапливающий интегратор». За это отвечают строки:

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


Выводы: Датчик обладаем широким углом захвата, поэтому его рекомендуется устанавливать над плоскими поверхностями на расстоянии не менее 10 мм. В связи с этим он захватывает отраженные импульсы от предметов которые находятся от его оси до ±15 грд., что необходимо учитывать при конструировании устройств. Реальная чувствительность не более 3 метров. На большие расстояния не хватает или мощности формируемого импульса или чувствительности приемника. Мое мнение – я считаю, что для таких модулей вывод измеряемого параметра в виде ширины импульса не практично, так-как получается два цикла измерения, первое это измерение делает модуль, второе контроллер. Для таких устройств желательно, что-бы все эти преобразования были выполнены в самом модуле. А на выходе формировать уже значение расстояния в виде готовых цифровых данных. А получать данные из модуля, удобно через последовательные интерфейсы I2C, SPI или UART.


Фото демо проекта

HC-SR04_11

HC-SR04_09


Видео демо проекта

__


Проект

Описание с изменениями V2.0


Это может быть интересно


  • Проект с использованием MCC часть 02Проект с использованием MCC часть 02
    Когда мы запустили конфигуратор, самое главное понять, что с этим делать и как проверить, то что мы делаем работает или нет. Для начала настроим регистры конфигурации микроконтроллера и настроем тактовый генератор. …
  • Индикатор температурыИндикатор температуры
    Проект для начинающих, на демо плате BB-2T3D-01. Простой индикатор температуры. Проект никак не задумывался, просто на витрину магазин Ворон нужна была демонстрационная модель на макетной плате, чего нибудь работающего. Остановились на индикаторе температуре. Нужен был какой нибудь выводной …
  • Проект с использованием MCC часть 16Проект с использованием MCC часть 16
    Продолжим изучение EUSART. На этом этапе отработает передачи данных с ПК и получения эха. Для этого в основной цикл программы добавим код

    [crayon-5deae29561b2e829663925/]

    Суть его проста постоянно в главном цикле …

  • Система AT команд версии V2.0 для ESP8266 и ESP32Система AT команд версии V2.0 для ESP8266 и ESP32
    Появление нового модуля на базе ESP32 заставило систематизировать систему AT команд, а так же систему обновления и для модулей на базе ESP8266. Начиная с версии v2.0 в ESP8266 внедряется прошивка …
  • Бегущие огни на WS2812BБегущие огни на WS2812B
    В настоящее время большой популярностью стали пользоваться светодиоды со встроенным драйвером WS2812B. Текущий проект предназначен показать возможность использования и управления этими светодиодами. Это и проект и исследование по работе с …
  • Применение typedef, struct и unionПрименение typedef, struct и union
    Полезные описания переменных Часто необходимо в памяти расположить последовательно разные виды данных, что бы потом можно было их использовать. Полезные ссылки Взято и переработано с сайта http://www.butovo.com/~zss/cpp/struct.htm http://cppstudio.com/post/9172/ Синтаксис структур. …
  • MPLAB® Harmony – или как это просто! Часть 2.MPLAB® Harmony – или как это просто! Часть 2.
    Часть вторая – Первая программа на PIC32. Музыкальная тема к статье, слушаем: Для начала изучения PIC32 надо иметь или демоплату или самому её изготовить имея микроконтроллер. Начнем из трудоемкого варианта …
  • LED драйвер TM1639LED драйвер TM1639
    TМ1639 позволяет работать на матрицу 8*8 или 8 семисегметных индикаторов. Может работать как на индикаторы с общим катодом, но и есть возможность подключать общим анодом. Для управления драйвером используется трех …
  • Цифровой тахометр для автомобиля CH-С3300Цифровой тахометр для автомобиля CH-С3300
     Тахометр Ch-С3300 предназначен для индикации и контроля оборотов, времени работы и максимальных оборотов развиваемых двигателем во время поездки. Датчиком может использоваться как обычный контактный прерыватель или выход датчика холла автомобиля …
  • MCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналовMCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналов
    При проектировании простых устройств автоматики, часто необходимо иметь механизм звукового оповещения. Самый верхний уровень, это формирование голосовых сообщений, но об этом, как то по позже… В самом примитивном варианте можно …



Translate »

Copyright © Catcatcat electronics 2013-2019. Все права защищены.
Копирование разрешается только с указанием активной ссылки на правообладателя.

e-mail: catcatcat.electronics@gmail.com