Artículos recientes

Novedades

Tutorial sensor de corriente AC no invasivo SCT-013

Tutorial sensor de corriente AC no invasivo SCT-013

En este tutorial trabajaremos con los sensor de corriente de la serie SCT-013,  realizaremos ejemplos para medir la potencia y corriente alterna.
 

Sensores SCT-013

Los sensores de la serie SCT-013 son sensores que trabajan como transformadores, la corriente que circula por el cable que deseamos medir actúa como el devanado primario (1 espira) e internamente tiene un devanado secundario que dependiendo del modelo pueden tener hasta más de 2000 espiras.

La cantidad de espiras representa la relación entre corriente que circula por el cable y la que el sensor nos entrega, esta relación o proporción es la que diferencia entre los diferentes modelos de sensores SCT-013, adicionalmente pueden tener una resistencia de carga en la salida de esta forma en lugar de corriente se trabaja con una salida voltaje.

Sensores SCT-013

A este tipo de sensores se los conoce como Sensores CT (Current transformers), que como se explicó son transformadores, Por el núcleo solo debe de atravesar una sola línea, si pasamos por ejemplo los dos cables de una conexión monofásica, nuestra lectura será 0, puesto que los cables tienen corrientes opuestas.

Una ventaja de SCT-013 es que no necesitamos interrumpir (cortar o desempalmar) el cable que vamos a medir, esto porque al igual que una pinza amperimétrica tiene el núcleo partido.

Transformador SCT-013

Entre los diferentes modelos podemos encontrar:

Sensor de corriente SCT-013-100

Con este sensor podemos medir una corriente hasta de 100A, teniendo como salida 50mA para una corriente de 100A, la proporción entonces es de 100A/50mA.

 Sensor de Corriente AC 100A No invasivo

Sensor de corriente SCT-013-030

Nos permite realizar medidas en un rango de 3A. Este modelo tiene una resistencia de carga interna, entregándonos una salida de voltaje. La relación es de 30A/1V

 Sensor de Corriente AC 30A No invasivo

 

Circuito acondicionador de señal.

La salida de este sensor es una señal alterna, cuyo valores no está dentro del rango de las entradas analógicas (0 a +5V) del Arduino, si bien el rango del sensor puede ser inferior, la parte negativa de la señal podría malograr a nuestro Arduino.

Lo ideal es, si nuestro sensor tiene una salida de -50mA a +50mA acondicionarlo a una salida de 0 a 5V. Esto se podría realizar convirtiendo de corriente a voltaje,(a un rango de [-1V  +1V]), luego amplificarlo(a [-2.5V +2.5V]) y finalmente un sumador para eliminar la parte negativa([0 5V]).

Otra forma seria rectificando la entrada y trabajar con la parte positiva, esto asumiendo que la señal es simétrica. Nosotros usaremos esta forma.

Para rectificar no podemos usar diodos, puesto que la caída de voltaje en el diodo es muy grande en comparación al voltaje de la señal. Para esto usamos un operacional, configurado en un seguidor de voltaje, usaremos el operacional LM358,  que trabaja con polaridad positiva, de esta forma se eliminará la parte negativa de la señal, si bien no es un rectificador de onda completa, pero con una rectificación de media onda podemos trabajar.

El LM358 si se alimenta con 5V, se satura con 3.5V aproximadamente, motivo por el cual no podemos amplificar hasta 5V, pero si trabajamos con Arduino no necesitamos alcanzar los 5V, podemos trabajar con la referencia interna de 1.1V y de esta forma aprovechar en el rango completo de la lectura a analógica.
Si estamos trabajando con el sensor SCT-013-030, significa que la salida está en un rango de +/-1V, entonces nuestro circuito que usaremos es:

 Acondicionador SCT-013-030


Y si el sensor es de salida de corriente como el SCT-013-100 hay que ponerle una resistencia de carga para que esté en un rango de 1V  (50mAx20ohmios=1V).  

Acondicionador SCT-013-100

 

Debemos de tener en cuenta también los pines del conector, tiene un conector plug de audio:

conector SCT-013

El pin central está desconectado, los otros dos son la salida del sensor.

Conociendo esto podemos empezar a implementar las conexiones para poder trabajar con estos sensores:

 

Conexión CST-013 y Arduino:

La conexión es simple, implementar el circuito explicado anteriormente y después conectarlo al pin analógico 0 del Arduino.

Conexion SCT-013 y Arduino

No olvidar poner la resistencia respectiva si están trabajando con un sensor con salida de corriente.

También no olvidar que solo se debe pasar por el sensor un solo cable de la línea que se desea medir.

 

Realizando lecturas de la Corriente.

Para esto, básicamente realizaremos lecturas de la entrada analógica, posteriormente escalamos los valores a voltaje (voltaje del sensor), y finalmente con la relación (Corriente/Voltaje) que tenemos como dato del sensor obtendremos la corriente.


El código se muestra a continuación:

