Usando un Arduino Nano y un transformador de corriente (CT), estoy tratando de sentir la corriente que fluye a través de una línea de 120 V 60 Hz.
Circuito
Salidas CT 0-1 V
según sus especificaciones. Esta salida está sesgada AREF/2
= 2.5 V.
analogRead
Valores
El eje x representa el número de índice de la muestra ADC, mientras que el eje y representa el valor ADC (0-1024). La frecuencia de muestreo es de aproximadamente 9 kHz. La diferencia pico a pico es de aproximadamente 1026 muestras.
¿Es esta forma de onda lo que esperarías de la TC? ¿Por qué hay regiones donde los valores son planos, en lugar de variar continuamente?
Además, si miramos la parte curva de la trama, ¿por qué Arduino lee los valores tanto arriba 512
como abajo 512
alternativamente? Lee un valor arriba 512
, luego un valor debajo 512
, luego un valor arriba 512
y así sucesivamente.
analogRead
Se midió que el tiempo necesario para un 110 segundos para mi configuración y hay 1026 muestras entre los picos de forma de onda. Eso significa que habrá aproximadamente 9 picos en 1 segundo, aunque esperaría 60 picos ya que estamos detectando una línea de 60 Hz. ¿Qué haces con esto? Hay un condensador, C1
en el circuito, ¿tendría algo que ver con esto?
¿Son adecuados estos valores analógicos de lectura para calcular el voltaje RMS y, por lo tanto, la corriente RMS que pasa a través del cable que se detecta? El objetivo final de esto es calcular el uso de energía después de determinar la corriente RMS que fluye a través del cable.
Boceto utilizado para obtener valores para la trama
void setup() {
Serial.begin(9600);
}
void loop() {
double sensorValue = analogRead(1);
Serial.println(sensorValue)
}
analogRead
Puntos de datos reales en las regiones de relieve
487
534
487
535
488
537
484
536
487
538
486
536
484
540
484
539
485
540
483
540
484
541
481
539
481
540
484
540
480
543
484
539
481
540
484
541
486
542
485
538
485
538
488
535
489
534
491
530
491
529
493
531
492
526
498
526
499
524
499
520
503
518
502
518
507
Trazado de valores analógicos de lectura
Los valores de analogRead ahora se almacenan en un búfer antes de transmitirse a través de Serial. Ahora hay 55 puntos de datos ADC que componen 1 período. Teniendo en cuenta que el tiempo de lectura analógico es de 110 µs, cada ciclo dura 6.05 ms, ¡lo que nos da una frecuencia de 165 Hz! ¿Qué puede haber salido mal?
void loop() {
double sensorValue = analogRead(1);
char buf[32];
dtostrf(sensorValue, 8, 2, buf);
value = buf;
if (stop == 0) {
if (i < 10000) {
message += ',';
message += value;
i++;
}
else {
stop = 1;
Serial.println(message);
}
}
}
analogRead()
y descubrí que es de 110 microsegundos. Se actualizó la pregunta.Respuestas:
Con respecto a sus medidas, ignoraría por completo el primer conjunto con Serial.println () en el bucle. Esperaría que el momento de esto no sea confiable.
Su segundo conjunto de datos que capturó en un búfer parece correcto, pero su Estimación de frecuencia / sincronización puede ser incorrecta. Invertiría una salida digital en cada iteración del bucle. Puede medir la frecuencia de eso con un multímetro y su frecuencia de muestreo de ADC sería el doble de ese valor.
Para una fuente de alimentación de PC o computadora portátil, esa es una forma de onda de corriente bastante común.
Sin una corrección efectiva del factor de potencia, la señal de corriente que se muestra a continuación sería bastante típica (fuente: http://www.nlvocables.com/blog/?p=300 )
Deberá calcular los valores RMS y sería conveniente filtrar la señal.
Aquí hay un instructable que escribí sobre cómo construir y codificar un Monitor de electricidad basado en Arduino Yun con Cloud Support / Temboo y Google Drive. Debería ser de alguna ayuda para usted.
fuente
Si está midiendo una carga resistiva, diría que la resistencia de carga que ha elegido está mal, hay algunos CT baratos en eBay (SCT-013-xxx) que tienen versiones con y sin resistencias de carga, estos funcionan bien por su precio. pero debes leer la hoja de datos. el SCT-013-000 requiere una resistencia de 20R para obtener 1 V con una carga de 100 A, si esta resistencia está mal, puede obtener una forma de onda severamente distorsionada al medir corrientes más altas (similares a las que ha proporcionado), esperaría que la señal distorsiona más cuanto menor es el valor de la resistencia de carga, pero este no es el caso con los TC.
fuente