Estoy trabajando en un amperímetro de CA. Para detectar la corriente, se utiliza un transformador de corriente que tiene 2500 giros y un rango de detección de hasta 50A.
La resistencia de carga de 200 ohmios se usa entre la conexión a tierra y el pin de salida del transformador de corriente.
Anteriormente, trabajé en un voltímetro de CA, funcionó bien y utilicé la misma forma para detectar la corriente. Como la SALIDA del transformador de corriente es onda sinusoidal, usé el método RMS para extraer el valor.
Esto es lo que he hecho:
#define ADC_BUFFER_LENGTH 40
if(adc_data_index >= ADC_BUFFER_LENGTH )
{
adc_data_index = 0;
// Time to Process and Display Data
adc_buf_local = 0;
adc_filter_val_current = 0.00;
for(i=0; i<ADC_BUFFER_LENGTH; i++ )
{
adc_buf_local = adc_data[i];
adc_filter_val_current += ((float)(adc_buf_local*(float)adc_buf_local ));
}
// 625*625 = 390625
// 128*128 = 16384
// 625^2 / 128^2 = 23.8414
adc_filter_val_current = (unsigned long)((float)adc_filter_val_current * 23.84);
adc_filter_val_current /= ADC_BUFFER_LENGTH; // mean squared sum
adc_filter_val_current *= 2; //To even Negative Pulse
ac_value_current = (float)sqrt(adc_filter_val_current);// root mean square
ac_value_current /= 1000;
}
¿Qué me estoy perdiendo?