Inicio / Blog / Electrónica / ¿Cómo Funciona el Sensor de Corriente ACS712?

¿Cómo Funciona el Sensor de Corriente ACS712?

Por ingniero · · 11 min lectura

En el mundo de la electrónica y los proyectos energéticos, como los sistemas de energía solar, es fundamental poder medir y monitorear el flujo de corriente eléctrica. Saber cuánta corriente consume un dispositivo, cuánta genera un panel solar o cuánta se almacena en una batería no es solo una cuestión de curiosidad, sino de seguridad y eficiencia. Un flujo de corriente incorrecto puede causar desde un mal funcionamiento hasta daños irreparables en los componentes. Aquí es donde entra en juego el sensor de corriente ACS712, una solución popular, económica y versátil para medir tanto corriente continua (DC) como alterna (AC).

Este pequeño pero potente componente se ha convertido en un estándar en la comunidad de creadores y aficionados a la electrónica por su facilidad de uso, especialmente en proyectos que involucran microcontroladores como Arduino. A lo largo de este artículo, desglosaremos en detalle qué es el ACS712, cómo funciona su magia a través del Efecto Hall, sus aplicaciones más comunes y cómo puedes empezar a utilizarlo en tus propios proyectos.

¿Cómo puedo conectar un panel solar a una batería de litio?
Coloca tu panel solar bajo la luz solar directa y conecta el cable positivo del panel a la entrada positiva del regulador de carga. A continuación, el cable negativo a la entrada negativa. Conecta el regulador de carga a tu batería con el cableado adecuado.

¿Qué es el Sensor de Corriente ACS712?

El ACS712 es un circuito integrado fabricado por Allegro MicroSystems que funciona como un sensor de corriente lineal basado en el Efecto Hall. En términos más sencillos, es un dispositivo que puede medir la cantidad de corriente que pasa a través de él y proporcionar una salida de voltaje analógica proporcional a esa corriente. Una de sus grandes ventajas es que ofrece aislamiento galvánico, lo que significa que el circuito que se está midiendo está eléctricamente separado del circuito de control (como un Arduino), proporcionando una capa de seguridad esencial al trabajar con altas corrientes o voltajes.

El sensor viene comúnmente en un módulo fácil de usar con terminales de tornillo para conectar los cables de alta corriente y pines para conectarlo a un microcontrolador. Existen tres variantes principales según el rango de corriente que pueden medir:

  • ACS712-05B: Capaz de medir hasta ±5 Amperios.
  • ACS712-20A: Capaz de medir hasta ±20 Amperios.
  • ACS712-30A: Capaz de medir hasta ±30 Amperios.

Características Técnicas Destacadas

Para entender mejor su capacidad, aquí están algunas de sus especificaciones más importantes:

  • Bajo Ruido: La ruta de la señal analógica está diseñada para tener un bajo nivel de ruido.
  • Ancho de Banda: Típicamente de 80 kHz, lo que permite medir cambios rápidos en la corriente.
  • Resistencia Interna: Una resistencia del conductor interno muy baja (1.2 mΩ), lo que minimiza la pérdida de potencia y el calentamiento en el sensor.
  • Sensibilidad de Salida: Varía según el modelo. Por ejemplo, el modelo de 5A tiene una sensibilidad de 185 mV/A, el de 20A es de 100 mV/A y el de 30A es de 66 mV/A.
  • Aislamiento de Voltaje: Soporta hasta 2.1 kVRMS entre los pines de corriente y los de señal.
  • Tensión de Operación: Funciona con una alimentación de 5V, ideal para microcontroladores.

Principio de Funcionamiento: La Magia del Efecto Hall

El funcionamiento del ACS712 se basa en un principio físico conocido como el Efecto Hall. A diferencia de otros métodos de medición de corriente que se basan en la ley de Ohm (midiendo la caída de voltaje a través de una resistencia shunt), el ACS712 lo hace de manera indirecta y sin contacto eléctrico directo con el sensor interno.

El proceso se puede simplificar en los siguientes pasos:

  1. Flujo de Corriente: La corriente que se desea medir (ya sea AC o DC) fluye a través de un conductor de cobre integrado en el chip del ACS712.
  2. Generación de Campo Magnético: Según la ley de Ampere, todo conductor por el que circula una corriente eléctrica genera un campo magnético a su alrededor. La intensidad de este campo magnético es directamente proporcional a la cantidad de corriente que fluye.
  3. Detección por el Sensor Hall: Dentro del chip, muy cerca de este conductor de cobre, se encuentra un transductor de Efecto Hall. Este dispositivo es sensible a los campos magnéticos.
  4. Generación de Voltaje Hall: Cuando el sensor Hall es expuesto al campo magnético, genera una diferencia de potencial (un voltaje) en sus terminales. Este voltaje, conocido como voltaje Hall, es directamente proporcional a la intensidad del campo magnético y, por lo tanto, a la corriente original.
  5. Salida Analógica: Este pequeño voltaje Hall es amplificado y acondicionado por el circuito interno del ACS712 para proporcionar una salida de voltaje analógica limpia y estable en el pin “OUT”. Esta salida es la que leemos con nuestro microcontrolador.

