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

Ультразвуковой дальномер с дисплеем на базе платформы Arduino.

  • Используется дисплей на драйвере TM74HC59, что позволяет выводить расстояние с десятичной точкой
  • Для определения расстояния используется дешёвый модуль ультразвукового дальномера
  • Показания с дальномера фильтруются двумя фильтрами, благодаря чему достигнута точность

1 мм

  • Отдельный переключатель позволяет сдвигать начало отсчёта на противоположный конец корпуса
  • Работает от 3х батареек формата АА
  • Приветствую всех. Попал мне в руки недавно ультразвуковой датчик, который измеряет расстояние до объекта – US-100. Подобную вещь можно приобрести на торговых интернет площадках. На рынках своего города таких игрушек в продаже не удалось найти. Было решено построить схему на основе такого датчика на распространенном микроконтроллере AVR ATmega8. Назначение устройства состоит в измерении расстояния до объекта, а также измерения температуры. К слову о температуре. Модель US-100 это ультразвуковой датчик с температурной компенсацией. Скорость распространения звуковой (ультразвуковой) волны при разных температурах будет отличаться. Измерение датчика основано на времени прохождения звуковой волны от объекта до приемника датчика. Температурная компенсация, скорее всего не полностью, устранит погрешность вызванную температурой окружающей среды.

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

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

    Что относительно общения датчика с микроконтроллером, модель US-100 имеет два возможных интерфейса, выбираемые перемычкой на задней стороне платы датчика. Если перемычка стоит выбран интерфейс UART, если перемычка снята, используется интерфейс или режим работы GPIO. В первом случае для общения с микроконтроллером используется либо аппаратные средства микроконтроллера, либо программные. Во втором случае принимать и передавать данные придется только вручную. В схеме устройства задействуем более простой режим работы с использованием UART интерфейса.

    Необходимо уточнить нюансы по распиновке и подключению датчика к микроконтроллеру. Обычно при передачи данных по UART линии Rx и Tx подключаются крест накрест – Rx на Tx, а Tx на Rx. Данный ультразвуковой датчик же нужно подключать в соответствии с подписанными контактами на печатной плате Rx на Rx, а Tx на Tx. Китайцы отожгли, согласен. Прежде чем это определилось, пришлось долго мучиться и в конце концов придти к этому. Итак, при работе по UART, для инициализации одного измерения расстояния ультразвуковому датчику US-100 необходимо на вывод Trig/Tx передать значение 0x55, что соответствует символу "U". В ответ датчик передаст два байта информации о расстоянии на вывод Echo/Rx – первый байт – это старшие 8 бит, второй байт – младшие 8 бит. Единицы измерения расстояния – миллиметры. Чтобы два байта перевести в одно значение расстояния, необходимо первый байт умножить на 256 и прибавить второй байт. Необходимо делать таким образом, потому что при переполнении младшего байта, старший байт увеличивается на единицу. Чтобы вывести текущее значение температуры окружающей среды, необходимо передать значение 0x50, что соответствует символу "P". В ответ датчик передаст значение температуры. Фактическое значение температуры будет равно полученному значению от датчика отнять 45.

    Читайте также:  Планшет стал плохо заряжаться

    Параметры ультразвукового датчика US-100:

    • напряжение питания – 2,4 – 5,5 вольт постоянного напряжения
    • потребляемый ток в режиме ожидания – 2 мА
    • рабочая температура – минус 20 – плюс 70 С
    • угол обзора – 15 градусов
    • интерфейс – GPIO или UART
    • измеряемое расстояние – от 2 см до 450 см
    • погрешность – плюс минус 3 мм + 1%

    Конфигурация UART для датчика: 9600 baud rate, 8 data bits, parity: none, 1 stop bit.

    Перейдем к схеме устройства.

    Схема ультразвукового дальномера построена на основе микроконтроллера Atmega8 и ультразвуковом датчике US-100. Питание схема берется от линейного стабилизатора напряжения L7805, его можно заменить отечественным аналогом КР142ЕН5А, конденсаторы в обвязке стабилизатора обязательны, хотя может работать и без них. Некоторые стабилизаторы просто не запускаются без конденсаторов. Линейный стабилизатор можно заменить на импульсный, например MC34063 или LM2576, но придется немного изменить схему согласно подключению импульсных стабилизаторов в схеме. Конденсаторы С5-С7 необходимы для обеспечения стабильности работы микроконтроллера и датчика. Номиналы всех конденсаторов можно варьировать в разумных пределах. Резистор R2 необходим для предотвращения самопроизвольного перезапускания микроконтроллера и служит подтяжкой положительного питания на вывод reset. Резистор R1 регулирует контраст LCD-дисплея. В качестве информационной панели был взят жидкокристаллический (ЖК или по другому LCD) экран SC1602, 2 строки по 16 символов на основе контроллера HD44780. Заменить LCD-дисплей можно на любую другую модель на базе контроллера HD44780 с таким же количеством строк и символов в строке или больше. На печатной плате LCD-дисплея есть возможность задействовать подсветку экрана двумя способами – либо при помощи допаивания резистора и перемычки на самой плате экранчика или при помощи специальных выводов, обычно обозначенных как "А" и "К". Анод и катод соответственно. К ним через токоограничительный резистор подключается напряжение питания схемы 5 вольт. В данной схеме задействован первый способ, поэтому на схеме не обозначено. Вместо тактовых кнопок S1 – S5 можно использовать любые другие кнопки. Светодиод LED1 можно использовать любой подходящий по цвету или заменить его на транзистор и управлять какой-либо другой схемой в зависимости от превышения дистанции от датчика. В зависимости от примененного типа транзисторов (P-N-P или N-P-N) при превышении лимита дистанции или расстояния выход будет иметь положительное или отрицательное напряжение, то есть при высоком логическом сигнале микроконтроллера транзистор N-P-N будет открыт, а транзистор P-N-P закрыт. В прошивку микроконтроллера заложен параметр, при котором при превышении обозначенного лимита расстояния на вывод PB0 будет подаваться высокий логический уровень напряжения. В данной схеме светодиод просто сигнализирует о превышении. Данный сигнал дублируется на LCD-дисплее подчеркиванием данный о лимите дистанции. Данный параметр можно регулировать кнопками S1, S2. При нажатии происходит увеличение или уменьшение на 10 мм. Информация о дистанции на дисплей выводится также в миллиметрах. Информация о температуре окружающей среды выводится на дисплей в градусах Цельсия. К статье прилагается два варианта прошивок: 1) непрерывное измерение параметров дистанции и температуры (интервал примерно 0,2 секунды), при этом кнопки S4, S5 не задействуются, 2) при нажатии кнопок S4, S5 происходит однократный запрос к датчику на измерение температуры и расстояния. Видео к статье сделано с прошивкой номер 1. Для программирования микроконтроллера необходимо прошить фьюз биты:

    Новичкам рекомендую пользоваться шестнадцатеричными значениями фьюз битов HIGH и LOW, чтобы не напортачить с расстановкой галочек. Скриншот из AVRstudio (есть отличия от дудки, sina prog и других программ для прошивки микроконтроллеров). Если Вы используете программы для прошивки микроконтроллеров AVR, в которых нет ввода параметров фьюзов, то можно воспользоваться фьюз калькуляторами для перевода галочек в шестнадцатеричную форму и наоборот.

    Читайте также:  Вта06 600с как проверить

    Схема была собрана и проверена на макетной плате для Atmega8:

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

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

    К статье прилагаю 2 варианта HEX прошивок для МК, проект в Proteus (версия 7.7, ультразвукового датчика US-100 в базе proteus’а нет, но задействован UART отладчик), а также небольшое видео, демонстрирующее работу схемы.

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

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

    Принцип действия ультразвукового дальномера основан на измерении времени между отправкой и получением звукового импульса. Известно, что скорость звука составляет 343 м/с при температуре 20 ºC, 50% влажности и атмосферном давлении на уровне моря.

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

    Расстояние (см) = время (мкс)/29,2/2.

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

    Сфера применения

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

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

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

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

    Читайте также:  Люстра для маленького зала фото

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

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

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

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

    Также можно использовать датчик US-016, который аналогичен HC-SR04, но имеет аналоговый выход. Если же необходим выход UART, то подойдет модель US-100. Ультразвуковой датчик HC-SR04 довольно дешевый. На AliExpress его можно приобрести за 0,65 €.

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

    Номинальный диапазон измерений датчика HC-SR04 составляет от 2 до 400 см. Однако, на практике фактический диапазон измерений является более ограниченным: от 20 см до 2 метров. Характеристики датчика HC-SR04:

    • Рабочее расстояние: 2 см – 400 см;
    • Частота звука: 40 кГц;
    • Эффективный угол: 15º;
    • Напряжение питания: 5 В;
    • Потребляемый ток: 15 мА.

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

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

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

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

    Датчик имеет следующие разъемы:

    • Vcc — для подключения цепи +5В.
    • Trig — цифровой вход. На него подается сигнал для начала измерительного цикла. Обычно сигнал логической единицы устанавливают на 10 мкс.
    • Echo — цифровой выход. Когда измерение закончится, на данном выходе появится сигнал логической единицы на время, соответствующее измеренному расстоянию.
    • GND — для подключения цепи -5В.

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


    Оставьте ответ

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