sensor de corriente en arduino impreciso en carga cero [cerrado]

Actualmente estoy haciendo un medidor de potencia y utilicé un sensor de corriente (SCT013 30A/1V) de yhdc.com . Todo salió bien, especialmente los circuitos siguiendo el tutorial de ( https://openenergymonitor.org/emon/buildingblocks/ct-sensors-interface ). Estoy usando un Arduino nano. y la biblioteca emon para calcular la corriente.

mi problema es sin carga conectada, incluso cuando no pasa ningún cable de carga a través del sensor, obtengo pequeños valores saltones de lecturas de la siguiente manera.

Irms: 0.04
Irms: 0.04 
Irms: 0.04
Irms: 0.06
Irms: 0.03
Irms: 0.06
Irms: 0.03
Irms: 0.07
Irms: 0.04
Irms: 0.03
Irms: 0.03
Irms: 0.06
Irms: 0.04
Irms: 0.04

He comprobado dos veces el hardware y no hay problema.

cuando se conecta una carga con un consumo de corriente superior a 0,07 A, las lecturas son perfectas y estables. Pude obtener la siguiente lectura cuando conecté una lámpara de 75 W y el voltaje es de 240 V.

Irms: 0.31
Irms: 0.31
Irms: 0.31
Irms: 0.31
Irms: 0.31
Irms: 0.31
Irms: 0.32
Irms: 0.32
Irms: 0.31
Irms: 0.31
Irms: 0.32
Irms: 0.32
Irms: 0.31
Irms: 0.32
Irms: 0.32
Irms: 0.32
Irms: 0.32
Irms: 0.32

Mi código es el siguiente.

#include "EmonLib.h"              // Include Emon Library
EnergyMonitor emon1;              // Create an instance

void setup()
{  
 Serial.begin(9600);


  emon1.current(0, 29);        // Current: input pin, calibration.
}

void loop()
{

   float r1=emon1.calcIrms(2000);
   Serial.print(" Irms: ");
   Serial.println(r1);



 }

Me gustaría que mi medidor midiera con precisión incluso el consumo más pequeño de, por ejemplo, un teléfono que se carga en un entorno doméstico.\ o la bombilla de ahorro de energía más pequeña.

Alguien tiene idea de porque me sale este tipo de ruido y como solucionarlo?

Lea la entrada ADC directamente, vea qué valores devuelve.
@jippie: la entrada a ADC desde el transformador de corriente es CA (según el enlace de OP). Leer ADC directamente producirá múltiples valores diferentes. Quizás EmonLib.h está procesando el valor de entrada
@Marla Creo que los valores de ADC están en el ruido de cuantificación, probablemente debería ser suficiente sin procesamiento posterior.
@OlinLathrop: el hecho de que se esté utilizando un "Arduino" es irrelevante para el problema. El hecho de que Arduino se base en un ATmega328p tiene cierta relevancia, pero muchas (¿la mayoría?) MCU exhibirían un comportamiento similar. Realmente, esta es una pregunta que se trata fundamentalmente de problemas clave de diseño electrónico , y el tipo de cosas que tienden a obtener respuestas insuficientemente informadas si se preguntan en el sitio de Arduino.
@Chris: Si no se trata de arduino, ¿por qué desacreditar su pregunta y mencionarla? Recuerde que arduino no es solo una plataforma, sino un estado mental y un deseo de NO aprender los detalles subyacentes. La pregunta también menciona una biblioteca "emon" como si se supone que debemos saber qué es eso. También se menciona un sensor de corriente en particular, pero no hay una hoja de datos ni un esquema que muestre cómo se conectaron exactamente las cosas en este caso. Se trata de los altos niveles de uso del software arduino, no de los detalles electrónicos.
@Olin entonces, usa tu reputación ganada con tanto esfuerzo para cerrar como demasiado amplio y seguir con tu vida. Tu comportamiento es abrasivo y no resuelve nada. En lugar de gritarle a la gente que no sabe cómo formular una pregunta que está completa, cierre la pregunta/dedique 20 segundos a enseñarles y ambos estarán más felices. Obtienen una respuesta a su pregunta y usted puede dormir por la noche sabiendo que escribirán una buena pregunta la próxima vez. Encuentro extraño que encuentres la necesidad de "librar una guerra" contra aquellos que no son tan inteligentes como tú.
Tuve el mismo problema y se debió al ruido proveniente de la PC (a través de USB). Instalé una pantalla LCD para imprimir mis resultados, usé una fuente de alimentación decente y desconecté el USB. después de eso, la mayor parte del ruido desapareció y mi corriente se redujo a 0.00 sin carga.
Gracias @DanielP, definitivamente regresaré a ese problema e intentaré resolverlo con esta actualización.

Respuestas (2)

Creo que está viendo el ruido de cuantificación del convertidor analógico a digital. Puede verificar esto comprobando qué valores escupe el ADC con un simple analogRead(pin);y apuesto a que solo verá ese cambio de valor un par de cuentas hacia arriba o hacia abajo. Esto significa que está trabajando en (o muy cerca de) la mejor resolución posible para la configuración actual. Probablemente deberías ignorar el dígito más bajo.

Puede mejorar sus lecturas cambiando el rango de escala completa de la pinza amperimétrica aumentando la resistencia de carga de 33 ohmios y cambiando los parámetros en el software en consecuencia, pero eso reduce la corriente máxima que puede medir.

Sí, @Jippie, he confirmado que los valores en el pin analógico saltan un poco e incluso apuntando el EmonLib a este pin que ni siquiera está conectado al sensor todavía lee la pequeña corriente ruidosa. Mi sensor en realidad tiene una resistencia de carga incorporada, así que déjame desmantelarla e intentar usar una resistencia diferente... Gracias.

[I] Me gustaría que mi medidor midiera con precisión incluso el consumo más pequeño de, por ejemplo, un teléfono que se carga en un entorno doméstico. o la bombilla de ahorro de energía más pequeña.

En ese caso, debe elegir un sensor mejor. Las especificaciones del que tiene solo están garantizadas en un rango de 10% - 120% de la corriente nominal. Esto sería niveles de potencia de 360 ​​a 4000 W.

También debe poder cambiar de rango de algún tipo. No sé de antemano cuál es la resolución de un Arduino ADC, pero asumiendo 10 bits, solo puede medir cambios de 1 mV en un rango de 0-1 V, lo que representa un cambio en la corriente de carga de 30 mA, o 3.6 W @ 120 VCA.

En otras palabras, si todo lo demás fue perfecto, las cargas de baja potencia aparecerán como 0 W, 3,6 W o 7,2 W, nada en el medio. Sin embargo, también debe lidiar con problemas del mundo real, como el ruido, las compensaciones y las no linealidades, que harán que sus mediciones sean bastante inútiles a este nivel.

Gracias Dave, déjame intentar conseguir un sensor mejor, pruébalo y te dejaré saber los avances.