Una característica clave de esta salida es que cuando no fluye corriente (0 Amperios), el voltaje de salida es igual a la mitad del voltaje de alimentación (VCC/2). Es decir, si alimentamos el sensor con 5V, la salida será de 2.5V. Si fluye corriente en una dirección, el voltaje aumentará por encima de 2.5V. Si fluye en la dirección opuesta, disminuirá por debajo de 2.5V. Esto es lo que permite al sensor medir corriente en ambas direcciones (por ejemplo, carga y descarga de una batería) y también medir corriente alterna, ya que esta cambia de dirección constantemente.

Aplicaciones Comunes del Sensor ACS712

Gracias a su versatilidad y bajo costo, el ACS712 se utiliza en una amplia gama de aplicaciones, tanto en proyectos de aficionados como en productos comerciales. Su capacidad para medir AC y DC lo hace especialmente útil.

  • Monitoreo de Sistemas de Energía Solar: Es ideal para medir la corriente que generan los paneles fotovoltaicos, la corriente que entra o sale de un banco de baterías, o el consumo de un inversor.
  • Control de Carga de Baterías: Permite diseñar cargadores inteligentes que pueden monitorear la corriente de carga y detener el proceso cuando la batería está llena.
  • Fuentes de Alimentación Conmutadas (SMPS): Se utiliza para la detección y gestión de la carga.
  • Protección Contra Sobrecorriente: Puede integrarse en circuitos para detectar cuándo un dispositivo está consumiendo demasiada corriente y activar un mecanismo de protección (como un relé o un MOSFET) para apagarlo y evitar daños.
  • Control de Motores: Permite medir el consumo de un motor para controlar su velocidad o detectar bloqueos.
  • Domótica y Medición de Consumo: Se puede usar para construir medidores de consumo eléctrico caseros y monitorear cuánta energía utilizan los electrodomésticos.

Alternativas al Sensor ACS712

Aunque el ACS712 es muy popular, tiene ciertas limitaciones, como su sensibilidad al ruido magnético externo y una linealidad que puede no ser suficiente para aplicaciones de alta precisión. Afortunadamente, existen alternativas más modernas que ofrecen mejoras significativas.

Tabla Comparativa de Sensores de Corriente

Sensor Ventajas Clave Ancho de Banda Sensibilidad Típica
ACS712 Muy económico, popular, fácil de encontrar. 80 kHz 66 – 185 mV/A
ACS725 Mayor sensibilidad y ancho de banda. 120 kHz 264 mV/A (versión 10A)
ACS70331 Alta sensibilidad, respuesta muy rápida, bajo ruido. 1 MHz 200 mV/A (versión 5A)

La elección de una alternativa dependerá de las necesidades específicas de tu proyecto. Para mediciones que requieran mayor precisión, menor ruido o una respuesta más rápida, considerar sensores como el ACS725 o el ACS70331 es una excelente opción.

Guía Práctica: Conectar y Usar el ACS712 con Arduino

Integrar el ACS712 en un proyecto con Arduino es un proceso sencillo. A continuación, te mostramos cómo hacerlo.

Materiales Necesarios:

  • Placa Arduino (UNO, Nano, etc.)
  • Módulo sensor de corriente ACS712
  • Cables de conexión (Jumpers)
  • Una carga para medir (por ejemplo, un LED con su resistencia, un pequeño motor DC)
  • Fuente de alimentación para la carga

Paso 1: Conexiones

El módulo ACS712 tiene dos partes para conectar:

  1. Terminales de Potencia (Tornillos): Por aquí debe pasar la corriente que quieres medir. Interrumpe el cable positivo (+) que va a tu carga y conecta un extremo al terminal y el otro extremo al otro terminal del sensor. La dirección es importante para el signo de la corriente.
  2. Pines de Señal:
    • VCC: Conectar al pin 5V del Arduino.
    • GND: Conectar al pin GND del Arduino.
    • OUT: Conectar a un pin de entrada analógica del Arduino (por ejemplo, A0).

Paso 2: Calibración y Código

