AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
10.02.2019, 23:06
|
|
Прописка
Регистрация: 01.01.2010
Сообщений: 217
Сказал спасибо: 2,080
Сказали Спасибо 183 раз(а) в 48 сообщении(ях)
|
Re: Амперметр Atmega. Как устаканить??
Сообщение от Leon_i
|
Попробуйте метод пузырьковой сортировки.
Создаём массив измерений I1, I2, I3, I4, I5, I6, I7
Установим флаг F=1 если I1 › I2 то меняем местами и сбросим флаг F=0 дальше проверяем следующую пару I2, I3 и так до конца массива за тем проверяем флаг готовности если F=0 то повторяем цикл если F=1 то все данные в массиве разложены по нарастающий отбросим крайние значения и рассчитаем средние (I3+I4+I5)/3.
|
Делал так, только без среднего, а просто брал центральное значение - в данном случае I4. И незачем тогда отбрасывать крайние значения.
Ток и напряжение так измеряю. Работает отлично.
|
|
|
|
11.02.2019, 10:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Re: Амперметр Atmega. Как устаканить??
Сообщение от DanilinSA
|
для резистивных тачскринов. Серия замеров, медианный фильтр + взятие среднего
|
Для тачскринов и прочих скользящих контактов - да. Там могут быть выбросы, которые хорошо фильтруются медианой. Здесь выюросов нет, отброшенные крацние будут вполне себе похожими на прочие. Здесь нужен фильтр с усреднением.
Вот только его буфер должен заполняться за время, кратное целому числу периодов измеряемого сигнала. Иначе показания будут "бить" на разностной частоте.
И таки да: нужно мерить среднее или среднеквадратичное?
В блоке питания бывает пила, только зачем её мерить?
|
|
|
|
11.02.2019, 13:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
|
Re: Амперметр Atmega. Как устаканить??
Я делал так, показания не дергаются, в сравнении с эталонным мультиметром почти идеально, усилитель на LMV358.
Цитата:
|
#define SWAP(A, B) {int t = A; A = B; B = t;}
unsigned int real_data(unsigned char data) //усредняем по 16-ти измерениям
{
unsigned char i,j = 0;
unsigned int mass[16]={0};
unsigned int tmp = 0;
for (i=0; i‹16; i++) // делаем 16 измерений подряд
{
mass[i] = read_adc(data);
};
for (i = 14; i › 0; i--) //сортируем замеры пузырьковым методом
{
for (j = 0; j ‹ i; j++)
{
if (mass[j] › mass[j + 1])
{
SWAP( mass[j], mass[j + 1] );
}
}
}
tmp = 0;
for (i=4; i‹12; i++) tmp = tmp + mass[i]; // откидываем 4 (c 0 по 3) наименьших значения и 4 (с 12 по 15)
// наибольших значения и складываем 8 средних сначений
return tmp››3;//делим на 8
}
|
|
|
|
|
11.02.2019, 13:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
|
Re: Амперметр Atmega. Как устаканить??
Сообщение от IOPA4
|
делал так, показания не дергаются
|
Эти 16 измерений покрывают один перид сигнала? Полтора? Они равномерно распределены по времени или меряем - показываем?
Представьте, как метод будет работать на ШИМ сигнале, когда период измерения немного не совпадает с периодом сигнала.
В Экселе легко моделируется.
|
|
|
Сказали "Спасибо" makakus
|
|
|
11.02.2019, 17:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
|
Re: Амперметр Atmega. Как устаканить??
Я этот АV ставил на самодельный блок питания 1.5-30В на LM2575.
|
|
|
|
11.02.2019, 20:35
|
|
Вид на жительство
Регистрация: 10.04.2010
Сообщений: 301
Сказал спасибо: 25
Сказали Спасибо 136 раз(а) в 79 сообщении(ях)
|
Re: Амперметр Atmega. Как устаканить??
Сообщение от mikhail09p
|
Делал так, только без среднего, а просто брал центральное значение - в данном случае I4. И незачем тогда отбрасывать крайние значения.
Ток и напряжение так измеряю. Работает отлично.
|
Простите, но это называется колхоз.
Сообщение от makakus
|
Вот только его буфер должен заполняться за время, кратное целому числу периодов измеряемого сигнала.
|
Верное замечание про период сигнала, обычно про него забывают, а потом страшно удивляются результатам.
|
|
|
|
11.02.2019, 21:32
|
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: Амперметр Atmega. Как устаканить??
Все что нужно было ТС - это среднеквадратичное для измерения переменного напряжения или тока (ток это напряжение на шунте), а для устранения "дергания" младших разрядов - "накапливающий интегратор". "Пила" на симисторе периодический сигнал, производный от синусоиды, нет выбросов. Поэтому не нужно супер-пупер фильтров и медиан. Все очень просто и легко проверяется...
PHP код:
|
DATA=(sqrt(Usum/N))*K;
// ФИЛЬТР устранения дрожания индикации при смене показаний "накапливающий интегратор"
if((DATA^DATA_TEMP) && timer) timer--;
else
{
DATA_TEMP=DATA;
timer=20; // подбирается опытным путем
}
U_seg_p=DATA;
seg1 = U_seg_p / 100
seg2 = (U_seg_p/10)%10
seg3 = U_seg_p%10
seg4 = 10
|
Вот пример собранный из разных проектов... Смотрим вольтметр и индикацию, крутим резистор...
|
|
|
|
14.02.2019, 09:44
|
|
Прохожий
Регистрация: 17.03.2005
Сообщений: 7
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Амперметр Atmega. Как устаканить??
Среднеквадратичный вольтметр/амперметр для зарядного устройства.
https://radiokot.ru/cherdak/41/
|
|
|
|
16.02.2019, 09:58
|
|
Временная регистрация
Регистрация: 16.02.2019
Адрес: Барановичи
Сообщений: 81
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
|
Re: Амперметр Atmega. Как устаканить??
Сообщение от IOPA4
|
Я делал так, показания не дергаются, в сравнении с эталонным мультиметром почти идеально, усилитель на LMV358.
|
А скажите мне пожалуйста, вот Ваше это:
for (i=0; i‹16; i++) // делаем 16 измерений подряд
Это единственная операция мк в данной п/п, или он ещё должен реагировать на нажатия кнопок, выводить инфу (даже эту) на индикатор ?
Может он ещё что-то должен делать по своей программе, не ?
Конечно у Вас ничего не будет ёргаться - Вы ж зациклились на измерениях...
А как Ваше устр-во на кнопки реагирует ? Наверное тоже "абы-как" - Вы же пока рассчёты не произведёте - Вам всё "по барабану" ?
А может задействовать какой-нибудь таймер, по нему ходить в прерывания, там отсчитывать, к примеру, 1/256 секунды, устанавливать флаг, по этому флагу делать измерения АЦП 256 раз в секунду, через 16 измерений полное значение делить на 16 - и вот Вам - устр-во, которое помимо измерений напряжения - в свободное время будет ещё чем-то заниматься...
Или я ошибаюсь ?
|
|
|
|
16.02.2019, 11:51
|
|
Временная регистрация
Регистрация: 16.02.2019
Адрес: Барановичи
Сообщений: 81
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
|
Re: Амперметр Atmega. Как устаканить??
Сообщение от mimuh64
|
Вот пример собранный из разных проектов... Смотрим вольтметр и индикацию, крутим резистор...
|
Смешные люди, сами нульцевые, зато читать в "юсралке" умеют...
У меня жена такая, "нанюхается какашек" в ютубе, а потом ко мне пристаёт:
- Видел что там пишут ?
Мой ответ:
- Да не видел, и смотреть на эту помойку не хочу...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:37.
|
|