Sensor de Corriente ACS712 de 5, 20 y 30 A

Publicado por Victor Arrieta en

El módulo sensor de corriente ACS712 es un módulo que consta de un sensor de efecto hall con el cual es capaz de medir el campo magnético que fluye alrededor del conductor y así, de hacernos saber la cantidad de corriente que fluye por el conductor. La medida de la cantidad de corriente que fluye por los bornes del conductor se da a través de una señal análoga en la salida del módulo, la cual es proporcional a la corriente que fluye.  Debido a su forma de funcionamiento, el sistema es tan capaz de medir corriente DC como AC,ya que internamente se hace la conversión a valor rms, sin embargo debe mencionarse que esta cualidad también lo hace propenso al ruido electromagnético.

 
El módulo existe en varias presentaciones de acuerdo a la corriente máxima que es capaz de soportar y medir a través de sus bornes, siendo la diferencia en el precio muy pequeña entre cada uno y el precio  mismo proporcional a tal corriente máxima,  así el módulo puede ser de 5, 20 o 30 A, siendo el manejo exactamente igual, excepto por un factor multiplicador. Como ya se dijo, el módulo consta de 2 bornes para la conexión del cable por el fluye la corriente a medir, así como también con 3 pines, dos para alimentación (VCC y  GND) y uno para la señal (OUT). Debe mencionarse también que el sentido de  la corriente es importante, pues el módulo es capaz de medir corriente en ambos sentidos, danndo en uno una medida positiva y en el otro, negativa.
 
A continuación presentamos un programa en el cual hacemos uso de un sensor de corriente de 5A para detectar el momento en que se enciende una carga. 


Esquema de conexión con Arduino UNO

Código Arduino

int LedPin = 13;
int Sensor = A0;

void setup() {
  pinMode(LedPin, OUTPUT);
}

float medir(void) // esta funcion toma el promedio de 100 mediciones
{
  float corriente = 0;

  for (int i = 0; i < 100 ; i++) {
    float voltage = (float) analogRead(A0) * 5.0 / 1023.0;
    corriente += (float) 1000*(voltage - 2.5) / 0.185;
    //para el sensor de 5A es 0.185, para el de 20A es 0.1
    //y para  el de 30A es 0.066
    delay(1);
  }
  return (corriente / 100);
}

void loop() {

float medicion = medir();

  if (medicion > 15) { //en 15 mA para evitar errores por el ruido
    digitalWrite(LedPin, HIGH);
    delay(3000);
  }
  else
  {
    digitalWrite(LedPin, LOW);
  }

}


Una vez  subido el código, el led interno de la  placa Arduino, el del pin 13, se encenderá cada vez que se mida una corriente mayor a 15mA fluyendo hacia la carga.

En este código, la fórmula para hallar la corriente está relacionada con la lectura del sensor de corriente que mide corriente alterna o continua. El sensor convierte la corriente medida en un voltaje analógico, el cual es leído por el Arduino a través del pin A0.

Aquí te explico paso a paso la fórmula que se usa en el código para calcular la corriente:

Fórmula:

 corriente += (float) 1000*(voltage - 2.5) / 0.185;

Esta fórmula se utiliza para convertir la lectura de voltaje (obtenida del sensor) en una medición de corriente. Desglosémosla:

 

Lectura del voltaje analógico:

float voltage = (float) analogRead(A0) * 5.0 / 1023.0;

 

  • analogRead(A0): Lee el valor analógico del pin A0, que estará entre 0 y 1023 (representando 0V a 5V).
  • Multiplicando el valor leído por 5.0/1023.0 se convierte este valor en un voltaje real, entre 0 y 5V.
  •  

     

    Offset de 2.5V: El sensor ACS712 tiene un punto de referencia de 2.5V cuando no hay corriente fluyendo. Esto significa que, si no hay corriente, el sensor dará una salida de aproximadamente 2.5V.

    • Entonces, para calcular la corriente real, se resta 2.5V de la lectura obtenida

    (voltage - 2.5)

    Factor de sensibilidad: La sensibilidad del sensor ACS712 depende de su rango de corriente:

    • Para un sensor de 5A, la sensibilidad es de 185 mV/A o 0.185 V/A.
    • Para un sensor de 20A, es 0.1 V/A.
    • Para un sensor de 30A, es 0.066 V/A.

    Este valor se usa para convertir el voltaje medido en corriente:

    / 0.185

    Si el sensor es de 5A, el valor 0.185 convierte el voltaje en corriente. Para otros sensores, cambiarías este valor según su sensibilidad.

    Conversión a mA:

    1000*(voltage - 2.5) / 0.185

    1. Multiplicando por 1000, se convierte la corriente medida en mA.

    Proceso de medición:

    • La función medir() toma 100 muestras para suavizar el valor medido.
    • En cada ciclo, se mide el voltaje analógico, se convierte a corriente y se acumula.
    • Al final, se devuelve el promedio de las 100 mediciones.

    Compartir esta publicación



    ← Publicación más antigua Publicación más reciente →