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.

 

 


Compartir esta publicación



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