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.
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.
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 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
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:
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).
Debemos de tener en cuenta también los pines del conector, tiene un conector plug de audio:
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.
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.
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.
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.
Y en tiempo discreto la ecuación seria:
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
Y a continuación mostramos los resultados cuando se pone la misma carga que se usó en el primer ejemplo.
Y si verificamos con una pinza amperimétrica podemos validar nuestros resultados.
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.
pa**************** 22/09/2023 Responder
alguien me puede ayudar, es que necesito que el arduino me sirva y me conecte a wifi, es un esp32wroom y la funcion para la medicion sirve, pero cuando lo conecto a wifi se deja de medir, ya no se porque esJo****** 20/07/2022 Responder
Hola ingeniero, de antemano muchas gracias por el aporte, mi pregunta es si puedo hacer lo mismo en un esp8266 y como puedo hacer una rectificación de onda completa para tener una medida completa?, Gracias por la ayuda, éxitos!!!Aa*** 07/03/2022 Responder
alguien me podria explicar porfavor lo que va en el codigo whileAn***** ****** ****ez 25/01/2021 Responder
Oigan, de que hablan en este sitio, yo buscaba un amplificador para guitarra y llegué aquí, no entiendo nada, ayuda por favor.SA**** 21/12/2020 Responder
hola no logro conectar dos sensores a la vez me podrían explicar el como puedo configurar la programacion?Al******* ****** *****za 28/10/2020 Responder
Saludos estimados, parece que entendí el tutorial, me queda la siguiente duda:Es que noto que en el primer código usan una configuración de 115200 baudios.
Luego veo que dicen: "No olviden escoger la velocidad de 115200 baudios."
Sin embargo en el segundo código usan la velocidad típica de 9600 baudios.
De antemano gracias por su atención.
Al******* ******* ***vo 26/10/2020 Responder
hola, si uso un arduino nano, el codigo es el mismo de arriba?(a excepcion de lo especificado por el mega.) quedo atento gracias.Pa** ****ia 10/08/2020 Responder
Gracias Naylamp. He implementado conexiones y código según el tutorial y todo funciona bien hasta que se llega a los 8 Amperios = 1.700 W aprox., punto a partir del cual las lecturas se disparan a 3 o 4 kW con pequeños incrementos de corriente, como si se llegara algún punto de saturación ... pero no será de la pinza puesto que es la 30A/1V ... que podría detectar más corriente. ¿Cómo se puede solventar esta "saturación" a los 8 A? ¿Habría que incluir alguna reducción de voltaje a la entrada del LM358, si es que el que se ve saturado por la pinza? Gracias por responder. Estoy muy interesado en poder medir potencias de hasta unos 25 Amperios. ¿Podría ser mejor la utilización de la pinza de 100A/50mA y resistencia de 20 Ohmios? GraciasRo***** 16/04/2024 Responder
Tengo el mismo problema, pero no ha podido solucionarlo, alguien pudo hacerlo?Da*** 27/11/2019 Responder
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 arduinoru*** 06/09/2019 Responder
estimados naylamp, gracias por este gran aporte,podrian indicarme como visualizar las lecuras en un display lcd? graciasHa** 05/08/2019 Responder
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.ke*** 25/05/2019 Responder
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;
Pa** ****ia 10/08/2020 Responder
Hola Kevin, ¿conseguiste arreglar el problema de "saturación" a partir de cierto valor de corriente, en mi caso 8A?Yo tengo tambien el LM358P. Gracias por compartir la solución para llegar a los 30 A con la pinza 30A/1V.
Oc*** 20/05/2019 Responder
Buen dia amigo, tengo un Sensor HST21 par medir una fase de un edificio, ¿Me podrias ayudar en como quedaria el codigo?Lu** 10/05/2019 Responder
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?Di*** ********* ****** ****** ******ez 20/02/2019 Responder
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.
Ar**** 17/10/2018 Responder
Hola, do i have to change schemme with esp8266 adc A0 (3.3v)?JO** **IS 08/10/2018 Responder
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 .
ja**** 27/09/2018 Responder
hola.quiero enviar la señales de 3 sensores a una raspberry gracias[email protected]
Lu*** 26/07/2018 Responder
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?
JE*** 22/03/2018 Responder
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 graciasiv** 31/01/2018 Responder
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 muchoPa*** **ol 03/11/2017 Responder
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 graciasJo*** 19/10/2017 Responder
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? SaludosIs*** 12/10/2017 Responder
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.Di*** 07/10/2017 Responder
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.
ja**** 15/09/2017 Responder
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.
Jo** 14/09/2017 Responder
Hola amigo muy buen proyeco, si no me equivoco usas 220v?Yo quiero medir 120v y el amperaje correspondiente, se podría?
Jh******* 12/09/2017 Responder
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
Ja**** ******ez 29/08/2017 Responder
tengouna duda cuando dejo el sensor sin ninguna carga me marca una corriente de 0.1 a yo soy de colombia aca utilizamos115v por lo que me daria 11.5w sin haber nada conectado alguien le ha sucedido?
Xa**** ******* ****** *****io 11/08/2017 Responder
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. SaludosNa***** 29/08/2017 Responder
Hola Xavier, El sensor no tiene polaridad es una salida AC.Ro***** 04/07/2017 Responder
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!Na***** 29/07/2017 Responder
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.Je**** 06/07/2017 Responder
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.DG 15/06/2017 Responder
Hola, estoy integrando un proyecto con este sensor sin embargo cuento con un TL084, podrias orientarme en que afectaria en este caso?Ja**** ******ez 25/06/2017 Responder
otra cosa que se me olvidaba esque tambien aumentas tu resolucion y el span porque la señal quedaria de 0 a 2.2 VJa**** ******ez 25/06/2017 Responder
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."Di*** 01/06/2017 Responder
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!ja**** 29/05/2017 Responder
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!
ma**** 25/05/2017 Responder
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?Er***** 04/05/2017 Responder
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 favorEs***** 27/04/2017 Responder
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.Na***** 30/04/2017 Responder
Hola Esteban, gracias por el comentario, seguiremos trabajando con más tutoriales difundiendo el Open Hardware y Open Source. Saludos desde PerúJe*** 21/04/2017 Responder
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.Na***** 30/04/2017 Responder
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.Ál***** 19/04/2017 Responder
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
Na***** 30/04/2017 Responder
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.La** ***** ******* *****la 31/03/2017 Responder
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.Ju** ****os 22/03/2017 Responder
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!!!!
Na***** 25/03/2017 Responder
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.Gl**** ***es 21/03/2017 Responder
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.
Na***** 25/03/2017 Responder
Hola Gladis, el sensor no tiene polaridad, puedes conectar cualquier cable, pues es una salida ACRd****** 19/03/2017 Responder
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.
Na***** 25/03/2017 Responder
Hola Rdaneelo, muy buena observación, lo correcto debería ser usar rectificadores con amplificadores operacionales o rectificador de precisión, y para no modificar el código sería un rectificador de precisión de media onda, uno muy básico puede ser como la segunda imagen de siguiente link: http://blog.pucp.edu.pe/blog/tito/2016/09/02/rectificadores-con-amplificadores-operacionales/Ti** 11/12/2020 Responder
Solo para actualizar. El circuito rectificador en cuestión se encuentra, ahora, en la dirección: http://blogdetito.com/2016/09/02/rectificadores-con-amplificadores-operacionales/De*** 08/02/2017 Responder
Hola, una pregunta la relacion que ocupas de voltajeSensor = analogRead(A0) * (1.1 / 1023.0); 1023 a que hace referencia???Na***** 17/02/2017 Responder
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 bitsAg***** 28/01/2017 Responder
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.Na***** 03/02/2017 Responder
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.Ja**** ****ia 26/01/2017 Responder
Felicidades por este tutorial, está muy bien explicado. Gracias! :)Gu***** 18/01/2017 Responder
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.Na***** 03/02/2017 Responder
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.To* 18/01/2017 Responder
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,
Na***** 03/02/2017 Responder
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 capacidadJu*** ****da 31/12/2016 Responder
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 antemanoni*************** 25/11/2016 Responder
Muchas gracias por su aporte, monte el proyecto y me funciono tal cual esta en la descripciónXa** 18/11/2016 Responder
Buen día, disculpe, hay alguna forma de que en ves de tener 1 sensor se puedan declarar 3???Na***** 02/12/2016 Responder
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.Ja**** 18/11/2016 Responder
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.Na***** 02/12/2016 Responder
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.
Be*** 05/11/2016 Responder
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!
Na***** 16/11/2016 Responder
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.Be*** 09/11/2016 Responder
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!Na***** 06/11/2016 Responder
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.Be*** 09/11/2016 Responder
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!Be*** 09/11/2016 Responder
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!Os*** ******in 27/10/2016 Responder
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.Na***** 28/10/2016 Responder
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.Ma**** ******* ******* *am 26/10/2016 Responder
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 respuestaNa***** 26/10/2016 Responder
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). Saludosjo***** ****** ***da 08/12/2017 Responder
Buenas, estoy usando el sensor de 100A pero al usar el segundo código, en el monitor me aparece 1,xxxA - 2xx W, sucesivamente y cuando conecto el sensor sigue marcando igual !!Ayuda por favor
Ma**** *****do 26/10/2016 Responder
Hola que tal, si estoy usando el sensor SCT-013-100 que cambios tengo que hacerle al programa?an****** ****er 27/09/2016 Responder
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?
Na***** 30/09/2016 Responder
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.EM**** 25/09/2016 Responder
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
Ja**** 18/08/2016 Responder
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.Na***** 22/08/2016 Responder
Hola, Javier, puedes usar cualquiera de las variantes que mencionas. SaludosJa**** 18/08/2016 Responder
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.Na***** 05/07/2016 Responder
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 ACNa***** 07/07/2016 Responder
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.Ma****** 07/07/2016 Responder
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.
Ma****** 02/07/2016 Responder
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.
ar***** 24/05/2017 Responder
Saludos estimado, se puede hacer lecturas de corrientes bajos del orden de los mili-amperios, y como se tendría que modificar el códigoRi***** 09/10/2017 Responder
disculpen una pregunta se pueden utilizar tes de estos sensores en un solo arduino