В распространенных сериях недорогих датчиков расстояния интегрированы инфракрасный излучающий диод, линейка ПЗС и устройство обработки сигнала. Выходное постоянное напряжение VS датчика имеет нелинейную зависимость от расстояния D (Рисунок 1).
![]() |
|
Рисунок 1. | Аналоговое напряжение на выходе сенсора зависит от расстояния нелинейно. |
Для улучшения линейности изготовители советуют использовать зависимость выходного напряжения датчика от величины обратной расстоянию (Рисунок 2). Можно воспользоваться средствами электронной таблицы Excel, чтобы вычислить два или три коэффициента альтернативной зависимости, которые будут необходимы микроконтроллеру при расчете расстояний на основании полученных значений VS. Для вычислений потребуется арифметика с плавающей точкой и, соответственно, большой объем машинного кода, что крайне нежелательно для многих микроконтроллеров в связи с ограниченным размером их памяти.
![]() |
|
Рисунок 2. | Зависимость выходного напряжения сенсора от величины обратной расстоянию, характеризуется существенно лучшей линейностью. |
![]() |
В статье описывается датчик расстояния с улучшенной линейностью, не требующий громоздких вычислений для определения дистанции. В испытанной на реальном макете схеме используется сенсор Sharp GP2D120 [1], способный измерять расстояния от 40 до 300 мм. В настоящее время сенсор снят с производства. Если у вас возникнут затруднения с его покупкой, можно воспользоваться более современной версией – Sharp GP2Y0A21YK0F [2] с диапазоном измерений от 100 до 800 мм. Правда, работа схемы с этим датчиком не проверялась. |
![]() |
|
Рисунок 3. | Наилучшая линейность обеспечивается при использовании зависимости от расстояния величины обратной выходному напряжению датчика. |
![]() |
|
Рисунок 4. | Благодаря включению преобразователя напряжение-частота AD654 между датчиком и микроконтроллером, зависимость между периодом импульсов и дистанцией становится линейной. Для отображения результатов подойдет любой стандартный ЖК индикатор. |
Рисунок 3 позволяет оценить, насколько улучшается линейность при использовании в расчетах величины обратной выходному напряжению датчика (1/VS). На Рисунке 4 изображена схема, обеспечивающая линейную взаимосвязь расстояния с измеренными параметрами. Главный элемент схемы – установленный между датчиком и микроконтроллером преобразователь напряжение-частота (ПНЧ), такой, скажем, как AD654 [3, 4]. Отклик датчика описывается выражением
где
D – измеряемое расстояние,
a и b – коэффициенты.
Выходная частота ПНЧ зависит от входного напряжения линейно:
где
SF – коэффициент,
f – частота выходных импульсов.
Период выходных импульсов равен
Микроконтроллер вычисляет период как количество импульсов N тактовой частоты TCLK:
Внутренняя тактовая частота в микроконтроллерах MC68HC11 равна одной четвертой частоты внешнего источника синхронизации. В нашей схеме, при частоте кварцевого резонатора 8 МГц, TCLK = 2 МГц, и соответственно, период тактовых импульсов, определяющий выбор номиналов частотозадающих компонентов ПНЧ, равен 0.5 мкс.
Теперь у нас достаточно соотношений, чтобы построить выражение, связывающее N и D:
которое, как мы видим, описывает прямую линию. Отметим еще раз, что все вычисления выполняются на схемном уровне без участия микроконтроллера.
RC элементы на выходе датчика служат для согласования размаха выходного напряжения сенсора с рабочим диапазоном входных напряжений ПНЧ, а также для частичного подавления шумов 1 кГц, присутствующих в выходном сигнале датчика.
Резисторный делитель слегка изменяет выражение для отклика:
где
kD – коэффициент передачи делителя,
α – коэффициент наклона,
β – смещение.
Листинг 1. Подпрограмма вычисления расстояния.
Измерение LDAA #$01 ; Очистить флаг IC3
STAA TFLG1,X
BRCLR TFLG1,X $01 * ; Ожидание нарастающего фронта
LDD TIC3,X
STD t1 ; Сохранить время обнаружения фронта импульса
LDAA #$01 ; Очистить флаг IC3
STAA TFLG1,X
BRCLR TFLG1,X $01 * ; Ожидание следующего нарастающего фронта
LDD TIC3,X
STD t2 ; Сохранить время обнаружения второго фронта импульса
SUBD t1 ; Вычисление периода
SUBD #10 ; Вычитание смещения из измеренного результата
STD N ; Сохранение результата
RTS
Листинг 1 представляет подпрограмму управления измерениями и вычисления дистанции. Из-за того, что датчик не способен измерять нулевое расстояние, калибровка оказывается достаточно трудоемким занятием. Наклон зависимости, описываемой последним уравнением, можно изменять с помощью управляющего коэффициентом преобразования ПНЧ подстроечного резистора 500 Ом, используя две опорные дистанции. Если в качестве опорных выбраны расстояния, скажем, 80 и 220 мм, надо добиться, чтобы разница соответствующих показаний дисплея составляла 140. Завершив регулировку наклона, рассчитайте смещение, воспользовавшись результатом измерений на любой из двух опорных дистанций. Это смещение будет программно вычитаться из измеренного значения N. Собранная и откалиброванная схема была протестирована во всем диапазоне измерений с шагом 20 мм. Ошибка нелинейности составила ±3 мм, что в 2.7 раза меньше, чем при измерениях, основанных на использовании зависимости VS(1/D).
Ссылки