Skip to Content

Sensor de corriente ACS712 y Arduino - Una guía completa

Sensor de corriente ACS712 y Arduino - Una guía completa

Un sensor de corriente es una parte fundamental de cualquier aplicación de detección de carga.

Se utilizan en aplicaciones de medición, detención y protección de sobrecargas, rectificación y otras aplicaciones. 

Este artículo nos enseñará a utilizar el sensor de corriente ACS712 con Arduino.

Cubriremos los fundamentos de la medición de corriente y comprenderemos más detalles sobre el sensor de corriente IC ACS712. 

En las siguientes secciones, presentaré los diagramas de conexión, el código Arduino para el sensor de corriente, y más.

Al final de este artículo, también puede tener las respuestas a las preguntas más frecuentes. 

Comencemos.

Componentes necesarios para construir el proyecto del sensor Arduino ACS712

Componentes de hardware

Software

Makerguides.com participa en el Programa de Asociados de Amazon Services LLC, un programa de publicidad de afiliados diseñado para proporcionar un medio para que los sitios ganen honorarios de publicidad mediante la publicidad y los enlaces a productos en Amazon.com.


Fundamentos del sensor de corriente ACS712

En esta sección, entenderemos más sobre el módulo ACS712. Entenderemos los parámetros de la hoja de datos, las descripciones de los pines y mucho más. 

Al final de esta sección, estará seguro de trabajar con el sensor para aplicaciones de detección de corriente.

Cuando la corriente fluye a través de la resistencia, habrá una caída de tensión. Por lo tanto, si puedes medir la caída de tensión, puedes calcular la corriente que circula por ella. 

El CI ACS712 proporciona una tensión de salida analógica correspondiente a la corriente que circula por sus terminales de detección. 

Hay dos formas de medir la corriente. Si se utiliza una resistencia de derivación para controlar la corriente, también se añade una inevitable caída de tensión en el canal.

En este caso, no es necesario un sensor de corriente específico.

La caída de la tensión es la trampa. 

En el caso del ACS712, se mide la corriente indirectamente. En lugar de la pérdida óhmica, se considera el campo magnético alrededor del cable conductor de corriente.

Todo cable produce un campo magnético a su alrededor cuando pasa una corriente a través de él.

Midiendo la intensidad del campo magnético, se puede calcular la corriente que circula por él. Se trata de una forma no intrusiva de detectar la corriente. 

Por ejemplo, digamos que estamos midiendo 400 mV en la salida analógica del sensor.

Además, se supone que el sensor está optimizado para la medición de corriente de 5 A.

Siga los pasos siguientes para calcular la corriente:

  1. Observe la sensibilidad de la hoja de datos: 185 mV/A
  2. Mida la tensión de salida en la patilla VIOUT del sensor: 400 mV
  3. Divida la tensión VIOUT por la sensibilidad para obtener la corriente de carga

400 / 185 = 2.16 A

Diagrama de conexiones del circuito integrado ACS712

Este es el diagrama de pines del circuito integrado ACS712.

diagrama de pines del CI ACS712

En la siguiente tabla, puede encontrar los detalles de los pines del CI ACS712. 

Números de pinNombre de la clavijaDescripción de la clavija
1 y 2IP+Terminales de detección de corriente. Estos dos pines están en cortocircuito dentro del IC
3 y 4IP-Terminales de detección de corriente. Estos dos pines están en cortocircuito dentro del IC
5GNDTerminal de tierra
6FILTROPuedes conectar el condensador externo a este pin. El valor de la capacitancia decide el ancho de banda
7VIOUTSeñal de salida (valor analógico) 
8VCCClavija de alimentación

Especificaciones eléctricas del CI ACS712

El CI ACS712 puede alimentarse con 5 V. Veamos algunos parámetros críticos del CI, que nos son muy útiles a la hora de elegir el sensor para nuestras aplicaciones.

CaracterísticaGamaObservaciones
Tensión de alimentación4,5 V a 5,5 VSe recomienda un valor típico de 5 V
Corriente de alimentación10 mACorriente requerida por el CI para funcionar.
Tiempo de encendido35 nosotrosTenga en cuenta este tiempo en su software para evitar mediciones erróneas
SensibilidadVéase el cuadro siguienteExpresado en mV por A. 
Rango de precisión optimizadoVéase el cuadro siguienteLa corriente mínima y máxima que puede medir el CI

El CI ACS712 se presenta en tres variantes:

  1. x05B → Rango de corriente de 5 A
  2. x20A → Rango de corriente de 20 A
  3. x30A → Rango de corriente de 30 A

La siguiente tabla resume la sensibilidad y el rango de ocurrencia de las tres variantes:

Parámetrox05Bx20Ax30A
Rango de precisión optimizado-5 A a +5 ADe -20 A a +20 ADe -30 A a +30 A
Sensibilidad (mV / A)18510066

Puedes utilizar la tabla anterior para calcular la corriente en función de la tensión que lees en el pin de salida analógica del CI. 

Veamos el módulo sensor de corriente estándar ACS712.

Módulo sensor de corriente ACS712

