sensor efecto hall

Hola comunidad Arduino!
Quisiera hacerles una pregunta. Resulta que he comprado varios modulos de sensor efecto hall lineal y sensores de corriente para medir amperaje en corriente alterna. He probado con el ACS712 para 5 y 20 A, el sensor SCT 013 y otros similares. A veces estos sensores, que suelen venir de china, o directamente no van o los resultados no suelen ser muy precisos. Por ejemplo, un día quise medir la corriente de una bombilla led de 8W (230V e I = 0,0347 A) y lo que daba (probando con diferentes códigos) no tenía sentido alguno. Para corrientes elevadas los resultados son más fiables pero no precisos. En fin, me preguntaba si existe algún sensor Hall o no...que sea fiable para medir corriente.
Muchas gracias,

Yo tengo un ACS712-5A y lo contraste con mi multímetro y funciona muy bien. Me sorprende tu afirmación!! No la desmiento.

Primero define "Fiable", palabra que incluye dos conceptos distintos: Preciso y Exacto. ¿Es fiable tu montaje y soft?
Yo tengo el SCT013 y para las cargas normales del hogar es razonable en ambas cosas (para su precio)
Lo tengo hecho para enviar consumo por Wifi cada minuto a una gráfica.

Control consumo

Espero te sirva

Yo uso el acs712 y me funciona genial, quizás estas aplicando una mala formula par conocer el valor correcto de amperaje...
en un principio me dio dos veces valores erróneos:
la primera tenia mala la formula de conversión
y la segunda se me habia quemado por una subida de voltaje en la alimentación
Ojala te sirvan saludos

Gracias por vuestra pronta respuesta.
Quizás ya lo habréis probado, pero sino es un experimento muy simple que podéis hacer.
Si cogeis un sensor hall ACS712 debidamente conectado con el Arduino y con un código (probé varios que encontré en la red) y medimos el consumo de corriente alterna de un consumidor de pequeñas potencias como un led (en mi caso 8W), o bien las medidas son erróneas o el consumo indicado por el fabricante es incorrecto. Es decir, si multiplicamos las lecturas del sensor por 230 V no nos dará la potencia exacta.
Pero por otro lado hay otro experimento que os recomiendo: Si probamos de medir con el mismo sensor la frecuencia de la red de pequeños consumos como el anterior (del orden de mA),...., notareis que es como si el sensor sólo midiera ruido. Vaya no leeremos 50 Hz.
Para consumos elevados por ejemplo una caldera eléctrica (6 - 7 A) la lectura es bastante precisa y el producto P = Irms·Vrms es prácticamente igual a la potencia aparente dada por el fabricante en su placa de características (y además si se miden perfectamente los 50 Hz).
En fin, quizás es sólo el código... o bien he llegado a los límites inferiores del sensor.
Gracias!

Esto...Pretender hacer electrónica por medio de suposiciones o intuición nos lleva a callejones sin salida.
No soy técnico, pero mirar la hoja de datos de un producto nos da soluciones.
El ACS712 (por 6 euritos) que se vende suele ser es de 30A, la hoja de datos nos da una sensibilidad de 66mA por Amperio.
Si mides 8 miseros watios son 0,035A que por regla de tres nos da 66x0.035/1= 2,3 mA que no creo que nuestro Arduino pueda medir y separar del ruido de fondo.
Creo.

Para comenzar, si tienes duda de la ecuación ve a la hoja de datos y la haces tu. En internet hay muchas cosas buenas y mucha porquería.
Respecto de tu medición, me parece que tienes algunos conceptos equivocados.
8W en 230VAC dan una corriente de 0.0348A o 34.8 mA para un sensor que como mucho mide 5A en fondo de escala no?
Veamos el ACS712ELCTR-05B-T da 185mV/A o sea mal creemos que es de 5A y como mide +- 5A es como si fuera permítanme la licencia 10A.
Pero como el cero esta para 2.5V debemos tener en cuenta esto.
La sensibilidad de un arduino 10 bits con 5V de referenica es 5/1024=4.9mV
Entonces
Amperes ACS712 = (0.0049ADC-2.5)/0.185 = 0.026ADC-13.5135 en Amperes
ACS712mA = 26ADC-13510 =>
Supongamos que estamos en 512 o sea 0 A veamos = 26
512-13513/5=13.21mA
En realidad se hace 0 para 511.5 pero no es un valor que entregue el AD asi que supongamos está bien.

Bueno, tu quieres medir cuanto? 34.7mA o sea.. 2 cuentas del AD
Veamos
si fuera 513 el resultado es => 39.62mA
y si fuera 514 el resultado es => 66.05mA

Entonces no es que el sensor mida mal, es que la resolución del AD con el que lo mides es mala.

Si tuvieras un DUE por ejemplo agregarías 2 bits para totalizar 12bits y no 10 o sea 4096 pasos
A ver como cambia?

Con 2048 estamos mas o menos en 0, pero la cuenta da => 3.3mA

2048 3,30
2049 9,90
2050 16,50
2051 23,10
2052 29,70
2053 36,30
2054 42,90
2055 49,50
2056 56,10

y tu habias dicho que querías medir 34.7mA.. ahi lo tienes ni con 12 bits puedes medirlo apropiadamente.
Recien con 16 bits estarás leyendo apropiadamente.
Ahora, eso sin considerar el ruido eléctrico y los mil y un problemas que se tienen al medir.
Solo te planteo la respuesta desde la resolución del AD de nuestros Arduinos.

Conclusión: El sensor no es malo. No puedes medir esa lectura con un Arduino de 10 bits y casi tampoco con un DUE.
Requieres un AD de 16bits

Gracias por todas las aclaraciones. Me han agradado mucho todas sus explicaciones. Me podríais decir, por favor, qué modelo de arduino es el que da 16 bits?

Ninguno. Debes comprar alguna placa externa.

mira esto enlace