Usando un ACS712 para mostrar la corriente en una pantalla LCD1602 o LCD2004 mediante I2C

Usando un ACS712 para mostrar la corriente en una pantalla LCD1602 o LCD2004 mediante I2C

En este tutorial aprenderemos cómo usar el sensor de corriente Allegro ACS712 para medir corriente tanto AC como DC y mostrar las lecturas en una LCD1602 o LCD2004 usando I2C. Este proyecto es especialmente útil para monitorizar la corriente en diversas aplicaciones, proporcionando una visualización de datos de corriente en tiempo real. Al final, tendrás una configuración funcional que puede mostrar con precisión las lecturas de corriente en una LCD.

LCD1602-I2C display module with 4 wires

Para aclarar el cableado y el código, asegúrate de consultar el video en las marcas de tiempo especificadas (en el video a las 00:00).

Hardware explicado

El componente principal de este proyecto es el sensor de corriente ACS712, que puede medir niveles de corriente de hasta 30 A. Funciona utilizando el efecto Hall para convertir la corriente que lo atraviesa en una salida de voltaje proporcional. Esta salida de voltaje puede ser leída por el Arduino para calcular el nivel de corriente. El sensor tiene tres pines para la conexión: VCC para la alimentación, GND para la masa y OUT para la señal de voltaje.

La pantalla LCD1602 o LCD2004 se conecta mediante I2C, lo que permite un cableado y un control más sencillos usando solo dos pines de datos (SDA y SCL), además de alimentación y tierra. Esto facilita mostrar lecturas actuales sin enredar el cableado con múltiples conexiones.

Detalles de la ficha técnica

FabricanteAllegro Microsystems
Número de piezaACS712ELCTR-30A-T
Voltaje de lógica/E/S4.5-5.5 V
Tensión de alimentación5 V
Corriente de salida (por canal)30 A
Orientación sobre la frecuencia PWMN/D
Umbrales de la lógica de entrada0.5 V (salida en reposo)
Caída de tensión / RDS(on)/ saturación1.2 mΩ
Límites térmicos150 °C máx.
PaqueteTO-220

  • Asegúrese de una disipación de calor adecuada para corrientes superiores a 20 A.
  • Utilice un calibre de cable apropiado (12 AWG para 30 A) para evitar el sobrecalentamiento.
  • Conecte VCC a 5V y GND a tierra para su correcto funcionamiento.
  • Asegúrese de que el pin OUT esté conectado a un pin de entrada analógica del Arduino (p. ej., A0).
  • Tenga en cuenta las diferencias de sensibilidad entre los distintos modelos ACS712.
  • Utilice condensadores para el desacoplamiento según lo especificado en la hoja de datos.

Instrucciones de cableado

Arduino wiring for Allegro ACS712 current sensor with LCD

Para cablear el sensor de corriente ACS712 con el Arduino y la pantalla LCD, comience conectando el pin VCC del ACS712 al pin de 5V del Arduino. A continuación, conecte el pin GND del ACS712 a un pin de tierra del Arduino. El pin OUT del ACS712 debe conectarse al pin analógicoA0en el Arduino, donde se leerá la señal de voltaje.

Para el LCD1602 o LCD2004, conecte el pin VCC al pin de 5V y el pin GND a tierra. El pin SDA del LCD debe conectarse al pin SDA del Arduino (normalmenteA4en un UNO), y el pin SCL debe conectarse al pin SCL del Arduino (normalmenteA5en un UNO). Asegúrese de que todas las conexiones sean seguras para garantizar el correcto funcionamiento.

Ejemplos de código y guía paso a paso

En el código, definimos el pin de entrada analógica para leer la salida del sensor con#define VIN A0. Esto nos permite hacer referencia fácilmente al pin donde el sensor está conectado a lo largo de todo el programa.

#define VIN A0 // define the Arduino pin A0 as voltage input (V in)
const float VCC   = 5.0; // supply voltage is from 4.5 to 5.5V. Normally 5V.

A continuación configuramos la sensibilidad según el modelo del ACS712 que estamos usando. Los valores de sensibilidad se almacenan en un arreglo, lo que permite un acceso fácil según la selección del modelo.

const int model = 2; // enter the model number (0, 1, or 2 for 5A, 20A, or 30A)
float sensitivity[] = {0.185, 0.100, 0.066}; // sensitivity values for each model

En elsetup()En la función, inicializamos el monitor serial y la pantalla LCD. Esto nos permite ver las lecturas actuales tanto en la LCD como a través del monitor serial para la depuración.

void setup() {
    Serial.begin(9600); // initialize serial monitor
    lcd.begin(); // initialize the LCD
    lcd.backlight(); // turn on the backlight
    lcd.print("Robojax ACS712"); // display initial text
    delay(2000); // wait for 2 seconds
}

Elloop()La función lee el voltaje del sensor, calcula la corriente en función de la sensibilidad y muestra los resultados. Si la corriente supera un límite de corte especificado, muestra el valor; de lo contrario, indica que no se detecta corriente.

Demostración / Qué esperar

Al encender el circuito, la pantalla LCD debería mostrar "Robojax ACS712" seguida de "Corriente: " junto con el valor de corriente medido en amperios. Si la corriente está por debajo del límite de corte, la pantalla mostrará "Sin corriente." Tenga cuidado al probar con corrientes altas, ya que el sensor puede calentarse (en el video a las 12:00).

Para probar la configuración, aumente gradualmente la corriente que pasa por el ACS712 y observe los cambios en la pantalla LCD y en el monitor serie. Asegúrese de que la corriente no supere los límites nominales especificados del sensor para evitar daños.

Imágenes

Sensor de corriente DC/AC Allegro ACS712 con LCD1602/LCD2004 I2C con código de Arduino
Sensor de corriente DC/AC Allegro ACS712 con LCD1602/LCD2004 I2C con código de Arduino
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
ACS712_in_series_with_load
ACS712_in_series_with_load
allegro_ACS712_module-1
allegro_ACS712_module-1
allegro_ACS712_module-2
allegro_ACS712_module-2
allegro_ACS712_module-4
allegro_ACS712_module-4
allegro_ACS712_module-0
allegro_ACS712_module-0
Arduino wiring for Allegro ACS712 current sensor with LCD
Arduino wiring for Allegro ACS712 current sensor with LCD
131-Allegro ACS712 DC/AC current sensor with LCD1602/LCD2004 I2C and Arduino code
Idioma: C++
¡Copiado!

Cosas que podrías necesitar

Archivos📁

Bibliotecas de Arduino (zip)

Hoja de datos (pdf)

Archivo de Fritzing