Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
26.07.2013, 07:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,587
Сказал спасибо: 704
Сказали Спасибо 4,352 раз(а) в 1,996 сообщении(ях)
|
Re: Убрать дрожание в последнем разряде
А вы смотрели исходные данные? В каком разряде дрожание там? Если входной поток неадекватен, усреднение не поможет.
__________________
Я не помогаю. Я провоцирую думать.
Не дай вам Бог плохих контактов.
|
|
|
|
26.07.2013, 11:17
|
|
Прохожий
Регистрация: 23.11.2007
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Убрать дрожание в последнем разряде
X(i) = (X(i-1) * T + X)/(T+1);
X - входная величина;
T - постоянная времени (подбирается)
|
|
|
|
26.07.2013, 11:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,450
Сказал спасибо: 376
Сказали Спасибо 1,060 раз(а) в 624 сообщении(ях)
|
Re: Убрать дрожание в последнем разряде
Сообщение от va11
|
Суммирую значения за несколько измерений (в данном случае 500).
Делю на коэффициент, вывожу на дисплей (3 разряда).
|
Что мешает уменьшить коэффициент в 10 раз, получить 4 разряда, но на вывод давать только три старших?
__________________
Мелочи не решают главного. Они решают всё!
|
|
|
|
26.07.2013, 11:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Убрать дрожание в последнем разряде
gary2007, а смысл такого действа. На границе перехода двух соседних значений младшего разряда по любому будут скачки. Спасет только интегрирование или гистерезис. Ну, или увеличить время индикации (тоже уже предлагали). Хороший вариант типа интегрирования предложил tsvtsvtsv. В любом случае нужно искать баланс между мельтешением и скоростью реакции на изменения.
|
|
|
|
26.07.2013, 12:29
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: Убрать дрожание в последнем разряде
Да сам тема на грани психоделического восприятия мира - "И чтобы не врало, и чтобы не дрожало!".
|
|
|
|
26.07.2013, 12:55
|
|
Временная регистрация
Регистрация: 10.10.2011
Адрес: Донецк
Сообщений: 94
Сказал спасибо: 65
Сказали Спасибо 48 раз(а) в 13 сообщении(ях)
|
Re: Убрать дрожание в последнем разряде
Добавьте, пожалуйста еще конкретики, Известно что у вас Атмега8. АЦП внутренний или внешний? какая частота измерения и как часто обновляете значения на экране? полученные данные нужны только для отображения или еще как-то анализируются и на их основе принимаются решения?
Поясню на примере: Я в своих устройствах в основном меряю действующее значение переменного тока (220 из сети проходит через делители на внутренний АЦП авр-ки). Полученные значения возводятся в квадрат, суммируются по 192 значения за 1 период (20мс), затем это значение усредняется (делится на те 192) и из него извлекается квадратный корень. в результате я получаю каждый период действующее (среднеквадратичное) значение напряжения в "попугаях АЦП", которое можно умножить (или разделить) на коэффициент и получить вольты. Каждый период это значение "дрожит" на 1-2 вольта (это нормально т.к. погрешность АЦП авр даже в даташитах указана 1%), но так часто на экран выводить не нужно, Поэтому вывожу усредненное за 8 или 16 периодов (0,16с или 0,32с) а вот для принятия решения (типа переключить что-то или вообще все выключить) беру значения без усреднения но использую гистерезис.
|
|
|
|
26.07.2013, 13:00
|
|
Вид на жительство
Регистрация: 17.04.2010
Сообщений: 322
Сказал спасибо: 67
Сказали Спасибо 154 раз(а) в 80 сообщении(ях)
|
Re: Убрать дрожание в последнем разряде
Сообщение от Kabron
|
А вы смотрели исходные данные? В каком разряде дрожание там? Если входной поток неадекватен, усреднение не поможет.
|
Смотрел. В пределах 3-4 единиц. При таком оверсемплинге, по идее, должно все сгладиться.
|
|
|
|
26.07.2013, 13:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 01.05.2009
Адрес: Коптево
Сообщений: 2,849
Сказал спасибо: 276
Сказали Спасибо 427 раз(а) в 274 сообщении(ях)
|
Re: Убрать дрожание в последнем разряде
Сообщение от nahimovv
|
Да сам тема на грани психоделического восприятия мира - "И чтобы не врало, и чтобы не дрожало!".
|
Ну тогда уж не цифровой индикатор, а нарисовать на ЖКИ-дисплее стрелку графикой или скроллбар. Если и будет на 1 пиксель дёргаться, то это будет нормально восприниматься.
)
|
|
|
|
26.07.2013, 13:09
|
|
Вид на жительство
Регистрация: 17.04.2010
Сообщений: 322
Сказал спасибо: 67
Сказали Спасибо 154 раз(а) в 80 сообщении(ях)
|
Re: Убрать дрожание в последнем разряде
Сообщение от SlovachevskyDV
|
Добавьте, пожалуйста еще конкретики, Известно что у вас Атмега8.
|
Работа от внутр. генератора 8Мгц. АЦП внутренний. Есть источник опорного напряжения.
Индикация меняется примерно 2р/сек. За это время проводится 500 измерений в 2х каналах.
Используется только для отображения в данном проекте.
Дин. ндикация работает от 8-битного таймера с прескалером 8
|
|
|
|
26.07.2013, 13:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Re: Убрать дрожание в последнем разряде
Ерунда какая-то...
Выводим значение на индикатор с частотой F, хоть 100 раз в секунду.
Вывели - записали, что вывели. Следующие измеренные значения сравниваем с выведенным. Не совпало - a+=abs(разница), совпало - a--. if(a›D_THRESH) выводим на индикатор.
D_thresh подберите сами, чтобы единица в младшем разряде накапливалась за 1 секунду
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:25.
|
|