ACS712: el módulo sensor de corriente

ACS712 chip

El módulo ACS712 es una solución económica para poder medir corriente en tus circuitos de DIY. Como maker, es posible que necesites llevar una monitorización de la corriente de un circuito. En tal caso, te va a gustar este componente que te presento. El sensor detectará la cantidad de corriente y entregará una salida de voltaje proporcional a la corriente captada. Además, al venir ya integrado en un módulo, facilita mucho la conexión, con fichas de conexión y todo lo necesario para usarlo sin agregar demasiados componentes extra.

Las aplicaciones de este dispositivo son muchas como podrás comprobar, incluso si tienes diferentes intensidades en el circuito, ya que podrás seleccionar las diferentes versiones de ACS712 que existen. Por ejemplo, los ACS712-05A, ACS712-20A, ACS712-30A, etc., para rangos de intensidad de corriente de 5A, 20A y 30A, respectivamente.

Efecto Hall

efecto Hall

Wikipedia

El ACS712 funciona gracias al efecto Hall. Con él se puede medir campos magnéticos y corrientes, como es el caso. Cuando fluye una corriente a través del sensor Hall, y se aproxima a un campo magnético que fluye en dirección vertical al sensor, entonces creará un voltaje saliente proporcional al producto de la fuerza del campo magnético y la corriente. Por tanto, conociendo el campo magnético se puede medir el valor de corriente en el conductor o bobina.

Las aplicaciones del efecto Hall son muchas, desde detectores de metales, mediciones de corriente, mediciones de campos magnéticos, como emisor de señales sin contacto, medición de espesores de metal, etc.

Características del ACS712

acs712 Módulo

 

El módulo ACS712 es muy simple, basándose en el efecto Hall, dispone de un pinout muy sencillo. Por un lado ves tres pines y por el otro una ficha de conexión con para dos líneas desde las que se quiere medir la intensidad de corriente del circuito. Los tres pines es donde se conecta la alimentación. Tal como se muestra la imagen superior, desde la izquierda a derecha, tienes Vcc, la salida en medio (output) donde se mide, y la GND más a la derecha.

Dependiendo del modelo podrá medir una u otra intensidad de corriente en amperios, con tres versiones de ACS712 básicas:

  • ACS712ELCTR-05B-T: que llega hasta los -5 y 5A de intensidad máxima tolerada. Con una sensibilidad de 185mV/A.
  • ACS712ELCTR-20A-T: en este caso va desde los -20 a 20A, con sensibilidad de 100mV/A.
  • ACS712ELCTR-30A-T: se aumenta a un rango de -30 a 30A, con una sensibilidad de 66mV/A.

Una vez sabido eso, debes tener en cuenta que a la salida te entrega una tensión o voltaje de 2.5v si la intensidad aplicada es 0A. A partir de ahí, según sea negativa o positiva, pues irá subiendo o bajando de ese voltaje. Se puede trazar una línea recta en una gráfica poniendo en eje de ordenadas y abscisas el voltaje y la corriente, siendo la inclinación de la pendiente la sensibilidad de cada uno de estos módulos.

Por tanto, si sabemos que son 2.5 voltios, puedes aplicar la fórmula V =SI + 2.5. Donde S es la pendiente que equivale a la sensibilidad. Despejando esto para tenerlo en función de la intensidad, se puede decir que I = V-2.5/Sensibilidad. Es decir, el voltaje menos 2.5 y dividido entre la sensibilidad. Esto lo tienes que tener en cuenta para luego calibrar el microcontrolador de Arduino cuando lo programes.

Pinout, datasheet y dónde comprar

Para su conexión con Arduino, es super sencilla debido al pinout, tan solo conecta el pin GND de tu placa Arduino UNO con el GND del módulo ACS712, el pin 5v de Arduino con el Vcc del módulo, y el central (output) con una de las entradas de Arduino, por ejemplo, la A0. Y con eso ya estaría el circuito completo, a falta de conectar el circuito que aporte la intensidad que quieres medir en la ficha verde.

Recuerda que puedes conseguirlo de diferentes marcas, y te aconsejo ver su datasheet para aprender más sobre las características particulares que pueda tener ese módulo ACS712 concreto, aunque suelen ser bastante similares en todos los fabricantes… Si quieres ver un ejemplo, aquí tienes un datasheet de Allegro.

Decir también que lo puedes comprar en cualquier tienda especializada, o en muchos grandes vendedores online como puede ser Amazon, con precios desde los 2€ a los 11€ dependiendo del modelo, como por ejemplo:

Un ejemplo de aplicación con Arduino

sondas de prueba

El ejemplo más simple y recomendable para comenzar a usar este elemento es conectar el ACS712 a tu placa Arduino y luego generar un simple código para Arduino IDE para hacer mediciones de intensidad de corriente. Instala unas sondas puntas de prueba de un polímetro que no funcione ya o algunas compradas, y tendrás un amperímetro fácil para tocar con las puntas algún circucito y determinar a qué intensidad trabaja. Si no quieres comprar ni tienes sondas, puedes usar dos cables protegidos con un buen aislante y que resistan la intensidad que pretendes medir.

Toma las precauciones adecuadas, si trabajas con intensidades elevadas usa elementos aislantes o puedes sufrir serios daños si sufres una descarga eléctrica. Trabaja siempre con precaución… Mira las características de tu módulo y no superes los valores de intensidad para los que esté preparado o quedará dañado, tampoco superes la intensidad máxima a la que pueden trabajar las sondas o cables que has elegido.

El código para tu sketch de Arduino IDE es así de sencillo:


//Ejemplo de código para medir intensidades para un ACS712 de 5A
float Sensibilidad=0.185; //Sensibilidad en Voltios/Amperio para sensor de 5A a 185mV/A

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

void loop() {
  
  float voltajeSensor= analogRead(A0)*(5.0 / 1023.0); //Para la lectura del sensor   
  float I=(voltajeSensor-2.5)/Sensibilidad; //Fórmula para obtener la corriente o intensidad medida con las puntas conectadas al módulo ACS712
  Serial.print("La intensidad en Amperios es de: ");
  Serial.println(I,3); 
  delay(200);     
}

Consideraciones

Recuerda que si has conectado el output del módulo ACS712 en una entrada diferente, debes cambiar la A0 por el pin adecuado. Y lo mismo si has usado un módulo para 20A o 30A, teniendo que modificar el valor de la declaración de la constante de la sensibilidad a 100 o 66.

También puedes modificar las fórmulas para que los datos arrojados de mediciones estén en submúltiplos de amperios, como mA, si es más adecuado para la utilidad de tu proyecto. También puedes modificar el retraso para que haga las mediciones de forma más consecutiva o cada más tiempo, según necesites controlarlo. Incluso puedes aplicar filtros dentro del código para las medidas, calibrarlo, etc.

Más cosas que debes considerar es que si puedes saber el voltaje y la intensidad, podrías generar fórmulas en el código del sketch para calcular otros parámetros, como la resistencia con la ley de Ohm, también podrías determinar la potencia en vatios (w) sabiendo estos parámetros, etc. Ya sabes que el límite es tu imaginación… bueno, y las limitaciones de la tecnología que usas.

Ya sabes que si quieres aprender más sobre cómo programar Arduino, tienes un manual de iniciación en PDF y gratis para descargar aquí.


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.