Обсуждаем контроллеры компании Atmel.
Ответить

Re: Измерение напряжение на АЦП ATmega8

Вт июн 04, 2019 14:11:53

Напряжение и ток получилось измерить. Но точность страдает, почему-то показания АЦП постоянно скачут. АЦП не выдает конкретно одно значение, а каждую секунду изменяет измеренный параметр.
Можете пожалуйста подсказать от чего это зависит?

Настройки АЦП выставил таким образом (работаю в CodeVisionAvr):
Спойлер// Voltage Reference: AVCC pin
#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR))

// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=(1<<ADSC);
// Wait for the AD conversion to complete
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;

Измерение тока:
Спойлерnapr=read_adc(4);
current=(napr-512)*0.0264;

Измерение напряжения:
Спойлерvoltage_ADC=read_adc(3);
voltage = voltage_ADC*step_voltage_ADC;

step_voltage_ADC = 0.00489

Re: Измерение напряжение на АЦП ATmega8

Вт июн 04, 2019 14:16:16

фильтровать сигнал надо

Re: Измерение напряжение на АЦП ATmega8

Вт июн 04, 2019 14:21:32

в качестве фильтров подойдут керамические конденсаторы по 0,1 мкФ, установленные на линиях перед входом АЦП?

Re: Измерение напряжение на АЦП ATmega8

Вт июн 04, 2019 14:41:37

я имел ввиду программную фильтрацию.
но конденсаторы тоже подойдут, возможно

Re: Измерение напряжение на АЦП ATmega8

Вт июн 04, 2019 14:46:58

Что подразумевается под программной фильтрацией?

Re: Измерение напряжение на АЦП ATmega8

Вт июн 04, 2019 14:59:03

именно то, что и написано: фильтрация результатов, получаемых из АЦП перед тем, как выводить их на дисплей или иначе использовать.

Re: Измерение напряжение на АЦП ATmega8

Вт июн 04, 2019 15:04:19

смотрите, если я закомментирую часть кода в котором выполняю преобразование сигнала АЦП

napr=read_adc(4);
//current=(napr-512)*0.0264;

и буду выводить только сам сигнал АЦП, то он-то у меня и будет ежесекундно изменяться, причем диапазон изменения будет быть больше 100 единиц (я измеряю при 10-битном режиме МК)

Re: Измерение напряжение на АЦП ATmega8

Вт июн 04, 2019 18:34:36

16 измерений суммируем и делим на 16. Или 8 на 8...

Re: Измерение напряжение на АЦП ATmega8

Вт июн 04, 2019 22:20:37

Либо делаем массив из 8/16/32 результатов измерения, измеренные данные циклически пишем в массив.
результат изменения - сумма элементов массива, деленная на количество его элементов.
Получается среднее последних ХХ измерений в любой момент времени
Ответить