использую так же рейл ту рейл ОУ AD8552 для усиления и смещения шкалы.
Смущает меня качество датчика ... он может работать в диапазоне температур -70 ~ 500град. ? Нагрел его до 400град. керамика та что залита начала темнеть.
Но суть не в том. У меня когда на входе АЦП напряжение близко к максимальному - начинают прыгать значения с разбегом до 15 значений. Мультиметром замерял - четко напряжение.
я уже даже 9бит использую за счет деления на 2. Все равно когда код равен ближе к максимальному начинают происходить приколы.
Читал на одном форуме что это такая мега8А. Будто мега8 без индекса "А" ведет себя гораздо лучше. Помогите советом пожалуйста. Проект надо сдавать... а я в такой прикол попал..
Последний раз редактировалось Artos Сб ноя 03, 2012 15:52:37, всего редактировалось 1 раз.
Смотри, что с опорным, возможно стоит за стабилизировать типа 431ой, у меня убегали показания изза протравы плюсового проводника под СМД корпусом восьмерки(опора питание), лечил сопелькой. в общем, скорее всего не код.
Спасибо что ответили. Вот и я думаю что не код. У меня опорное висит на +5В пайка качественная стабилизация питания LM1117 везде стоит керамика и везде электролиты. Сигнал предварительно усиливается очень качественным ОУ на вход АЦП идет нормальный сигнал. Не знаю что делать... Режим 10бит с отсечкой 1бита за счет деления. Получается режим 9бит.
1. LM1117 != ИОН. Поэтому не стоит сажать вход питания АЦП и опорный вход на цифровую шину питания. Для точных измерений используйте REFxxx или TL431 как более дешевый и более хреновый вариант. 2. Встроенный АЦП не особо славится точностью. Если возможно, используйте внешний АЦП. 3. Деление пополам не спасет от дрожания старших разрядов. Сделайте простейшую фильтрацию вычислением среднего из 10...100 последовательных выборок. 4. Используйте режим ADC Noise reduction. 5. И наконец можно уменьшить размах сигнала с ОУ чтобы он не попадал в эту нелинейную область.
А скажите пожалуйста, вот датчик имеет не линейную зависимость от температуры, есть ли какой нибудь простой метод решения этой проблемы? Есть только одна мысль - завести массив и с него подставлять при определенных температурах.
Заголовок сообщения: Re: Плывут показания АЦП Atmega8A - PU
Добавлено: Сб ноя 03, 2012 21:34:13
Ну тут только табличный метод может решить вопрос преобразования. И ещё хотелось бы вставить пару своих копеек по поводу среднего. Тут очень хорошо бы подошёл программный вариант подобия ФНЧ. Алгоритм очень простой (даже на асме 25 команд у меня занял) пусть Xout - результат, для него должна быть выделена ячейка памяти, инициализируется нулём. Xin - текущее входное значение Xout = Xout* (K-1)/K + Xin/K Таким образом вычисляется текущий результат. Он является предыдущим результатом для следующего расчёта. Коэффициент К - степень фильтрации, чем он больше, тем ФНЧ "более низкочастотнее".
Как раз об этом подумал Должно быть оптимальнее чем деление. Хотя если компилятор умный он так и сделает.
Для измерения медленных физических величин можно делать гораздо больше замеров - 1024, 4096 и т.д. У меня вот датчик атмосферного давления работает, делаю 65536 замеров (в 4х-байтную переменную). Потом тупо забираю два старших байта (равносильно делению на 65536). Считается по фону, время обновления данных получается около 20 секунд, чего более, чем достаточно. И, разумеется, никакого шума (хотя на входе бардак).
Заголовок сообщения: Re: Плывут показания АЦП Atmega8A - PU
Добавлено: Сб ноя 03, 2012 22:01:42
Попытаюсь объяснить. Для упрощения принимаем К=4. Есть глобальная переменная Xout. Изначально в ней 0. Это результат работы "фильтра". В нашу функцию приходит текущее значение с АЦП (только что считали, тепленькое), это Xin. Что мы с ним делаем? Берём одну четвёртую от Xin, вот эта часть формулы: Xin/K, вычисляем три четвёртых от Xout (это число у нас глобальное, оно у нас имеет всегда значение, каторое посчитали при предыдущем вызове нашей ф-ии), вот эта часть формулы Xout* (K-1)/K, складываем полученные значения, и записываем обратно в переменную Xout. Таким образом Xout - это результат ФНЧ, который вам нужен. И он же используется при следующем вызове нашей ф-ии. Ффух. надеюсь понятно объяснил. Проверьте в екселе - и сразу будет понятен этот принцип.фильтра
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения