El sensor de efecto Hall o simplemente sensor Hall o sonda Hall (denominado según Edwin Herbert Hall) se sirve del efecto Hall para la medición de campos magnéticos o corrientes o para la determinación de la posición.
Si fluye corriente por un sensor Hall y se aproxima a un campo magnético que fluye en dirección vertical al sensor, entonces el sensor crea un voltaje saliente proporcional al producto de la fuerza del campo magnético y de la corriente. Si se conoce el valor de la corriente, entonces se puede calcular la fuerza del campo magnético; si se crea el campo magnético por medio de corriente que circula por una bobina o un conductor, entonces se puede medir el valor de la corriente en el conductor o bobina.
En el este post se va a usar el modelo SCT-013-030 que se puede utilizar en modo “pinza amperimétrica” y que, gracias a su diseño de nucleo partido nos permite efectuar la medida de intensidad eléctrica que circula por dicho cable que de ser el neutro o activo de la acometida nos dará la intensidad consumida por nuestra vivienda . El aspecto de este sensor puede verse en la figura adjunta.
Este sensor puede obtenerse fácilmente en Internet, por ejemplo, en la tienda deBricoGeek
La gran ventaja de este sensor frente a otra circuitería – o incluso al típico multímetro – es que no precisamos interrumpir)el cable donde vamos a efectuar la medición ya que el sensor puede abrirse para que hagamos pasar por el mismo el cable de la instalación que deseemos verificar. Pasamos el cable y este se comporta como un bobinado (de espira única) en el transformador que incorpora el sensor.
Su principio de funcionamiento está basado en el transformador eléctrico (extrictamente en un transformador de intensidad). Internamente el sensor incorpora un pequeño transformador constituido por su nucleo y, en vez de dos devanados – típicamente primario y secundario – tiene tan solo un bobinado en uno del los extremos de su núcleo ferrromagnético. Si tomamos este bobinado como el secundario, la parte correspondiente al primario serían las espiras (en este caso la espira única) que constituirá el mismo en cuanto lo insertemos en el circuito a medir.
Al hacer pasar por el “primario” de este sensor un cable de nuestra instalación este capta el flujo magnético generado que será proporcional a la intensidad que circula en ese instante por el cable. Por efecto de la inducción electromagnética obtendremos en el secundario (salida del sensor) una intensidad que será proporcional a la del primario. El efecto transformador de intensidad de primario con espira única puede verse en esta ilustración. Aunque en la figura anterior no la hemos representado por simplicidad, existe una resistencia de carga en la salida del transformador, de cuyos bornes tomaremos la señal a utilizar. Debemos fijarnos que tan solo hemos de pasar por el sensor un hilo de los dos que conforman la red a monitorizar en nuestra casa, tal y como se muestra aquí …
Sea cual sea la instalación que deseemos controlar, y aunque el sensor en este caso no es invasivo al poderse abrir y se instala sin tener que cortar un solo cable, si que hemos de tener alguna precaución si, por ejemplo, queremos verificar el consumo total de nuestra casa. En este caso no tendremos más remedio que localizar la entrada general (típicamente antes del magnetotérmico o diferencial general) e insertar con sumo cuidado el sensor abriendo este pasando el conductor y luego volviendo a cerrarlo.
En el caso de no poder disponer de una sonda de efecto hall si esta en nuestras manos interrumpir el circuito a medir podemos usar un viejo transformador de un solo bobinado ( su conexiones irian al circuito propuesto) y luego simplemente meteremos un hilo de cobre de gran sección que rodeara el entrehierro cuyos extremos conectaremos al circuito a medir.
Una vez instalado el sensor tan solo tendremos que conectar su salida (vía jack tipo audio de 3.5 mm) al circuito interfaz que comentaremos a continuación. Conviene mencionar que los terminales de salida del sensor se corresponden con los extremos del jack, tal y como vemos en la ilustración adjunta.
La señal obtenida en función del consumo (intensidad) que circula por el cable monitorizado nos proporcionara una tensión proporcional a la salida del sensor – en bornes de la resistencia interna mencionada – y que es de muy pequeño valor (milivoltios), razón – entre otras – por la que necesitaremos un circuito interfaz-amplificador …La respuesta del sensor ante diversas cargas de consumo comprobadas nos ha devuelto una respuesta suficientemente lineal…
Aunque las pruebas efectuadas han sido con consumos de tipo bajo/medio, basta para hacernos una idea.
- Interfaz electrónica con Arduino o Netduino
El circuito interfaz propuesto tiene dos funciones, a saber: rectificar y amplificar la señal proviniente del sensor (esta es de tipo senoidal, lógicamente). Al ser una señal de tensión tan reducida nos hemos visto obligados a evitar el uso del típico rectificador, esto es, el diodo o puente de diodos, ya que la caida de tensión en los mismos se “comería” literalmente los milivoltios AC de que disponemos. La solución pasa por un rectificador de precisión mediante el uso de un amplificador operacional (A.O.). No vamos a comentar aquí la operativa de los A.O., pero baste decir que la señal así tratada se rectifica convenientemente y nos da pie (también usando un AO) a realizar una pequeña amplificación ajustable por el usuario y que puede servirnos de ajuste “fino” del montaje una vez terminado.
En este pequeño esquema vemos como quedaría – a nivel de bloques – el montaje. La alimentación de +5V puede obtenerse desde el propio Arduino o Netduino
Como hemos dicho, la misión de la primera parte del circuito interfaz es rectificar sin pérdida de tensión la señal del sensor, para obtener así una señal continua – aunque pulsante – capaz de ser luego amplificada y obtener niveles de tensión adecuados en la entrada analógica de nuestro Arduino. La señal a tratar se hace llegar a la entrada analógica (A0) del mismo.Se ha utilizado como tanto para la etapa rectificadora como para la amplificadora el amplificador operacional LM358 por su precisión y por ser facilmente adquirible en las tiendas del del sector. Dado que cada uno de estos chips incorpora una pareja de A.O. tendremos que utilizar tan solo un chip. El circuito -al margen del chip – precisa de pocos componentes externos adicionales. Un condensador de desacoplo de 100 nF, un diodo y unas cuantas resistencias.
A modo de ayuda vemos aquí el esquema internos del A.O. LM358. Como casi siempre, las patillas de alimentación son: 4(GND) y 8 (+Vcc)
La señal obtenida al circular corriente por el sensor tiene un aspecto tal que así :
Una vez rectificada ( en modo onda completa ) obtendremos:
Y tras ser amplificada, la señal CC llega al CAD de nuestro microcontrolador (Arduino o Netduino).
El software para Arduino desarrollado a modo de test para controlar el sensor de corriente no es excesivamente complejoy se podria adaptar para usarlo con Netduino.
Comentamos las particularidades del mismo, cuyo contenido mostramos aquí, y que podremos descargar desde el link al final de esta entrada.
El programa calcula varios parámetros a partir de la señal (milivoltios) recibida desde el sensor. La conversión analógica del Arduino (CAD) nos permite obtener 1024 niveles en el caso de Arduino de tensión en la entrada A0, lo que significa que tendremos niveles de 0.0048 V ( 5/1024 ), o lo que es igual, una resolución de 4.8 mV /bit.
El valor así obtenido se maneja en la variable vS, pero la “lectura” del valor se hace en la función “smoothread“, que además de lanzar la conversión, lo hace de una forma repetitiva y específica para obtener un resultado más fiable. Podemos ajustar mediante la variable “ni” (número de iteraciones de lectura a promediar) obteniendo así al final de esta un valor más estable (puede compensar pequeñas variaciones en la CAD del Arduino).
La rutina de lectura localiza el punto de paso por cero de la señal y, a partir del mismo introduce un retardo de 5 ms. – lo que equivale a 1/4 del periodo ( t/4 ) cuando medimos una CA de 50 Hz)- . Este valor (variable ff) puede – y debe - ser modificado si queremos operar con una tensión de 60 Hz. (ff=4.15) . El punto de lectura(s) efectuada(s) puede verse más claramente en este gráfico
Como quiera que el valor devuelto por la rutina smoothread será una media de n lecturas (ni), pero aprovechando el valor máximo de la tensión, tendremos que efectuar un cálculo del valor RMS para dicha lectura ( lectura = smoothread (1) / 1.41; ), y una vez tengamos este, lo multiplicaremos por 0.0048 ( 1/1024 ) para tener la tensión medida en mV. por el sensor. Para obtener el valor de intensidad que circula por el sensor tendremos que utilizar la variable S_Ratio (experimentalmente calculada) y que nos da – como su nombre indica – la relación mV/mA proporcionada por el sensor, dvidiendo la misma por 1000 para que el valor de iA sea en Amperios.
Una vez tengamos el valor de intensidad lo demás es sencillo. Por simple aplicación de fórmulas obtendremos la potencia (en kW) que se alojará en la variable pKW.
Es importante mencionar que el valor de la variable vV, correspondiente a la tensión doméstica AC (prefijada en el programa), ha de ser modificada por el usuario para obtener las lecturas correctas. No todas las poblaciones reciben una tensión idéntica, en nuestro caso, los 220 voltios típicos se han pre-fijado (tras medirlos) en 230 V.
A modo de resumen, vamos a enumerar los pasos (incluídos los opcionales) a seguir para poner en marcha el montaje …
Para el Hardware:
- Realizamos el cableado del circuito ( ¡ y lo revisamos !).
- Dejamos el potenciómetro de ajuste en su posición central.
- Conectamos el sensor a 1 hilo del circuito a medir (fase).
- Conectamos el sensor a nuestro montaje.
- Comprobamos que al conectar la alimentación luce el Arduino correctamente.
Para el Software:
(algunas variables solo han de verificarse y pueden dejarse como están)
- Editamos el fichero ArduPowerDVTK.ino antes de ejecutarlo
- Ajustamos la variable retardo (tiempo entre visionados).
- Ajustamos la variable vV (tensión AC en nuestra casa).
- Ajustamos la variable ff (delay para 50 o 60 Hz).
- Ajustamos la variable ni (n. iteraciones para smooth-effect).
- Ejecutamos el programa
Ajustes:
Como ajuste final aconsejamos – una vez arranquemos el programa – hacer circular cierta intensidad de valor medio ( unos 1000 W puede ser correcto ) por el cable a medir. Conviene que sepamos siquiera de forma aproximada el consumo en vatios de dicha carga, y también que esta sea de tipo resistivo preferentemente (p.ej. un calefactor ).Una vez que el programa nos de los valores en pantalla (abriendo el terminal serie del IDE Arduino) deberemos realizar un ajuste fino del montaje mediante el potenciómetro R6hasta que obtengamos la lectura de potencia correcta.
Cabe mencionar que el montaje no es muy sensible a pequeñas cargas ( < 40 vatios) cuando se conectan solas, pero suma adecuadamente su consumo al computar un conjunto de estas, por lo que el consumo total debería ser muy aproximado al real. Factores que pueden afectar a discrepancias en la lectura del dispositivo pueden ser:
- Cargas de tipo reactivo (motores, cuircuitos capacitivos)
- Cargas de muy poca potencia medidas aisladas (ya comentado).
- Valor de tensión (variable vV) mal ajustado.
- Valor de frecuencia (variable ff) mal ajustado.
- Incorrecto cierre del sensor.
Referencias y descarga de código:
Referencias de diseño
- Documentación del circuito LM358
- AN del circuito CA3140 (pag.9)
- Documentación del Sensor SCT-013-030
El fichero descargable contiene:
- Software de control ArduPower_DVTK.ino para medir potencia.
- Información del sensor modelo SCT-013-030
Fuente aqui