El paso más importante es la calibración para determinar el “punto cero” o el offset. Como mencionamos, con 0A de corriente, la salida debería ser 2.5V (o un valor analógico de 512 en un ADC de 10 bits como el de Arduino). Sin embargo, en la práctica, este valor puede variar ligeramente. Para obtener mediciones precisas, primero debemos medir este offset.

Código de Ejemplo para Arduino:

const int sensorPin = A0; // Pin analógico donde se conecta la salida del sensor float sensitivity = 0.185; // Sensibilidad para el módulo de 5A (185mV/A = 0.185V/A) // Usar 0.100 para el de 20A y 0.066 para el de 30A float Vref = 2.5; // Voltaje de referencia con 0 Amperios (idealmente VCC/2) void setup() { Serial.begin(9600); Serial.println("Iniciando sensor de corriente ACS712..."); // Calibración automática del offset // Es recomendable hacer esto con la carga desconectada (0A) int num_lecturas = 500; float offset_acumulado = 0.0; for(int i = 0; i < num_lecturas; i++) { offset_acumulado += analogRead(sensorPin); delay(1); } float adc_offset = offset_acumulado / num_lecturas; Vref = (adc_offset / 1023.0) * 5.0; Serial.print("Offset ADC detectado: "); Serial.println(adc_offset); Serial.print("Voltaje de referencia (Vref) calibrado: "); Serial.println(Vref, 3); // Imprimir con 3 decimales } void loop() { // Leer el valor del sensor int sensorValue = analogRead(sensorPin); // Convertir la lectura del ADC (0-1023) a voltaje (0-5V) float voltage = (sensorValue / 1023.0) * 5.0; // Calcular la corriente // Restamos el voltaje de referencia y dividimos por la sensibilidad float current = (voltage - Vref) / sensitivity; // Imprimir los resultados en el Monitor Serie Serial.print("Voltaje: "); Serial.print(voltage, 3); Serial.print(" V, Corriente: "); Serial.print(current, 3); Serial.println(" A"); delay(500); }

Paso 3: Probar el Circuito

Sube el código a tu Arduino y abre el Monitor Serie (a 9600 baudios). Al principio, sin ninguna carga conectada, el código realizará una calibración automática y deberías ver una lectura de corriente muy cercana a 0.000 A. Luego, conecta tu carga (enciende el motor o el LED) y verás cómo la lectura de corriente cambia en tiempo real.

Preguntas Frecuentes (FAQ)

¿Puedo medir corriente alterna (AC) con el ACS712 y Arduino?
Sí. La salida del sensor será una onda sinusoidal centrada en 2.5V. Para medir el valor RMS de la corriente AC, necesitas tomar múltiples muestras a alta velocidad durante un ciclo completo de la onda, encontrar el valor pico y luego calcular el valor RMS (I_rms = I_pico / √2). Esto requiere un código más complejo que el ejemplo de DC.
¿Qué versión del ACS712 debo elegir (5A, 20A, 30A)?
Debes elegir la versión cuyo rango máximo sea ligeramente superior a la corriente máxima que esperas medir. Usar un sensor con un rango mucho más alto del necesario reducirá la resolución y la precisión de tus mediciones. Por ejemplo, para medir corrientes inferiores a 5A, el modelo de 5A es la mejor opción porque tiene la mayor sensibilidad.
¿Es preciso el sensor ACS712?
Es suficientemente preciso para la mayoría de los proyectos de hobby y aplicaciones de monitoreo general. Sin embargo, su precisión puede verse afectada por el ruido de la fuente de alimentación, la temperatura y campos magnéticos externos. Para aplicaciones que requieran alta precisión, se recomienda usar sensores más avanzados o implementar técnicas de filtrado de software y hardware.
¿Cómo puedo mejorar la precisión de la lectura?
Una técnica simple y efectiva es tomar múltiples lecturas en un corto período de tiempo y promediarlas. Esto ayuda a reducir el ruido eléctrico y a obtener un valor más estable, como se implementa en la función de calibración del código de ejemplo.

Conclusión

El sensor de corriente ACS712 es una herramienta extraordinariamente útil y accesible para cualquier persona interesada en la electrónica y la gestión de la energía. Su capacidad para medir corriente continua y alterna, su aislamiento incorporado y su facilidad de integración con plataformas como Arduino lo convierten en una opción ideal para una infinidad de proyectos, desde el monitoreo de un sistema solar casero hasta la creación de dispositivos de protección inteligentes. Aunque existen alternativas más precisas, el ACS712 ofrece un equilibrio perfecto entre costo, funcionalidad y facilidad de uso, consolidándose como un componente fundamental en el arsenal de cualquier creador.