Los principales bloques presentes en el sensor actual son los siguientes.

1) Bloque de conectores de dos terminales - Conecte aquí los terminales de corriente de carga. 

2) El CI del sensor de corriente ACS712

3) Conector de 3 pines - El conector de tres pines se utiliza para suministrar energía al CI y controlar la salida.

VCCAlimentación de 5 V
OUTSalida analógica del CI. Conéctalo al pin ADC del Arduino
GNDConexión a tierra 

4. Indicador LED - Indicador LED de alimentación

Aplicaciones del sensor de corriente ACS712

El módulo de sensor de corriente ACS712 se puede utilizar en varias aplicaciones. Veamos algunas en la sección siguiente.

También puede compartir la aplicación para la que utiliza el sensor de corriente ACS712.

  1. Protección contra sobrecarga - Puede utilizar el sensor de corriente ACS712 para supervisar la corriente de carga. Si se produce una condición de sobrecarga, puede utilizar inmediatamente los datos del sensor para cortar la alimentación de la carga y proteger los circuitos.
  1. Regulación de la corriente de carga - Puede regular la corriente de carga mediante la monitorización continua de los datos del sensor ACS712. La regulación le permite prolongar la vida útil de los componentes sin comprometer el rendimiento. 
  1. Detección de p icos de corriente - Puede utilizar el ACS712 para detectar picos de corriente. Los componentes de protección del circuito necesitan algún tiempo para reaccionar a la sobrecarga de corriente. Por ejemplo, una determinada carga puede consumir más corriente durante breves periodos de tiempo. Los dispositivos de protección de circuitos pueden no responder a estas sobrecargas momentáneas. El ACS712 puede ayudarle a controlar esos picos.
  2. Medición de energía - Puede utilizar el ACS712 para supervisar y medir el consumo de energía. Puede supervisar el consumo de energía de cada aparato.

-> Lee nuestro artículo sobre ¿Es fácil aprender Arduino?

Instrucciones paso a paso para conectar el sensor de corriente ACS712 con Arduino UNO

En esta sección, construiremos un proyecto utilizando el Arduino UNO y el sensor de corriente ACS712. Monitorizarás la corriente utilizando la entrada analógica del Arduino UNO. 

Las conexiones son fáciles de realizar y llevan mucho menos tiempo.

Empecemos con las conexiones de hardware.

¿Cómo conectar el sensor de corriente ACS712 al Arduino UNO?

A continuación se muestra la guía de conexión paso a paso para completar el Arduino y el módulo IC del sensor de corriente ACS712. 

En este proyecto, conectarás la salida del sensor al Arduino UNO. 

Paso 1: Empezar con las conexiones GND

Comienza con las conexiones GND

Puedes elegir cualquiera de los pines GND del Arduino para completar las conexiones GND. Es una buena práctica conectar primero los pines GND. 

Paso 2: Conectar el pin VIOUT

Conecta el pin VIOUT

El pin de salida analógica del sensor de corriente está a 2,5 V. Conecta el pin VIOUT al pin A0 del Arduino UNO. Puedes elegir cualquiera de los pines analógicos. 

Paso 3: Completar la conexión del sensor de corriente

Completar la conexión del sensor actual

El consumo de corriente del sensor de corriente es inferior a 15 mA. El pin de 5 V del Arduino UNO puede suministrar fácilmente la corriente necesaria.

Enhorabuena por haber completado con éxito las conexiones necesarias.

-> Lea nuestra guía sobre lo que puede construir con Adruino.

Ejemplo de código Arduino para el proyecto del sensor de corriente ACS712

En esta sección, encontrarás el sketch de Arduino necesario para construir un proyecto básico de detección de corriente. A continuación se presentan dos códigos. El primer código es para la variante de 5 A. El segundo código es para la variante de 20 A. 

Cuando no hay carga conectada, la corriente será cero. La tensión en la patilla VIOUT es de 2,5 V. La tensión en la patilla VIOUT aumenta con el incremento de la corriente. 

Para el modelo de 20 A, habrá un aumento de 100 mV en la línea VIOUT por cada 1 A de la corriente de carga.  

Por ejemplo, si la corriente de carga es de 5 A, la tensión en la VIOUT será 

2,5 V + 5 * 0,1 = 3 V

El código completo de Arduino para la versión 5 A

void setup() {
  Serial.begin(9600); //Start Serial Monitor to display current read value on Serial monitor
}
 
void loop() {
  unsigned int x = 0;
  float AcsValue = 0.0, Samples = 0.0, AvgAcs = 0.0, AcsValueF = 0.0;
 
  for (int x = 0; x < 150; x++) { //Get 150 samples
    AcsValue = analogRead(A0);     //Read current sensor values
    Samples = Samples + AcsValue;  //Add samples together
    delay (3); // let ADC settle before following sample 3ms
  }
  AvgAcs = Samples / 150.0; //Taking Average of Samples
  AcsValueF = (2.5 - (AvgAcs * (5.0 / 1024.0)) ) / 0.185;
 
  Serial.print(AcsValueF);//Print the read current on Serial monitor
  delay(50);
}

