Bruno Gavand
Проект, в котором рассматривается простое и дешевое решение ультразвукового сенсора для измерения расстояния, выполнен на базе микроконтроллера PIC16F877A компании Microchip, но пользователями исходный код может быть адаптирован под другие микроконтроллеры. Сенсор может быть встроен в пользовательские разработки и устройства: детекторы присутствия, роботы, автомобильные системы парковки, устройства измерения расстояния и пр.
Отличительные особенности:
- небольшое количество внешних компонентов;
- размер кода 200 Байт;
- диапазон рабочих расстояний: 30 см – 200 см;
- точность измерений ±1 см;
- индикация при выходе за пределы измерений.
Как известно, скорость звука в воздухе равна около 340 м/с. Таким образом, принцип ультразвукового сенсора состоит в посылке ультразвуковой импульса частотой 40 кГц и отслеживание отраженного сигнала (эхо). Конечно, звука вы не услышите, но ультразвуковой датчик способен определить отраженный импульс. Следовательно, зная время прохождения импульса и отраженного ультразвукового сигнала, мы сможем получить расстояние. Разделив на два, мы получим расстояние от ультразвукового датчика до первого препятствия, от которого был отражен сигнал.
В устройстве применен пьезокерамический ультразвуковой излучатель MA40B8S и пьезокерамический ультразвуковой датчик MA40B8R открытого типа. Основные параметры приведены в таблице ниже.
Устройство | Назначение | Частота | Направленность, град |
Емкость, пФ |
Область детектирования, м |
Входное напряжение, макс, В |
MA40B8S | Излучатель | 40 кГц | 50 (симметричный) | 2000 | 0.2 … 6 | 40 |
MA40B8R | Датчик | 40 кГц | 50 (симметричный) | 2000 | 0.2 … 6 | — |
Для тестирования была применена отладочная платформа компании mikroElektronika EasyPic4.
Однако пользователь может использовать любой микроконтроллер PIC, у которого имеется хотя бы один канал АЦП и один канал ШИМ.
Принципиальная схема ультразвукового сенсора
Управление излучателем осуществляется посредством транзистора BD135. Диод 1N4007 служит для защиты транзистора от обратного напряжения. Благодаря использованию транзистора и резонансной цепочки, которая образована параллельным включением дросселя L1 330 мкГн и конденсатора, образованного самим излучателем, напряжение питания излучателя составит около 20 В, что обеспечивает дальность обнаружения до 200 см. Стоит заметить, что управлять излучателем возможно непосредственно с вывода микроконтроллера, однако в таком случае диапазон расстояний не превышает 50 см.
Датчик подключен непосредственно к АЦП микроконтроллера (при использовании PIC16F877A – канал 1 АЦП), резистор, включенный параллельно датчику, необходим для согласования импеданса.
Для начала необходимо послать ультразвуковой импульс. Сигнал с частотой 40 кГц легко получить с использованием аппаратного ШИМ микроконтроллера. Отраженный сигнал с датчика поступает в АЦП, разрешение АЦП составляет 4 мВ, что вполне достаточно для считывания данных с датчика, и дополнительные компоненты не нужны.
Внешний вид макетной платы ультразвукового сенсора
Этот сенсор – самое простое решение, и поэтому имеет несколько недостатков: небольшая вибрация ультразвукового приемника может привести к неправильным измерениям. Так как посылаемый импульс не модулирован и не кодирован, посторонние источники ультразвуковой частоты могут влиять на измерение, и все это может привести к неправильным результатам (выход за пределы измерений).
Осциллограмма сигнала на выходе ультразвукового датчика.
Надписи на изображении:
ultrasonic burst – ультразвуковой импульс;
mechanical echo (removed by software) – механическое эхо (исключается программно);
ultrasonic wave reflected by remote object – ультразвуковая волна, отраженная от удаленного объекта.
Цена деления осциллографа: по горизонтали – 1 мс/дел, по вертикали - 5 мВ/дел.
Механическое эхо исключается программно путем введения задержки. Отраженная волна, имеющая амплитуду около 40 мВ, получена через 9.5 мс после отправленного импульса. Учитывая, что скорость звука 340 м/с, получаем:
0.0095 / 2×340 = 1.615 м.
В реальности – это был потолок помещения на расстоянии от датчика 172 см, на ЖК дисплее, установленном на отладочной плате было отображено значение 170 см.
Загрузки
Исходный код к проекту на микроконтроллере PIC16F877A (компилятор mikroC) - скачать