void setup() {
  Serial.begin(115200);
  analogReference(INTERNAL);
}

void loop() {  
  int sensorValue = analogRead(A0); //Lectura analógica
  float voltajeSensor = analogRead(A0) * (1.1 / 1023.0); //voltaje del sensor
  float corriente=voltajeSensor*30.0; //corriente=VoltajeSensor*(30A/1V)
  Serial.println(corriente,3);//enviamos por el puerto serie
}

 

Como se observa es una simple lectura analógica. En la siguiente línea se realiza el cálculo para obtener la corriente:

  float corriente=voltajeSensor*30.0; //corriente=VoltajeSensor*(30A/1V)

Dependiendo del sensor que tengan deben cambiar el 30.0 por la relación correspondiente a su sensor.

Si están usando Arduino mega, tiene dos referencias internas para su lectura analógica, hay que usar la referencia de 1.1V, para esto si están usando un Arduino Mega hay que cambiar la siguiente línea de código:

  analogReference(INTERNAL1V1); //solo Arduino Mega

A continuación se muestra la salida del monitor serial cuando estamos midiendo una carga de 600W.

No olviden escoger la velocidad de 115200 baudios.

 

Lectura SCT-013

 

Y si abren el Serial Plotter de Arduino verán los mismos datos pero de forma gráfica, y se puede observar que es una señal rectificada pero solo en media onda.

 

Plotter Lectura SCT-013

Con este ejemplo podemos ver el comportamiento de la corriente, generalmente cargas puramente resistivas muestran semi-ciclos sinusoidales, otro tipo de cargas no necesariamente tendrán ese aspecto.

  

Realizando Medidas de Potencia y Corriente AC (Irms)

Sabiendo la corriente en cada instante podemos calcular la corriente eficaz o Irms y con esto también calcular la Potencia.

El corriente  RMS (Root Mean Square) o valor eficaz, es la corriente capaz de producir el mismo trabajo que su valor en corriente directa o continúa. La corriente RMS es el valor que nos entregan los instrumentos de medición, como por ejemplo una pinza amperimétrica.

Para calcular el RMS se utiliza la siguiente formula.

Formula I rms

Y en tiempo discreto la ecuación seria:

Formula discreta I rms

Donde N es la cantidad de muestras en un periodo o múltiplo de este.

Con esta fórmula podemos obtener el valor RMS, y conociendo el voltaje (en Perú 220AC) podemos calcular la Potencia.

A continuación mostramos el código para realizar el ejemplo:

void setup() {
  
  Serial.begin(9600);
  analogReference(INTERNAL);
  //analogReference(INTERNAL1V1); //solo Arduino Mega
}

void loop() {
  
  float Irms=get_corriente(); //Corriente eficaz (A)
  float P=Irms*220.0; // P=IV (Watts)

  Serial.print("Irms: ");
  Serial.print(Irms,3);
  Serial.print("A, Potencia: ");
  Serial.print(P,3);  
  Serial.println("W");
  //delay(100);     
}

float get_corriente()
{
  float voltajeSensor;
  float corriente=0;
  float Sumatoria=0;
  long tiempo=millis();
  int N=0;
  while(millis()-tiempo<500)//Duración 0.5 segundos(Aprox. 30 ciclos de 60Hz)
  { 
    voltajeSensor = analogRead(A0) * (1.1 / 1023.0);////voltaje del sensor
    corriente=voltajeSensor*30.0; //corriente=VoltajeSensor*(30A/1V)
    Sumatoria=Sumatoria+sq(corriente);//Sumatoria de Cuadrados
    N=N+1;
    delay(1);
  }
  Sumatoria=Sumatoria*2;//Para compensar los cuadrados de los semiciclos negativos.
  corriente=sqrt((Sumatoria)/N); //ecuación del RMS
  return(corriente);
}

 

Notar que duplicamos el valor de la sumatoria para compensar el semiciclo negativo que se anuló en la rectificación de media onda.
El tiempo que dura la toma de muestras para el cálculo del RMS, debe ser múltiplo del Periodo. En nuestro caso 500ms que representan 30 ciclos de una señal de 60Hz. Si se desea una lectura más rápida, podemos disminuir este tiempo.

 

A continuación mostramos los resultados cuando medimos la corriente de un foco ahorrador de 25W

 

Lectura de Potencia y corriente AC 25W

 

Y a continuación mostramos los resultados cuando se pone la misma carga que se usó en el primer ejemplo.

 

Lectura de Potencia y corriente AC

 

Y si verificamos con una pinza amperimétrica podemos validar nuestros resultados.

 

Lectura de pinza amperimetrica

 

Si su valor no coincide, hay que modificar el valor de 30 que representa  la proporción (30A/1V) en la ecuación cuyo valor no es 100% correcto. Para realizar esta calibración es recomendable trabajar con cargas grandes.

Adicionalmente en el código, después de calcular la potencia, pueden multiplicarlo por un diferencial de tiempo y con esto medir el consumo de energía.

 

