Страница 1 из 1

ИК-дальномер SHARP и AVR

Добавлено: Вс ноя 23, 2014 10:15:09
Vicont
Мяу, товарищи!
Я пытаюсь прикошачить ИК-дальномер SHARP GP2Y0A21 к ATmega8.
Этот датчик может измерять расстояние в диапазоне от 10 до 80 см. На выходе формируется аналоговый сигнал со следующей характеристикой:
Изображение

Собрал такой вот нехитрый испытательный стенд на макетной плате:
СпойлерИзображение

Изображение
Частоту кварца взял 12 МГц.
АЦП настроил на работу в непрерывном режиме, прерывание от АЦП запретил, коэффициент предделителя тактовой частоты АЦП выставил 1/64, чтобы 12МГц/64=187,5кГц, находился в диапазоне 50...200 кГц, в качестве опорного источника выбрал внутренний ИОН на 2,56В, канал мультиплексора АЦП задействовал один единственный - ADC0.
Вывод AREF соединил с массой через конденсатор 0,1uF, а аналоговую часть запитал через индуктивность 10uH.
На индикацию результат измерения выводится уже преобразованный в сантиметры.

В принципе устройство заработало, но аналоговый сигнал с датчика оказался крайне нестабильным, и показания индикатора быстро мелькали в интервале 10-15 см, хотя датчик был наставлен в стенку.
Исследовав сигнал с помощью осциллографа узел такую вот картину маслом: всюду были страшные импульсы с периодом ~1mS и размахом ~70mV, кроме того иногда проскакивали "иголки", доводившие общий размах сигнала до ~172mV.
Изображение

Первое, что мне пришло в голову - это соединить вход АЦП с массой, через конденсатор 0,1uF. В результате "иголки" пропали, общий размах сигнала составил ~66mV, что по прежнему не удовлетворительно. Больше путного сделать не получилось... :(
Изображение

Помогите, пожалуйста, выйти из тупика. Это мой первый опыт работы с АЦП.
Есть ли способ, с помощью которого можно стабилизировать сигнал, чтобы уменьшить размах до 2-3 mV ?
И это лучше/проще осуществить программно или аппаратно ?

Во вложении я поместил проект в Шпротеусе с исходным кодом, откомпилированной hex-прошивкой и даташитом на датчик.

Re: ИК-дальномер SHARP и AVR

Добавлено: Вс ноя 23, 2014 11:47:29
vem566
Нужно кроме конденсатор со входа МК на массу еще резистор между выходом и входом. Обычный интегратор.

Re: ИК-дальномер SHARP и AVR

Добавлено: Вс ноя 23, 2014 14:49:32
стьюдент
Может попробовать накапливать массив измерений и находить среднее арифметическое?

Re: ИК-дальномер SHARP и AVR

Добавлено: Вс ноя 23, 2014 16:21:57
codenamehawk
Посмотреть питание на датчике и при необходимости отфильтровать.

Re: ИК-дальномер SHARP и AVR

Добавлено: Вс ноя 23, 2014 17:06:35
Vicont
vem566 писал(а):Нужно кроме конденсатор со входа МК на массу еще резистор между выходом и входом. Обычный интегратор.
Спасибо, картина немного улучшилась. :)
Номинал резистора я подбирал экспериментальным путем.
В итоге остановился на 75 кОм, емкость конденсатора не менял, оставил 0,1uF.
Размах сигнала уменьшился до 30mV, что довольно не плохо. Падение напряжения между входом и выходом RC-цепочки составила 40 mV
На расстояниях от 10 до 35 см показания на индикаторе более-менее стабильны, дальше 35 см уже начинают мелькать.
Изображение

В последствии я постепенно я довел сопротивление до 330 кОм - и тенденция к улучшению сошла на нет: Размах сигнала сокращаться перестал, а падение напряжения между входом и выходом только увеличивалось, и я вернулся к 75 кОм.
Таким образом, хоть применение интегрирующей RC-цепочки и дало позитивный результат, но это не панацея - общий результат по прежнему не удовлетворительный. :(

стьюдент писал(а):Может попробовать накапливать массив измерений и находить среднее арифметическое?
да, надо попробовать. На следущих выходных, когда появится свободное время, начну обдумывать такой алгоритм. :write:

codenamehawk писал(а):Посмотреть питание на датчике и при необходимости отфильтровать.
Ой! А вот о питании датчика я вообще не подумал... :oops:
Оказывается там иногда случаются провалы с 4,75 до 4,13 V :shock:
А у датчика по даташиту: Supply voltage : 4.5 to 5.5 V ... :facepalm:
Изображение

Причем я заметил, что частота провалов в питании подозрительно равна появлению пиковых импульсов в выходном сигнале.
Меня терзают смутные сомнения... (с) :roll:

Re: ИК-дальномер SHARP и AVR

Добавлено: Вс ноя 23, 2014 17:16:23
vem566
Вообще-то питание проверяют первым.

Re: ИК-дальномер SHARP и AVR

Добавлено: Вс ноя 23, 2014 17:58:57
Vicont
Добавил в цепь, питающую датчик, 2 конденсатора: керамический 0,1uF + электролитический 100uF :solder:
(правильно ли я поступил, или в данном случае целесообразнее применить какой-нибудь другой способ фильтрации питания ? :roll: )

Изображение

В результате картина улучшилась, но показания на индикаторе всё еще нестабильны. :(

Re: ИК-дальномер SHARP и AVR

Добавлено: Вс ноя 23, 2014 18:14:20
vem566
Это откуда же такое питание?

Re: ИК-дальномер SHARP и AVR

Добавлено: Вс ноя 23, 2014 18:52:06
Триод
В даташите на датчик указано, что первое измерение он делает не ранее, чем через 52.9 мс, этот факт учитываешь в программе?

Re: ИК-дальномер SHARP и AVR

Добавлено: Вс ноя 23, 2014 20:07:13
Vicont
vem566 писал(а):Это откуда же такое питание?
Нууу... Мой испытательный стенд питается от блока, входившего в комплект электронной книги "оникс": макс. вых. ток 1А, напряжение 5В, выход - USB-порт. Через него питание поступает на отдельный модуль, установленный на макетную плату. На модуле имеется электролитический конденсатор на 100uF.
Изображение Изображение Изображение Изображение

1) на левой осциллограмме запечатлено измерение на выходе блока питания "Оникс" без полезной нагрузки;
2) на правой осциллограмме - измерение на выходе модуля питания от макетной платы (YwRobot), подключенный через блок питания "Оникс" без полезной нагрузки.
В обоих случаях имеются колебания напряжения составляют ~ 20 mV, только во втором случае перепады более плавные.
Изображение Изображение

Как Вы считаете, это приемлемые показатели? Или нужно использовать более здоровое питание? :dont_know:
Триод писал(а):В даташите на датчик указано, что первое измерение он делает не ранее, чем через 52.9 мс, этот факт учитываешь в программе?
Ну да, согласен. Сразу после подачи питания на датчик в течении 52.9 мс есть зона нестабильного сигнала. Но ведь после нее сигнал должен нормализоваться, АЦП работает в непрерывном режиме и сразу же выводит результат каждого измерения на индикацию. То есть эта зона нестабильности перед первым измерением вообще не должна оказать виляние на последующую работу устройства.
Или я сова не учел какой-то фактор?

Re: ИК-дальномер SHARP и AVR

Добавлено: Вс ноя 23, 2014 21:22:48
codenamehawk
Vicont писал(а):
vem566 писал(а): Как Вы считаете, это приемлемые показатели? Или нужно использовать более здоровое питание?
По идее вся нестабильность блока питания передастся на выход датчика.
Кто мешает устроить проверку от другого "чистого" блока питания? (раздельные блоки питания для процессора и для датчика)

Re: ИК-дальномер SHARP и AVR

Добавлено: Пн ноя 24, 2014 02:38:30
Триод
Как вариант, можно запитать всё устройство от трёх пальчиковых батареек и посмотреть на результат