реклама на сайте
подробности

 
 
> компаратор+таймер1, глюки схемы захвата
DPanyta
сообщение Oct 10 2012, 10:56
Сообщение #1





Группа: Участник
Сообщений: 9
Регистрация: 30-01-09
Пользователь №: 44 196



Суть:
Измеряю ёмкость (датчика уровня воды). Через резистор начинается зарядка конденсатора (датчика), одновременно запускается
TIMER1. Когда напряжение на датчике достигает опорного (задано делителем 1Ком+1Ком - половина питания 5в), компаратор
"захватывает" насчитанное счётчиком.

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

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

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

Мож кто делал что-то подобное? И победил sm.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DPanyta
сообщение Oct 10 2012, 21:33
Сообщение #2





Группа: Участник
Сообщений: 9
Регистрация: 30-01-09
Пользователь №: 44 196



Кажет, к примеру 640.
Захожу через пару минут - 610.

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

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

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

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

Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 11 2012, 05:12
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



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


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 23:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01398 секунд с 7
ELECTRONIX ©2004-2016