Pueden adquirir los materiales usados en este tutorial en nuestra tienda:

Arduino Uno R3

Sensor de Corriente AC 30A No invasivo

Sensor de Corriente AC 100A No invasivo

86 Comments

    • Avatar
      Maurizio
      jul 2, 2016

      Buenos días, Perdón por la gramática, pero no hablo español y he traducido con Google. Traté de hacer el circuito descrito en este artículo usando mi Arduino Mega 2560 (no original), pero me encontré con un problema: He utilizado como prueba una lámpara incandescente de 100W, si yo envuelvo 3 veces la fase en el sensor de CT y aumento el valor de la proporción (30A/1V) a 39, la lectura es suficientemente exacta (acerca de 300W), pero si el cable pasa en la sonda una sola vez, siempre con el valor de 39, la lectura es de aproximadamente 45-50W. Dejando el valor a 30 todas las lecturas son incorrectas por defecto de más de 50%. ¿Me puede decir dónde estoy equivocado? Gracias.

      • Avatar
        armando
        may 24, 2017

        Saludos estimado, se puede hacer lecturas de corrientes bajos del orden de los mili-amperios, y como se tendría que modificar el código

        • Avatar
          Ricardo
          oct 9, 2017

          disculpen una pregunta se pueden utilizar tes de estos sensores en un solo arduino

    • Avatar
      Naylamp
      jul 5, 2016

      Maurizio, verifica si estas usando el voltaje de referencia correcto, Arduino Mega tiene dos Vref internos. Verifica si tu sensor de corriente tiene las mismas características o es el mismo de nuestro tutorial (salida de voltaje o de corriente), Es mejor verificar tus resultados con un amperímetro, el foco de 100Whats no necesariamente consumen 100W. Ten en cuenta que la red con la que se hizo el ejemplo es de 60Hz y 220V AC

      • Avatar
        Maurizio
        jul 7, 2016

        Hola, Gracias por la rápida respuesta. Para la tensión de Arduino estoy utilizando la instrucción "analogReference(INTERNAL1V1);" y el sensor es un SCT-013-030 (30A/1V) de YHDC exactamente como la que se muestra en el artículo. Medición con un amperímetro, el foco consume alrededor de 69W (0.3A*230V), entonces alrededor dos veces lo detectado por Arduino. La única diferencia es que en Italia la red es de 230V 50Hz. Para de 230V he cambiado la línea de "float P=Irms*230.0;", para Hertz necesita cambiar algo en el código? Gracias.

      • Avatar
        Naylamp
        jul 7, 2016

        Mauricio, entonces parece estar todo bien, lo de la frecuencia solo es para tener en cuenta en la sumatoria o integración, el tiempo debe ser múltiple del periodo (T), en nuestro caso la integración es por 500ms (30 ciclos de 60Hz), si fuese 50 Hz se estarían tomando exactamente 25 ciclos completos y esto no afecta el cálculo. Pero para descartar algún calculo en el Irms, puedes verificar con el primer ejemplo, y observar la corriente pico Ip. Prueba con otros valores de cargas, por ejemplo con cargas de un 1A, 5A, 10A o del rango con el que vas a trabajar y si el error es lineal, puedes multiplicar por una constante para corregir.

    • Avatar
      Javier
      ago 18, 2016

      Disculpa, el LM358 tiene algunas variantes como LM358P, LM358D o LM358N, de que diferencia habria en este circuito integrado y si podría poner cualquiera de estos otros. Gracias por su atención.

    • Avatar
      Javier
      ago 18, 2016

      Buen día, disculpe el circuito integrado para el proyecto que utilizo (LM358) tiene algunas variantes como LM358P, LM358D o LM358N, y me gustaria saber si se pueden utilizar cualquiera de los otros ciercuitos integrados. Gracias por su atención.

      • Avatar
        Naylamp
        ago 22, 2016

        Hola, Javier, puedes usar cualquiera de las variantes que mencionas. Saludos

    • Avatar
      EMILIO
      sep 25, 2016

      Muchas gracias por esta gran aportación. Lo he realizado y funciona bastante bien.Tenía algo de ruido en la señal y lo he amortiguado con un condensador de 0.1micro faradio entre el punto 1 del AO y GND.Les reitero mi agradecimiento

    • Avatar
      anderson xavier
      sep 27, 2016

      La precisión es buena? Tiene un ejemplo con puertos analógicos de 3,3 V y 1 V? O saber cómo utilizar con puertos analógicos de 3,3 V y 1 V?

      • Avatar
        Naylamp
        sep 30, 2016

        Hola Anderson, el programa trabaja para un voltaje de referencia de 1.1V y la salida del operacional es de 1V y aquí deben agregar un divisor de voltaje o usar el segundo operacional del LM358 como amplificador para cambiar el nivel de voltaje. En el código también deben de corregir este cambio en el cálculo del voltaje analogRead (A0) * (1.1 / 1023.0); . Todo esto con el fin de estar en el rango completo del adc y tener una máxima precisión.

    • Avatar
      Manuel Acevedo
      oct 26, 2016

      Hola que tal, si estoy usando el sensor SCT-013-100 que cambios tengo que hacerle al programa?

    • Avatar
      Manuel Antonio Acevedo Ham
      oct 26, 2016

      Buenas tardes si estoy usando el sensor 100A/25mA como debe quedar el codigo ya con las modificaciones de acuerdo a mi sensor? No me quedo muy claro eso, le agradeceria su respuesta

      • Avatar
        Naylamp
        oct 26, 2016

        Estimado Manuel, Para trabajar con el sensor 100A / 50mA debes poner una resistencia de 20 ohmios en la salida del sensor, con esto tu nuevo rango es de 100A/1V como se muestra en la imagen del circuito acondicionador de señal. En el código debes modificar la siguiente línea: corriente=voltajeSensor*30.0; Debes cambiar el valor de 30 por 100, que es tu nueva relación (100A/1V). Saludos

    • Avatar
      Oscar Pulgarin
      oct 27, 2016

      Hola, Estoy utilizando el sensor de 100A/1V, hice el cambio en el código del valor de 30 por 100 en el cálculo, pero lo estoy implementando con un Arduino Leonardo, conectado al A0. Veo que cuando desconecto el equipo que estoy midiendo (que no es más que mi pantalla LCD del equipo que es de 70W) me sigue arrojando unos valores errados. Debo tener alguna consideración adicional con el Arduino Leonardo? Gracias.

      • Avatar
        Naylamp
        oct 28, 2016

        Estimado Oscar, En el caso del Arduino Leonardo tienes que cambiar la ecuación: voltajeSensor = analogRead(A0) * (2.56 / 1023.0); esto porque el arduino Leonardo o tarjetas con Atmega32u4 tienen un voltaje de referencia de 2.56V.

    • Avatar
      Berna
      nov 5, 2016

      Hola, primero.. muchas gracias por el aporte!Estoy teniendo inconvenientes para llevar los valores a cero cuando no hay consumo y para detectar consumos bajos, ya que no marca una diferencia cuando activo un foco de 60w. En cambio si pruebo con un secador de pelo y voy alternando las velocidades e incrementando la temperatura si detecto que Irms y Potencia se incrementan.Te cuento lo que tengo, quizás me puedas corregir lo que tengo mal.. - Pinza SCT013 30A/1V – por lo que en el código utilizo: corriente=voltajeSensor*30.0; - Arduino YUN – por lo que en el código utilizo: analogReference(INTERNAL); voltajeSensor = analogRead(A0) * (2.56 / 1023.0); - Me encuentro en Argentina (220v 50Hz) – no modifique nada del código para esto.Desde ya muchas gracias, Saludos!

      • Avatar
        Naylamp
        nov 6, 2016

        Hola Berna, efectivamente, siempre van a ver errores con cargas pequeñas, si el voltaje de referencia es de 2.56V significa que la resolución es de 2.56/1024=2.5mV esto equivale a una resolución de Ip=75mA y x220V aprox 15W, lo correcto sería usar un sensor de menor corriente o amplificar la señal.

      • Avatar
        Berna
        nov 9, 2016

        Hola Naylamp, agradezco tu respuesta! Cuando te referís a un sensor de menor corriente es al LM358? Tenes alguno/s que me puedas recomendar? O que puedo utilizar para amplificar la señal? y donde debo colocarlo? Lo que más me interesa poder reconocer es si hay consumo o no, es por ese motivo que quisiera poder detectar el cero. Desde ya muchas gracias! Saludos!

      • Avatar
        Naylamp
        nov 16, 2016

        Me refiero al sensor de corriente, en lugar de usar un sensor de SCT013 30A/1V usa uno de menor rango por ejemplo un SCT013 5A/1V con esto tu rango máximo serán potencias de 5Ax220V =1100KW, otra opción es usar sensores ACS712T que son más comerciales. La opción de ampliar la señal es usar el segundo opam del LM358 como amplificador no inversor y en lugar de trabajar en un rango de 1V amplificar a 2.56V.

    • Avatar
      Javier
      nov 18, 2016

      Hola buen día, disculpe, estoy teniendo problemas con la lectura, estoy usando el sensor de 100A y mi resistencia no es la indicada, es de 22 ohmios, esto tendrá bastante que ver con el problema indicado anteriormente, y otro detalle, ay alguna forma de extender el código para meter en el proyecto otros 2 sensores mas???, de ante mano muchísimas gracias por su atención.

      • Avatar
        Naylamp
        dic 2, 2016

        Javier, si la resistencia que usas es de 22 solo cambia la relación voltaje /corriente, que en tu caso sería (100A/1.1V), tendrías que corregir en la ecuación por: corriente=voltajeSensor*(100.0/1.1);
        Si puedes agregar más sensores, conéctalo a otra entrada analógica y usa variables y funciones independientes para cada sensor.

    • Avatar
      Xavy
      nov 18, 2016

      Buen día, disculpe, hay alguna forma de que en ves de tener 1 sensor se puedan declarar 3???

      • Avatar
        Naylamp
        dic 2, 2016

        Hola, si, los otros sensores también deben tener la misma conexión pero conectados a otras entradas analógica, en el programa repite lo mismo para los otros sensores pero usa variables y funciones independientes para cada sensor.

    • Avatar
      nicolasmunozmunoz
      nov 25, 2016

      Muchas gracias por su aporte, monte el proyecto y me funciono tal cual esta en la descripción

    • Avatar
      Julio Cepeda
      dic 31, 2016

      Hola buen dia, estoy utilizando el metodo que usan, pero para un spark core, segun tengo entendido tambien trabaja con arduino, pero al compilar el codigo me dice que en la linea analogReference(INTERNAL); no esta declarada. Alguien sabe como debe de ir en un spark core. gracias de antemano

    • Avatar
      Tom
      ene 18, 2017

      Lo primero muchas gracias por el aporte, es justo lo que estaba buscando, pero mi pregunta es, ¿qué le pasaría al sensor si se supera su máximo, por ejemplo en el SCT-013-100 si se superasen los 100 Amperios?, ¿se rompería el sensor ó simplemente satura y la salida la da como si fueran los 100 amperios? Gracias de antemano,

      • Avatar
        Naylamp
        feb 3, 2017

        Hola Tom, es muy poco probable que el sensor falle, pues solo es una bobina y antes que se rompa tiene que haber calentado. Lo más probable es que se sature el sensor, o el operacional lm358, pero antes que pase eso la lectura del arduino ya se saturó. Generalmente se programa un indicador cuando el sensor está cerca de su máxima capacidad

    • Avatar
      Gustavo
      ene 18, 2017

      Hola. Estoy ocupando uno de estos de 10A/1V , sin embargo no logro entender el circuito que debo montar. Estoy usando el lm324 con la configuracion indicada en el post y me marca valores errados. Ayuda por favor.

      • Avatar
        Naylamp
        feb 3, 2017

        Hola Gustavo, el LM324 es idéntico al LM328 con la diferencia que tienen 4 operacionales, nosotros solo utilizamos uno de estos, verifica que las conexiones estén correctos. Te debería funcionar bien.

    • Avatar
      Javier Garcia
      ene 26, 2017

      Felicidades por este tutorial, está muy bien explicado. Gracias! :)

    • Avatar
      Agustin
      ene 28, 2017

      Tengo una pregunta, si tengo bastante ruido¿ como puedo amortiguar la señal ? ¿Esta bien si lo hago con un capacitor de 10 uF? Que me recomendas hacer. Desde ya muchas gracias y me sirvio muchisimo.

      • Avatar
        Naylamp
        feb 3, 2017

        Hola Agustín, ten en cuenta que la señal que estamos midiendo es AC, un condensador se comportaría como una carga capacitiva y conduciría corriente a través de él, lo más correcto es poner un filtro a la salida del operacional o implementar el filtro por software.

    • Avatar
      Deyna
      feb 8, 2017

      Hola, una pregunta la relacion que ocupas de voltajeSensor = analogRead(A0) * (1.1 / 1023.0); 1023 a que hace referencia???

      • Avatar
        Naylamp
        feb 17, 2017

        Hola Deyna, 1023 es el valor de la lectura analógica correspondiente a 1.1V, que es el valor máximo (2^n -1) del ADC de 10 bits

    • Avatar
      Rdaneelo
      mar 19, 2017

      Hola Naylamp, solo un pequeño problema. Las especificaciones de los LM324 y 358 dicen que no se aplique más de -0,3V negativos a la entrada. El problema es que el SCT-013-050 que tengo va de -1 a +1 V. Cuando la potencia es baja (<3000-4000W) todo va sin problema, pero por encima, me pegaba un salto de potencia a los 10KW y cuando ves la señal que el arduino cogía, el ciclo negativo saltaba al máximo del sensor. ¿Has usado el circuito por debajo de los -0,3V? a mi me "aguanta" hasta los -0,6 (tensión de alguno de los diodos/transistores del LM, pero por debajo ya se vuelve loco.

    • Avatar
      Gladis Reyes
      mar 21, 2017

      hola buen dia, una pregunta si se pela el cable del sensor, como puedo identificar cual va a GND y cual pisitivo?, es que al cortarlo los colores son Blanco y Rojo. Gracias.

      • Avatar
        Naylamp
        mar 25, 2017

        Hola Gladis, el sensor no tiene polaridad, puedes conectar cualquier cable, pues es una salida AC

    • Avatar
      Juan Carlos
      mar 22, 2017

      tengo intenciones de hacer este proyecto, pero quería saber si se puede utilizar el arduino nano en lugar del one. entiendo que tienen el mismo chip, pero me entro la duda porque leí que algunas cosas no funcionan en el nano...GRACIAS!!!!

      • Avatar
        Naylamp
        mar 25, 2017

        Hola Juan, efectivamente es el nano tiene el mismo microcontrolador que el UNO, La principal diferencia es el chip para la comunicación USB. Para este proyecto puedes usar el arduino NANO sin problemas.

    • Avatar
      Lady Diana Pereira Marinla
      mar 31, 2017

      Buenas tardes, favor de indicar si tienen algún sensor de corriente de alcance desde 10 mA hasta 150 A y cual es el costo.

    • Avatar
      Álvaro
      abr 19, 2017

      Hola, podría hacer ese tutorial con una placa Wemos, que no tiene voltaje de referencia? es que llevo tiempo intentanto implementarlo con esta placa wemos pero no he obtenido resultado... si pudiera ayudarme se lo agradeciria muchisimo.Muchas gracias de ante mano. Un saludo, Álvaro

      • Avatar
        Naylamp
        abr 30, 2017

        Hola Álvaro, Primero tienes que saber que el ADC del ESP12 es de 1V y el pin analógico en el Wemos está con un divisor de voltaje de 220K y 100K con esto lee hasta un rango 3.3V ¡aproximado! revisa el esquemático . Lo que tienes que hacer es encontrar la ecuación exacta para realizar la lectura de voltaje teniendo en cuenta el divisor de voltaje, si la resolución que obtienes es poca tendrías que identificar las resistencias y hacer un puente para que el voltaje vaya directo al pin del ESP y trabajes como si tuviera un voltaje de referencia de 1V.

    • Avatar
      Jesus
      abr 21, 2017

      Tengo un problema al realizar las conexiones y cargar el programa y ejecutarlo obtengo valores por encima de 39 A a que podría deberse esto.

      • Avatar
        Naylamp
        abr 30, 2017

        Hola Jesús, ¿qué modelo de sensor y que modelo de Arduino tienes? ¿Cuánto es el error que estimas?¿los 39A a que corriente real aproximadamente corresponde? Verifica si tu sensor tiene salida de corriente o voltaje, si es de corriente verifica que la resistencia sea del valor exacto.

    • Avatar
      Esteban
      abr 27, 2017

      Hola Señor, Realmente felicitaciones el primer modelo que encuentro bien explicado y que funciona 100% en mi caso como no tenia LM 358 usé un LM324 y como compré un sensor muuucho más barato aún teniendo en cuenta todos tus cálculos y llevándolo a mi modelo me funcionó impecable, es increíble como el Serial Plotter llega al punto de darse cuenta el tipo de carga (inductiva o resistiva) y ver el cambio en la forma de onda inclusive. Entré buscando algo muy básico y me llevo mucho aprendizaje. Desde ya muchas gracias maestro!!! grandes como usted hacen que la Web sirva de algo saludos desde Uruguay.

      • Avatar
        Naylamp
        abr 30, 2017

        Hola Esteban, gracias por el comentario, seguiremos trabajando con más tutoriales difundiendo el Open Hardware y Open Source. Saludos desde Perú

    • Avatar
      Ernesto
      may 4, 2017

      Hola, excelente post, tengo un problema con las conexiones, a pesar de seguir al pie de la letra el diagrama, el progrma de arduino no trabaja como deberia, creo que podria ser por mi sensor, es una version generica del que se utiliza en el post, es esta para ser mas exacto https://www.sparkfun.com/products/11005, no se si su salida sea de corriente o voltaje, podrian ayudarme, por favor

    • Avatar
      matias
      may 25, 2017

      estoy usando un arduino pro mini,mostrando los resultados por display y el sensor por si solo conectado sin ninguna carga me tira unos 44-50 amperes,que esta mal?

    • Avatar
      javier
      may 29, 2017

      Hola, quisiera saber que cambios tengo que hacer para un sensor SCT-013 50A/1V. Reemplaze el valor en corriente=voltajeSensor*30.0 por '50' pero pruebo el sensor sin carga y de las dos formas me aparecen valores, desde 43-45 para el valor 30, y entre 70-73 para el valor 50. Muchas Gracias!

    • Avatar
      Diego
      jun 1, 2017

      Sos un maestro idolo capo!, gracias al trabajo que te tomaste en subir esta info pude terminar un proyecto de un alimentador que trabaja con respecto al amperaje, tratando de mantenerse en un amperaje de consumo continuo va variando el potenciometro de un variador que comanda un alimentador :) muchas gracias!

    • Avatar
      DG
      jun 15, 2017

      Hola, estoy integrando un proyecto con este sensor sin embargo cuento con un TL084, podrias orientarme en que afectaria en este caso?

      • Avatar
        Javier Martinez
        jun 25, 2017

        debes tener encueta que el ardunio solo trabaja con tensiones positivas y el amplifiacdor que vas a implementar usa funte dual, lo que podrias hacer es hacer el seguidor de tension como esta en el diagrama y luego utilizar un sumador para desplazar la señal senoidal a cuadrante positivo y en el codigo restarle ese offset, asi tendrias la señal completa por lo que no habria necesidad de hacer esto :"Sumatoria=Sumatoria*2;//Para compensar los cuadrados de los semiciclos negativos."

      • Avatar
        Javier Martinez
        jun 25, 2017

        otra cosa que se me olvidaba esque tambien aumentas tu resolucion y el span porque la señal quedaria de 0 a 2.2 V

    • Avatar
      Rodrigo
      jul 4, 2017

      Hola, segui el tutorial al pie de la letra, estoy usando el sensor sct-013-030, pero las medicion siempre es la misma, incluso cuando el sensor no esta recibiendo ninguna señal, los valores de la corriente siempre son entre .98A y 1 A, no se que puedo estar haciendo mal, ojala puedas ayudarme!

      • Avatar
        Jeison
        jul 6, 2017

        Me pasa exactamente lo mismo que RODRIGO aunque estoy usando el sensor sct-013 que es a 100A-50mA Y EL ARDUINO MEGA 2560 ...estoy estasando esta linea de codigo corriente=voltajeSensor*100.0; ademas de esta otra analogReference(INTERNAL1V1); //solo Arduino Mega pero siempre me marca el mismo valor de IRMS=2.8A y POTENCIA=310w aun asi no este midiendo ninguna carga.

      • Avatar
        Naylamp
        jul 29, 2017

        Hola, carguen el primer ejemplo, y prueben con una carga grande y si es posible una carga resistiva, en el serial plotter les debe salir una señal rectificada de media onda como en la imagen del tutorial, de lo contrario, lo que están leyendo no es la corriente sino un ruido externo, Verifiquen si su sensor realmente tiene una salida de voltaje o de corriente, si es de corriente agreguen la resistencia correcta.

    • Avatar
      Xavier Enrique Torres Zamudio
      ago 11, 2017

      Excelente tutorial, tengo una duda con respecto a la conexion del sensor al operacional, al cortar el cable y deshacerme de la entrada de audio me quedan dos cables uno rojo y uno blanco, ¿Que cable debo de conectar al pin 3 o 4 del operacional? Gracias de nuevo. Saludos

      • Avatar
        Naylamp
        ago 29, 2017

        Hola Xavier, El sensor no tiene polaridad es una salida AC.

    • Avatar
      Javier Martinez
      ago 29, 2017

      tengouna duda cuando dejo el sensor sin ninguna carga me marca una corriente de 0.1 a yo soy de colombia aca utilizamos 115v por lo que me daria 11.5w sin haber nada conectado alguien le ha sucedido?

    • Avatar
      Jhonathan
      sep 12, 2017

      Muy buenas, estoy utilizando un sensor de 100A, le coloqué la resistencia de 20 ohmios, pero cuando hago el primer ejemplo, los valores no me llegan a 0.000 como en el ejemplo sino que llegan hasta 0.234 y así, además que cuando coloco una carga de unos 800W (una plancha) la señal me sale con algo de ruido, he pensado en colocarle un filtro RC para ver si puedo quitarle ese ruido, sin embargo me preocupa un poco que no me esté llegando a 0 ya que pienso que eso me restará precisión en la lectura.Acá dejo la imagen de la señal http://prntscr.com/gkdvpo

    • Avatar
      Jose
      sep 14, 2017

      Hola amigo muy buen proyeco, si no me equivoco usas 220v? Yo quiero medir 120v y el amperaje correspondiente, se podría?

    • Avatar
      javier
      sep 15, 2017

      Muchas Gracias por el tutorial. Como estas! realice el proyecto y encuentro el siguiente inconveniente. Tengo un Arduino nano, un SCT013 100A:50mA. En las pruebas de comparación con una pinza amperimetrica vemos que en consumos menores a 28 amperes mas o menos se mantienen parejo. Pero con consumos mayores, (probamos hasta 85 amperes) los valores son muy distintos, el crecimiento no es lineal incluso. Si se te ocurre algo para probar por favor comentame. Muchas Gracias.

    • Avatar
      Diego
      oct 7, 2017

      Primeramente felicitar a los señores que son responsables de este proyecto. Tengo una pregunta, quiero implementar este proyecto en una fabrica donde un motor consume cerca de los 150 Amp, tengo disponible un CT de 500/5A 5VA y una resistencia de 0.47 ohm 20W, que condiciones tendría que tomar en cuenta para realizar, si me pueden ayudar a implementar este proyecto se les agradece de antemano.

    • Avatar
      Isaac
      oct 12, 2017

      Hola muy buenas, tengo una curiosidad, si yo quisiera implementar 7 canales sabiendo que Arduino solo tiene una entrada analógica como se podría resolver el problema? Siempre evitando los 7 arduinos :-) muchas gracias.

    • Avatar
      Jorge
      oct 19, 2017

      Hola, que tal, cuando hago la lectura en el arduino mientras mi dispositivo está apagado, éste me muestra un valor, cree que sea algo de la programación? o en si del operacional? Saludos

    • Avatar
      Pablo caol
      nov 3, 2017

      Hola primero que nada muchas gracias por la gran explicación. Tengo una pregunta yo tengo un bobina rogoswski de 1000 A a 100mV alguna idea para desarrollar el proyecto?? De nuevo gracias

    • Avatar
      ivan
      ene 31, 2018

      Muy buenas, estoy utilizando un sensor de 100A, le coloqué la resistencia de 20 ohmios, pero cuando hago el primer ejemplo, los valores no me llegan a 0.000 como en el ejemplo sino que llegan hasta 0.234 y así, me podrias ayudar a saber cual es el problema? lo agradeceria mucho

    • Avatar
      JESUS
      mar 22, 2018

      hola a todos por favor me podrian sacar de una duda. Voy a utilizar el sensor para medir corriente AC a la salida de un inversor, pero cuando se aplica el analogReference(INTERNAL); todas las entradas analogas las vuelve con esa referencia, por que las otras entradas las necesito sin esa referencia gracias

    • Avatar
      Lucia
      jul 26, 2018

      Hola.Estoy intentando acondicionar la señal pero estoy teniendo problemas.He realizado con operacional LM358 usando La primera parte como señal de antena de 1V q 5V. Rectificando la señal y amplificando. Luego he utilizado un filtro sallen Kelly de Segundo orden. Alguien me podría decir si estoy haciendo algo mal. Tiene Diodos y pierdo algo de precisión debido a esto. Pero quitando este problema. Debería de funcionar no?

    • Avatar
      javier
      sep 27, 2018

      hola.quiero enviar la señales de 3 sensores a una raspberry gracias javierorlandoq89@gmail.com

    • Avatar
      JOSE LUIS
      oct 8, 2018

      Hola , he comprado el lm358 y el sensor sct de 30 amp . Tal como esta aqui en el dibujo estoy realizando las conexiones y sigue sin funcionarme . es necesaria alguna resistencia que no está en el dibujo ?? Muchas gracias .

    • Avatar
      Artyom
      oct 17, 2018

      Hola, do i have to change schemme with esp8266 adc A0 (3.3v)?

    • Avatar
      Diego Francisco Hombre Correa Ramírez
      feb 20, 2019

      Hola, necesitaría saber si el SCT-013 cumple con una especificación que es la tensión resistida a impulso atmosférico (debe ser mayor a 8kV 1,2/50microsegundos).Gracias desde ya por la respuesta.

    • Avatar
      Luis
      may 10, 2019

      Que tal,me parece de gran interés la información referente al sensor de corriente SCT-013 mas sin embargo me gustaría saber ¿cual es el margen de error con respecto a la medición real de corriente?

    • Avatar
      Ociel
      may 20, 2019

      Buen dia amigo, tengo un Sensor HST21 par medir una fase de un edificio, ¿Me podrias ayudar en como quedaria el codigo?

    • Avatar
      kevin
      may 25, 2019

      hola buenos días, muchas gracias por el espacio y compartir esta interesante información. primero, logre implementar el circuito al arduino mega con la pinza de 30amp/1v junto con el opam LM358P no tuve ningún problema en la medición de la corriente en el rango de 0-11.98A, cuando genero mas de 11.98A la medición se dispara a 22 amperios y al llegar a los 30A la medición también llega a los 30A. con ayuda de un osciloscopio pude medir la señal en la salida del opam y me di con la sorpresa que al superar los 11.98A la forma de la media onda se deforma y se genera una señal cuadrada. lo simule en proteus con un LM385N y no sucede esto. mi pregunta es el siguiente : esto sucede por el tipo de diferencia de código del opam ya el que tengo es el LM358P y lo segundo es si es que hay alguna configuración que se pueda añadir al opam para evitar esta deformación de la media onda ya que es el causante de que el amperimetro se dispare de 11.98A A 22A. SALUDOS;

    • Avatar
      Hank
      ago 5, 2019

      Buena tarde, está bien la guía. Tengo una pregunta: cómo sé cuál cable del sensor SCT-013 es tierra y el otro señal?? o es indistinto?? Gracias.

    • Avatar
      ruben
      sep 6, 2019

      estimados naylamp, gracias por este gran aporte,podrian indicarme como visualizar las lecuras en un display lcd? gracias

    • Avatar
      Dario
      nov 27, 2019

      Hola y gracias por el tutorial, al mometo de simularlo funciona perfecto, pero lo implemente y con el primer codigo las lecturas son de 0.0 y con el segundo codigo me marca valor asi mo tenga midiendo nada , tal ves me puedes ayudar, soy nuevo en arduino

Leave a Reply

* Name:
* E-mail: (Not Published)
   Website: (Site url withhttp://)
* Comment: