АСЦ Atmega8 плавное измерение

Обсуждаем контроллеры компании Atmel.
Ответить
stenkodv
Открыл глаза
Сообщения: 41
Зарегистрирован: Сб фев 13, 2010 10:31:39

АСЦ Atmega8 плавное измерение

Сообщение stenkodv »

Начал делать в машину датчик уровня бензина, проблема в том что измерение асц слишком узкое получается от 0 до 100 прибл. циферки бегают как угарелые причём идёт на увеличение как то непонятно то 10-20- 30- 20- 40- 25 ит.д приблизительно. сопротивление датчика 0-100 Ом (таврия) как можно от этого избавится?
СпойлерИзображение
Реклама
Аватара пользователя
blackx
Говорящий с текстолитом
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Re: АСЦ Atmega8 плавное измерение

Сообщение blackx »

Сглаживайте результат измерений по времени. Например, вот так:

Код: Выделить всё

x = x0 + (p - x0) / k
Где x - сглаженный результат, x0 - предыдущий, p - текущее фактическое измерение, k - коэффициент "сглаживания". Как видно, изменение результата пропорционально модулю разности фактического измерения и предыдущего значения.

К можно экспериментально подобрать: брать значения 10, 100, 1000.
Изображение only pure true norwegian blackx Изображение
Реклама
stenkodv
Открыл глаза
Сообщения: 41
Зарегистрирован: Сб фев 13, 2010 10:31:39

Re: АСЦ Atmega8 плавное измерение

Сообщение stenkodv »

Идею я уловил только не могу с мыслями собраться как это в программе реализовать, если вас не затруднит помогите.
Вложения
adc.rar
(80.16 КБ) 169 скачиваний
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: АСЦ Atmega8 плавное измерение

Сообщение Аlex »

В таких случаях делают кольцевой буфер, заполняют его каждое измерение и выводят среднее значение.
А если "Идею уловил", но "не знаю как это сделать в программе", то, извините за грубость, Вам в программировании делать нечего. Для этого есть раздел "Есть работа" - там Вам что угодно сделают.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: АСЦ Atmega8 плавное измерение

Сообщение menzoda »

Действительно, если не понятно, как запрограммировать простейшее арифметическое выражение, то программированием заниматься не стоит, ну или можно попробовать несколько раз прочитать что-нибудь типа "С для чайников", вдруг поможет.
Реклама
stenkodv
Открыл глаза
Сообщения: 41
Зарегистрирован: Сб фев 13, 2010 10:31:39

Re: АСЦ Atmega8 плавное измерение

Сообщение stenkodv »

blackx писал(а):Сглаживайте результат измерений по времени. Например, вот так:

Код: Выделить всё

x = x0 + (p - x0) / k
Пошёл этим путём, вроде стало лучше но основная проблема осталась, например должно просто идти на увеличение а значение то идёт на увеличение то на уменьшение потом опять вверх, может сам датчик глюканутый. Или аппаратно что то попробовать?
Реклама
mas123
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Re: АСЦ Atmega8 плавное измерение

Сообщение mas123 »

stenkodv писал(а):Или аппаратно что то попробовать?
Стоит и аппаратно посмотреть.
Опора АЦП включается в режиме "AVCC with external capacitor at AREF pin", а ёмкости на указанном выводе не видать.
Аватара пользователя
balmer
Это не хвост, это антенна
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Re: АСЦ Atmega8 плавное измерение

Сообщение balmer »

Аппаратно - попробуйте стандартные средства - AVCC подключать через индуктивность 100 мкГн+конденсатор 100 nF. Добавить на AREF пин конденсатор 1-10 nF. На цифровую часть питания - 10 mkF + 100 nF.
AGND - обязательно подключать к земле.

И еще - в современных LCD дисплеях часто стоят повышающие преобразователи. Если у вас стоит - надо этот источник помех так-же локализовать.

Лично у меня на ATmega8 получалось выбирать все 10 бит абсолютно без шума.
stenkodv
Открыл глаза
Сообщения: 41
Зарегистрирован: Сб фев 13, 2010 10:31:39

Re: АСЦ Atmega8 плавное измерение

Сообщение stenkodv »

stenkodv писал(а):Опора АЦП включается в режиме "AVCC with external capacitor at AREF pin
Это визард сгенерировал, на самом деле ADCSRA|=0x40; AVCC pin, менял руками.
mas123
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Re: АСЦ Atmega8 плавное измерение

Сообщение mas123 »

stenkodv писал(а):
stenkodv писал(а):Опора АЦП включается в режиме "AVCC with external capacitor at AREF pin
Это визард сгенерировал, на самом деле ADCSRA|=0x40; AVCC pin, менял руками.
А с каких пор опора конфигурируется в ADCSRA?
Покажи тогда правильный код. А то ваще оригинально - выкласть код "неправильный" и надеяться на ответ.

Прочти снова даташит про опору. REFS1=0, REFS0=1 в ADMUX означает "AVCC with external capacitor at AREF pin"
stenkodv
Открыл глаза
Сообщения: 41
Зарегистрирован: Сб фев 13, 2010 10:31:39

Re: АСЦ Atmega8 плавное измерение

Сообщение stenkodv »

То меня что то попутало после ночной смены, #define ADC_VREF_TYPE 0x40, сейчас пробовал #define ADC_VREF_TYPE 0x00 и ставил индуктивность и кондёр на AREF, склоняюсь к плохому качеству самого датчика, как думаете получится вытравить платку с дорожками и набором резисторов и поставить его вместо стандартного?
Аватара пользователя
urry
Сверлит текстолит когтями
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница
Контактная информация:

Re: АСЦ Atmega8 плавное измерение

Сообщение urry »

любое телодвижение должно быть оправдано, имхо ...
Вместо стандартного - это как ?
Существует не 1 метод усреднения результата.
mas123
Потрогал лапой паяльник
Сообщения: 312
Зарегистрирован: Вс июл 29, 2012 16:25:39

Re: АСЦ Atmega8 плавное измерение

Сообщение mas123 »

stenkodv писал(а):склоняюсь к плохому качеству самого датчика, как думаете получится вытравить платку с дорожками и набором резисторов и поставить его вместо стандартного?
Я бы, для начала, взял внешний источник напряжения и подал бы от него на вход АЦП, заместо датчика.
С помощью такого "идеального датчика" легко проверить кто глючит - АЦП, софт или и в самом деле датчик.
Ответить

Вернуться в «AVR»