El código completo de Arduino para la versión de 20 A

void setup() {
  Serial.begin(9600); //Start Serial Monitor to display current read value on Serial monitor
}
 
void loop() {
unsigned int x=0;
float AcsValue=0.0,Samples=0.0,AvgAcs=0.0,AcsValueF=0.0;
 
for (int x = 0; x < 150; x++){ //Get 150 samples
  AcsValue = analogRead(A0);     //Read current sensor values  
  Samples = Samples + AcsValue;  //Add samples together
  delay (3); // let ADC settle before next sample 3ms
}
AvgAcs=Samples/150.0;//Taking Average of Samples
 
AcsValueF = (2.5 - (AvgAcs * (5.0 / 1024.0)) )/0.100;
 
Serial.print(AcsValueF);//Print the read current on Serial monitor
delay(50);
}

El Arduino UNO tiene seis entradas analógicas. En la siguiente línea de código, está leyendo el valor analógico directamente desde el pin VIOUT del sensor ACS.

    AcsValue = analogRead(A0); //Lectura de los valores actuales del sensor

El siguiente paso es recoger más muestras y promediarlas para eliminar el ruido en las lecturas. En el siguiente fragmento de código, la lectura se realiza 150 veces.

for (int x = 0; x < 150; x++){ //Get 150 samples
  AcsValue = analogRead(A0);     //Read current sensor values  
  Samples = Samples + AcsValue;  //Add samples together
  delay (3); // let ADC settle before next sample 3ms
}

A continuación, se calcula el valor medio dividiendo la suma acumulada entre 150.

AvgAcs=Muestras/150.0;//Tomar la media de las muestras

Preguntas frecuentes sobre el sensor de corriente ACS712 y los proyectos Arduino

He reunido una lista de las preguntas más frecuentes sobre los proyectos realizados con Arduino y el sensor de corriente IC ACS712.

Si tiene alguna otra pregunta, no dude en publicarla en la sección de comentarios. Estaré encantado de responderlas.

1) ¿Cómo mide el ACS712 la corriente?

El ACS712 mide pasivamente la corriente. El CI utiliza el efecto Hall para controlar la corriente que pasa por los terminales.

El dispositivo consiste en un circuito de sensor Hall lineal, preciso y de bajo desplazamiento, con una vía de conducción de cobre cerca de la superficie del dado.

¿Cómo mide el ACS712 la corriente?

El sensor Hall del CI detecta el campo magnético generado por la corriente de carga que circula por los terminales.

El sensor proporciona entonces la tensión proporcional en el pin VIOUT. 

Puedes utilizar un pin de entrada ADC para medir la tensión y calcular la corriente. 

2) ¿Cómo puedo conectar mi ACS712 al Arduino UNO?

Sólo necesitas tres pines en el Arduino Uno para completar las conexiones entre el Arduino UNO y el sensor de corriente ACS712. 

  1. Conexión de 5 V para alimentar el sensor
  2. Clavija GND para completar la conexión a tierra
  3. Pin de entrada analógica para leer la tensión en el pin VIOUT del sensor

3) ¿Qué es el sensor de corriente ACS712?

El sensor de corriente ACS712 es de perfil bajo, ocupa poco espacio y tiene una sensibilidad que va de 66 a 185 mV por amperio.

El sensor le proporciona una tensión de salida proporcional tanto para la corriente alterna como para la corriente continua. 

La salida del sensor de corriente tiene una pendiente positiva cuando una corriente creciente fluye a través de la ruta de conducción del cobre primario (de los pines 1 y 2, a los pines 3 y 4), que es la ruta utilizada para la detección de corriente.

4) ¿Qué precisión tiene el sensor ACS712?

El error de salida es de ± 1,5% según la hoja de datos. Es un valor típico. El error puede ser mayor.

En la imagen siguiente, se puede ver que el error se dispara con la variación de la temperatura.

¿Cuál es la precisión del sensor ACS712?

La precisión se divide en cuatro áreas:

La precisión se divide en cuatro áreas
  • 0 A a 25°C. Precisión de detección del flujo de corriente cero a 25°C, sin los efectos de la temperatura. 
  • 0 A sobre Δ temperatura. Precisión de la detección del flujo de corriente cero, incluidos los efectos de la temperatura. 
  • Corriente a escala completa a 25°C. Precisión de la detección de la corriente a escala completa a 25°C, sin el impacto de la temperatura. 
  • Corriente a escala completa sobre Δ temperatura. Precisión de la detección del flujo de corriente a escala completa, incluidos los efectos de la temperatura.

->Consulta nuestra guía de los 12 mejores cursos online de Arduino

Conclusión

En este artículo, hemos repasado el principio básico de funcionamiento del sensor de corriente ACS712.

Hemos cubierto la guía de conexión, el ejemplo de código de Arduino y algunos consejos para mejorar la precisión de las lecturas.

Si tienes alguna pregunta sobre el proyecto, estaré encantado de responder a tus dudas en la sección de comentarios.

Estaré encantado de conocer tus proyectos con el sensor ACS712. Puedes dejar un enlace a los proyectos en la sección de comentarios.