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

 
 
 
Reply to this topicStart new topic
> компаратор+таймер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
RabidRabbit
сообщение Oct 10 2012, 12:29
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 3-12-09
Из: Россия, Москва
Пользователь №: 54 040



Честно говоря, не понятен масштаб бедствия. Одно дело 100 +-20, другое дело 10000 +-20
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 10 2012, 15:43
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



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

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

И ещё - RabidRabbit правильно поставил вопрос: 20 единиц - это сколько процентов от полной шкалы измерений?
Go to the top of the page
 
+Quote Post
DPanyta
сообщение Oct 10 2012, 21:33
Сообщение #4





Группа: Участник
Сообщений: 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
Сообщение #5


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

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



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


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
muravei
сообщение Oct 11 2012, 06:51
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



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

Измерьте емкость ... конденсатора, для пробы. Соизмеримого.
Go to the top of the page
 
+Quote Post
hd44780
сообщение Oct 11 2012, 07:56
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



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

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

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


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

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

Сам не делал, руки никак не дойдут до этого датчика sad.gif .... Хотя предпочитаю работать с датчиками, имеющими аналоговый выход (на АЦП). С ними головной боли поменьше ....
Прикрепленные файлы
Прикрепленный файл  temperature_and_humidity_sensor.zip ( 207.47 килобайт ) Кол-во скачиваний: 11
 


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Oct 11 2012, 08:05
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



А ёмкость после измерения разряжаете?


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post

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

 


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


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