Se ha agregado el artículo

Ir directamente al contenido

Siguenos!

Envíos GRATIS nacionales desde $599.00 mxn

¡No te pierdas! el descuento todos los Lunes

Aprovecha Nuestras Ofertas Hot Sale | Del 15 al 23 de mayo

Sensor de corriente ACS712 30A

Conexión básica del ACS712 con Arduino para medir la corriente en un conductor

El siguiente circuito convierte la señal del sensor en una señal analógica compatible con una tarjeta de desarrollo y posteriormente el código convierte la información en una lectura de corriente que se muestra por el puerto serie.

Componentes necesarios

 

 

Paso 1: Realización las conexiones

El ACS712 es un sensor basado en el efecto Hall, donde la corriente aplicada (sea de CA o CD) que fluye a través de esta pista de conducción de cobre genera un campo magnético que es detectado por el IC integrado Hall y convertida en un voltaje de CD que va de 0 V – 5 V que se puede obtener en su terminal “OUT” .

Diagrama de conexiones 
Paso 2: Cargando el Código

El sensor nos da idealmente un valor de 2.5 V para una corriente de 0 A y de ahí incrementa proporcionalmente dependiendo de la sensibilidad, manteniendo una relación lineal entre la tensión de salida del sensor y la corriente.

a) Código para Corriente Directa “CD”

El siguiente código de ejemplo convierte los datos del sensor que ingresan por la entrada analógica A0 en el valor de corriente correspondiente a la  medición.

/* Codigo para medir CD */
float Sensibilidad=0.066;  /* en (V/A) Según las especificaciones de este modelo */

void setup() {
 Serial.begin(9600);
/* Establecemos la comunicación serial a 9600 baudios */
}

void loop() {
/* obtenemos la corriente promedio de 200 muestras  */
  float I=obten_corriente(200);  
  Serial.print("Corriente: ");
  Serial.println(I,3); 
  delay(100); 
}

float obten_corriente(int n_muestras)
{
  float voltajeSensor;
  float V0 = 2.460; //voltaje en OUT cuando la corriente a medir es 0A (varia de dispositivo a dispositivo)
  float corriente=0;
  for(int i=0;i<n_muestras;i++)
  {
   voltajeSensor = analogRead(A0) * (5.0 / 1023.0); //lectura del sensor    
   corriente=corriente+(voltajeSensor-V0)/Sensibilidad; //Ecuación para obtener la corriente
  }
corriente=corriente/n_muestras;
return(corriente);
}

Es importante recordar que en la mayoría de las ocasiones es necesario realizar una calibración del sensor.

b) Código para Corriente Alterna “CA”

/* Código para medir CA */
float Sensibilidad=0.066; /* Según las especificaciones de este modelo */
float offset=0.100;  //Buscamos que sea un valor aproximado a la amplitud del ruido
float voltajeRed = 127.0; //Comun en Mexico pero es necesario un ajuste
 
void setup() {

 Serial.begin(9600); 
 /* Establecemos la comunicación serial a 9600 baudios */ 
} 

void loop() {  
  float Ip=get_corriente(); /* obtenemos la corriente pico */    
  float Irms=Ip*0.707; //Intensidad RMS = Ipico/(2^1/2)
  float P=Irms*VoltajeRed; // P=IV watts
  //Serial.print("Ip: ");
  //Serial.print(Ip,3);
  //Serial.print("A, Potencia: ");
  //Serial.print(P,3); 
  //Serial.print("W");
  Serial.print("Irms: ");
  Serial.print(Irms,3);
  Serial.println("A"); 
  delay(500); 
}

float get_corriente()
{
  float voltajeSensor;
  float corriente=0;
  long tiempo = millis();
  float Imax=0;
  float Imin=0;
  float V0 = 2.460; //voltaje en OUT cuando la corriente a medir es 0A (varia de dispositivo a dispositivo)
  while(millis()-tiempo<500) //realizamos mediciones durante 0.5 segundos
{
  voltajeSensor = analogRead(A0) * (5.0 / 1023.0); //lectura del sensor
  /* para disminuir un poco el ruido aplicamos un filtro pasa bajos, que es similar a realizar un promedio de 10 muestras*/
  corriente=0.9*corriente+0.1*((voltajeSensor-V0)/Sensibilidad); //Ecuación para obtener la corriente
  if(corriente>Imax)Imax=corriente;
  if(corriente<Imin)Imin=corriente;
  }
return(((Imax-Imin)/2)-offset);
}

¿Cómo se calibra el sensor?

En ocasiones se pueden tener errores de medición en las lecturas para estos casos debemos de re-calibrar y hallar los valores reales puesto que los valores que nos da el fabricante no son exactos.

Para ello recordamos la relación lineal entre la tensión de salida del sensor y la corriente

V = mI + 2.5

Donde m es la pendiente de la recta y equivale a la Sensibilidad

La ecuación que usamos para hallar la corriente es:

ecuacion para la corriente ACS712

En esta ecuación solo tenemos dos constantes: los 2.5 que es el voltaje del sensor cuando la corriente es 0V y la sensibilidad, que en este caso es de 66 mV/A. Al ser una recta, basta con obtener dos puntos y con estos podemos calcular constantes.

Para esto necesitamos un multitester o amperímetro, el cual debe ser de buena precisión, ya que este será la herramienta para calibrar. El amperímetro, el ACS712 y la carga deben de conectarse en serie.

Te recomendamos medir V cuando I=0, y ese será tu valor de V0 en código, posteriormente mide otro punto conocido y utilizando la ecuación de la pendiente para recalcular la sensibilidad especifica de tu sensor, obteniendo los valores (V1, I1) y (V2, I2).

sensibilidad= m = (V2 – V1)/(I2 – I1)

Finalmente, realiza una lectura sin carga y si tu valor aun esta alejado de 0, ajusta el valor de la variable offset.

Satisfacción Garantizada

Recibe el producto que esperabas

Envío Gratis

Envíos a todo México

Pago Seguro

Tu pago esta seguro con nosotros

Soporte en Línea 24/7

Asesoría sin costo extra