xemul 0 31 июля, 2008 Опубликовано 31 июля, 2008 · Жалоба можешь хотя бы примерно рассказать про данный метод? или, хотя бы, алгоритм если есть. Метод - просто какой-либо НЧ фильтр в цифре. Простейший НЧ фильтр 1-го порядка: Yi = a * Yi-1 + b * Xi, a+b = 1 Т.е. Y = a * Y + b * X; Для целочисленной арифметики удобно делать a=c/2^N, b=(2^N-c)/2^N. Чтобы не набегала погрешность при обработке, разрядность Y должна быть не менее (разрядность X) + N. Найдите что-нибудь вроде "Цифровые фильтры" Р. Хемминга - там все доступно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lost_Viking 0 31 июля, 2008 Опубликовано 31 июля, 2008 (изменено) · Жалоба очень просто скользящее среднее,тоже о скользещем среднем как я понял - это просто среднее какое-то значение. блин, и там погрешность, и тут ... Найдите что-нибудь вроде "Цифровые фильтры" Р. Хемминга - там все доступно. :07: я умер от этой книги. ничего не понял. мне проще стабилизировать опорное напряжение и питание, чем разобраться в этих греческих символах Нашел вот что.Я смотрю там через операционник подают измеряемое напряжение. Только я не понял зачем там обратная связь в операционнике? Изменено 31 июля, 2008 пользователем Lost_Viking Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xemul 0 31 июля, 2008 Опубликовано 31 июля, 2008 · Жалоба как я понял - это просто среднее какое-то значение. блин, и там погрешность, и тут ... Вряд ли погрешность обработки превысит погрешность АЦП АВР :). я умер от этой книги. ничего не понял. мне проще стабилизировать опорное напряжение и питание, чем разобраться в этих греческих символах u16_t Yavg; for(;;) { Yavg -= Yavg/256; Yavg += ADCH; } Запуск и готовность АЦП за Вами. Утверждается, что в старшем байте Yavg получим фильтр НЧ с частотой среза = частоте запуска АЦП/256 с погрешностью обработки <0.5 LSB, по АФЧХ эквивалентный RC цепочке с такой же частотой среза. Почему? Хемминг уже рассказал, у меня лучше не получится :). Нашел вот что.Я смотрю там через операционник подают измеряемое напряжение. Только я не понял зачем там обратная связь в операционнике? Операционник включен повторителем и согласует входной делитель со входом АЦП. Использование в нем LM358 и заявление "3. Входное напряжение – 0..100В" оставим на совести автора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lost_Viking 0 31 июля, 2008 Опубликовано 31 июля, 2008 (изменено) · Жалоба Операционник включен повторителем и согласует входной делитель со входом АЦП. Использование в нем LM358 и заявление "3. Входное напряжение – 0..100В" оставим на совести автора. там и на 1000 вольт есть, если поищешь. Короче, вот мои соображения: на вход АЦП повесить ФНЧ из RC цепочки с частотой среза примерно 50Гц. использовать внешний ИОН на каком-либо стабилизаторе использовать КР514ИД2 по совету kipmaster'а наконец перенести все с макетной платы на печатку, предварительно подумав о развязке земли если все это не поможет, то использовать опцию "подавитель шумов" если и это не поможет, то использовать цифровой фильтр подскажите пожалуйста как грамотно отделить питание аналоговой части от цифровой? Изменено 31 июля, 2008 пользователем Lost_Viking Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Stanislav_S 0 31 июля, 2008 Опубликовано 31 июля, 2008 · Жалоба там и на 1000 вольт есть, если поищешь. Короче, вот мои соображения: на вход АЦП повесить ФНЧ из RC цепочки с частотой среза примерно 50Гц. использовать внешний ИОН на каком-либо стабилизаторе использовать КР514ИД2 по совету kipmaster'а наконец перенести все с макетной платы на печатку, предварительно подумав о развязке земли если все это не поможет, то использовать опцию "подавитель шумов" если и это не поможет, то использовать цифровой фильтр подскажите пожалуйста как грамотно отделить питание аналоговой части от цифровой? Через LC фильтр, землю цифровую и аналоговую соединить в одной точке, допустим на конденсаторе фильтра после выпрямителя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xemul 0 31 июля, 2008 Опубликовано 31 июля, 2008 · Жалоба там и на 1000 вольт есть, если поищешь. Проблема не верхнем пределе, а в нижнем. LM358 не является ОУ с диапазоном rail-to-rail ни по входу, ни по выходу. [*]использовать КР514ИД2 по совету kipmaster'а имхо, при разумной смехотехнике и трассировке достаточно отключать индикаторы на время преобразования АЦП. [*]если все это не поможет, то использовать опцию "подавитель шумов" Вы собираетесь биться за 9 честный бит? А "внешний ИОН на каком-либо стабилизаторе" у Вас какую точность опоры обеспечит? А где брать в розницу резисторы 0.25% Вы уже знаете? Или это задача для души? Тогда все-таки начните с теории. [*]если и это не поможет, то использовать цифровой фильтр Не поможет от чего? От мельтешения младшего разряда на индикаторе? Да тупо пропустите сигнал с АЦП через цифровой ФНЧ с частотой среза в 0.5 Гц - будет мельтешить не чаще раза в секунду. Только точности это не добавит, хотя и не убавит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lost_Viking 0 31 июля, 2008 Опубликовано 31 июля, 2008 · Жалоба Метод - просто какой-либо НЧ фильтр в цифре. Простейший НЧ фильтр 1-го порядка: Yi = a * Yi-1 + b * Xi, a+b = 1 Т.е. Y = a * Y + b * X; Для целочисленной арифметики удобно делать a=c/2^N, b=(2^N-c)/2^N. что такое a и b? для чего они нужны? как я понял - это Взвешенное скользящее среднее (WMA), взято от сюда Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xemul 0 31 июля, 2008 Опубликовано 31 июля, 2008 · Жалоба что такое a и b? для чего они нужны? как я понял - это Взвешенное скользящее среднее (WMA), взято от сюда Нет, это Экспоненциальное скользящее среднее (EMA) Yi = Yi-1 + A*(Xi - Yi-1). С помощью несложных преобразований можно показать, что a = 1 - A, b = A. оттуда же В случае EMA, коэффициент A - параметр фильтра, определяющий степень сглаживания. Чем он меньше, тем сильнее будет сглаживаться входной временной ряд. При A=0 фильтр перестает реагировать на изменения входного ряда, а при A=1 он будет повторять входной временной ряд. Попробуйте смоделировать (хоть в ёкселе) реакцию фильтра на единичный скачок (x=0 при i<0, x=1 при i>=0), поиграйтесь с A, и все станет просто и понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 31 июля, 2008 Опубликовано 31 июля, 2008 · Жалоба Да тупо пропустите сигнал с АЦП через цифровой ФНЧ с частотой среза в 0.5 Гц - будет мельтешить не чаще раза в секунду. Только точности это не добавит, хотя и не убавит.Извиняюсь, что вмешиваюсь, но мельтешение на индикаторе убирается уменьшением частоты вывода на индикацию. Я считаю, что чаще чем 3 раза в секунду обновлять показания вообще нет смысла. Это связано с инерционностью человеческого мозга при обработке визуальной информации. В большинстве измерительных приборов период обновления показаний - 1 секунда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 1 августа, 2008 Опубликовано 1 августа, 2008 · Жалоба У атмела есть апликэйшены на темы: AVR222: 8-Point Moving Average Filter AVR223: Digital Filters with AVR AVR121: Enhancing ADC resolution by oversampling AVR120: Characterization and Calibration of the ADC on an AVR С примерами программ. http://atmel.com/dyn/products/app_notes.asp?family_id=607 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lost_Viking 0 1 августа, 2008 Опубликовано 1 августа, 2008 · Жалоба Такс, собираю ИОН на TL431OEB. Насколько хорош этот стабилизатор? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 1 августа, 2008 Опубликовано 1 августа, 2008 · Жалоба А может даласовские датчики поставить и не мучиться? +/-1оС точность - лечится калибровкой, дискретность - где-то полградуса... Хотя, если хочется повозиться с АЦП, то флаг в руки... Опора не оказывает влияния на результат (только нестабильность резисторов) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lost_Viking 0 1 августа, 2008 Опубликовано 1 августа, 2008 · Жалоба А может даласовские датчики поставить и не мучиться? +/-1оС точность - лечится калибровкой, дискретность - где-то полградуса... Хотя, если хочется повозиться с АЦП, то флаг в руки... ДАЛАСОВСКИЕ? DS которые? Они у них диапозон до 120градусов. Мне нужно 160 градусов. У меня такой даласовский лежит уже, купил не прочитав даташит. Опора не оказывает влияния на результат (только нестабильность резисторов) Как это опора не оказывает влияние на результат? :07: Ведь если Uоп = 5В, а Uвх = 2.5В, то 10битный ADC выдаст 512. А если опора 10В, то выдаст 256. Заметил вот что: записал в ADMUX: REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 0 0 1 0 0 0 0 0 Циферки перестали бегать, а АЦП все еще мерял что-то. Короче, получилось тоже самое, что и с внутренним ИОН, но только стабильнее. На AREF у меня всего лишь кондер висит, и никакого опорного напряжения не подводится. Объясните мне в чем секрет? Я в чудеса не верю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xemul 0 1 августа, 2008 Опубликовано 1 августа, 2008 · Жалоба Как это опора не оказывает влияние на результат? :07: Ведь если Uоп = 5В, а Uвх = 2.5В, то 10битный ADC выдаст 512. А если опора 10В, то выдаст 256. При таком включении Rt = Nadc * Rоп / (Nadc_max - Nadc), где Nadc - результат преобразования АЦП Nadc_max - максимальное значение АЦП (0x3ff для однополярного 10-битного АЦП) Заметил вот что: записал в ADMUX: REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 0 0 1 0 0 0 0 0 Циферки перестали бегать, а АЦП все еще мерял что-то. Короче, получилось тоже самое, что и с внутренним ИОН, но только стабильнее. На AREF у меня всего лишь кондер висит, и никакого опорного напряжения не подводится. Объясните мне в чем секрет? Я в чудеса не верю Вы забыли еще помолиться и свечку затеплить - без этого цифирки все равно иногда будут бегать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 1 августа, 2008 Опубликовано 1 августа, 2008 (изменено) · Жалоба Как это опора не оказывает влияние на результат? :07: Ведь если Uоп = 5В, а Uвх = 2.5В, то 10битный ADC выдаст 512. А если опора 10В, то выдаст 256.Это называется ратиометрическим способом измерения, от слова ratio - отношение. На вход опоры можно подавать Vcc напрямую, если конечно это допустимо. Либо можно поставить буфер и вход опоры и делитель запитывать от него (т.к. ток по входу опоры в несколько раз выше, чем по входу АЦП). Либо использовать внутреннюю опору и выход опоры использовать для запитки делителя Rоп-Rt. В общем когда резистивный делитель запитывается от того же напряжения что и опора, то через оба резистора протекает один и тот же ток (соединение-то последовательное). Поэтому результат преобразования уже не зависит от величины напряжения, а только от отношения величин резисторов, ну и соответственно от временнОй и температурной стабильности опорного резистора. Результат преобразования АЦП является функцией отношения этих резисторов. Следует это отсюда Ut=Rt/(Rt+Rоп)*Uref Поскольку Ut мы получаем в виде результата преобразования АЦП (кодАЦП), а Uref соответствует максимальному коду АЦП = 1023, то получаем что кодАЦП=Rt/(Rt+Rоп)*1023. После простейших метематических преобразования получаем формулу Rt=Rоп*кодАЦП/(1023-кодАЦП). Где величина опоры никак не участвует, а играет роль только сопротивление опорного резистора Rоп. Конечно же превышать максимально допустимое для АЦП и опоры напряжение нельзя. Так что про "если опора 10В" это вы погорячились :) Update. Кстати при вычислениях в последней формуле существует вероятная ситуация исключения - деление на нуль, когда кодАЦП=1023. На практике это означает, что Rt>>Rоп (Rt много больше, на несколько порядков больше Rоп) или просто обрыв в цепи измеряемого сопротивления. Изменено 1 августа, 2008 пользователем rezident Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться