Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: компаратор+таймер1
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
DPanyta
Суть:
Измеряю ёмкость (датчика уровня воды). Через резистор начинается зарядка конденсатора (датчика), одновременно запускается
TIMER1. Когда напряжение на датчике достигает опорного (задано делителем 1Ком+1Ком - половина питания 5в), компаратор
"захватывает" насчитанное счётчиком.

Вроде всё просто. Но. Сильнейшие, как их назвать... флуктуации sm.gif

Значения здорово скачут. "Стабильности нет" sm.gif До +-20ти единиц. И в железе и в Протеусе! Ужель Протеус так могуч?
Немного уменьшил скачки электролитами по питанию. Ещё задавил программным усреднением. Ну ладно есть температурный
дрейф - медленно (за полчаса) плавает с прогревом/остыванием всего девайса.

И всё равно скачки то +3, то -5.
Важно: индикатор светодиодный, индикация динамическая прямо с ног тиньки через резисторы.

Мож кто делал что-то подобное? И победил sm.gif
RabidRabbit
Честно говоря, не понятен масштаб бедствия. Одно дело 100 +-20, другое дело 10000 +-20
Палыч
Цитата(DPanyta @ Oct 10 2012, 14:56) *
Значения здорово скачут. "Стабильности нет" sm.gif До +-20ти единиц. И в железе и в Протеусе! Ужель Протеус так могуч?

Честно сказать - не знаю/не пользуюсь Протеусом. Но, имхо, вряд ли он "просчитывает" влияния различных факторов (например, возможную нестабильность питания, температуру элементов и т.д.) на выходной результат. Конечно, я могу ошибаться... Но, думаю, что причина "флуктуаций" в другом. 1) Вероятно, Вы не обеспечиваете "одновременность" запуска таймера с началом заряда конденсатора. Возможно, между двумя этими событиями вклиниваются обработчики прерываний. 2) Возможно, не обеспечиваете полный разряд конденсатора перед следующим измерением. 3) Причин нестабильности измерений может быть много...

И ещё - RabidRabbit правильно поставил вопрос: 20 единиц - это сколько процентов от полной шкалы измерений?
DPanyta
Кажет, к примеру 640.
Захожу через пару минут - 610.

Неодновременность запуска стабильна - одна команда выдаёт единицу в порт (начинается зарядка),
следующая запускает счётчик TIMER1. И так каждый раз.

Всё это делается внутри прерывания, обеспечивающего динамическую индикацию (TIMER0).

Полный разряд (проверено осциллографом) даёт измеряющий порт (разворачиваемый на выход).

Уже сделал измерения Между включениями разрядов индикации - та же петрушка...

demiurg_spb
Я лет 5 назад тоже пытался реализовать SLOPE ADC на AVR. Посмотрел апнот для MSP430, там всё внятно написано. Идею понял.
Реализовал на AVR - результаты получил мягко говоря не очень. Забросил на год, сделал ещё одну попытку - аналогичная ситуация.
И главное я так и не смог понять причин происходящего. Вроде всё граматно сделал. Никаких других прерывания в прошивке не разрешал, но даже близко не удалось получить измеряемую величину. (я измерял сопротивление, заряжая кондёр до AREF и разряжая его то через эталонный резистор, то через измеряемый и измерял время переходного процесса).
Так и забросил эту идею...
Это наверное единственный случай в моей инженерной практике, когда я так и не докопался до сути проблемы. До сих пор вспоминаю. Обидно.
muravei
Цитата(DPanyta @ Oct 10 2012, 14:56) *
Суть:
Измеряю ёмкость (датчика уровня воды).

Измерьте емкость ... конденсатора, для пробы. Соизмеримого.
hd44780
Цитата(DPanyta @ Oct 10 2012, 13:56) *
Измеряю ёмкость (датчика уровня воды).

..................

Мож кто делал что-то подобное? И победил sm.gif


Я видел нечто подобное для ёмкостных датчиков влажности, коих сейчас развелось, как у собаки блох.
В своё время приобрёл такой датчик и нашёл конструкцию, его использующую - материалы вложил. Там схема и исходник (WinAvr, но без makefile biggrin.gif ).
Ссылка на тот проект есть в архиве, но она уже сдохла.

Идея там такая - датчик используется как кондёр в генераторе. Меняется ёмкость - меняется частота. Проц просто меряет таймером частоту и считает что надо.

Сам не делал, руки никак не дойдут до этого датчика sad.gif .... Хотя предпочитаю работать с датчиками, имеющими аналоговый выход (на АЦП). С ними головной боли поменьше ....
ILYAUL
А ёмкость после измерения разряжаете?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.