0. Componentes y programación necesaria para un Sensor de Corriente ACS712 AC/DC - Intensidad Hall Amperímetro

Componentes requeridos:

{Product:2000}{Product:728} 
o
{Product:251} 

Y nuestro circuito de potencia a medir, que explicaremos más adelante.

I. Cómo utilizar un sensor de Corriente ACS712 AC/DC - Intensidad Hall Amperímetro

Para medir la intensidad que pasa por un circuito y tener el control en tu proyecto o programa, este módulo amperímetro Allegro ACS712 es ideal, ya que puede medir tanto corriente continua cómo alterna. El amperímetro  tiene una salida analógica, que indicará con una precisión del 1,5% la corriente que le atraviesa. Se alimenta a través de los 5V de tu controlador, como un Arduino UNO en nuestro caso.

Con este tutorial aprenderás a usarlo en un ejemplo sencillo en Arduino IDE.

II. Procedimientos experimentales

Conexión

La conexión es extremadamente sencilla, ya que el "módulo" se conecta sobre la placa Arduino UNO y ya. Conectaremos primero los pines del módulo a Arduino UNO de la siguiente manera:

  • Vcc a +5V
  • OUT a A0
  • GND a GND

En cuanto al circuito de potencia, podremos utilizar tanto un circuito de corriente alterna donde le podemos conectar por ejemplo una bombilla o un pequeño motor o un circuito de corriente continua, donde podemos utilizar un LED.

Con esto podremos saber el consumo de corriente de nuestro componente (bombilla, motor, etc). De la misma forma, aplicando la Ley de Ohm, podremos conocer la potencia consumida ya que conoceremos el voltaje de alimentación.

Código

Ahora, abre un nuevo sketch y pega el siguiente código:

/*

 * Arduino Sketch for Allegro ACS712 Current Sensor 

 * this sensor can measure current at range of up to 30A

 * It operates with 5V

 * 

 */

#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.

const int model = 2;   // enter the model number (see below)

float cutOffLimit = 1.01;// set the current which below that value, doesn't matter. Or set 0.5

/*

SELECCIONA EL MODELO DE TU SENSOR

          "ACS712ELCTR-05B-T",// for model use 0

          "ACS712ELCTR-20A-T",// for model use 1

          "ACS712ELCTR-30A-T"// for model use 2  

sensitivity array is holding the sensitivy of the  ACS712

current sensors. Do not change. All values are from page 5  of data sheet          

*/

float sensitivity[] ={

          0.185,// for ACS712ELCTR-05B-T

          0.100,// for ACS712ELCTR-20A-T

          0.066// for ACS712ELCTR-30A-T

     

         }; 

const float QOV =   0.5 * VCC;// set quiescent Output voltage of 0.5V

float voltage;// internal variable for voltage

void setup() {

    //Robojax.com ACS712 Current Sensor 

    Serial.begin(9600);// initialize serial monitor

    Serial.println("ACS712 Current Sensor");

}

void loop() {

  

  float voltage_raw =   (5.0 / 1023.0)* analogRead(VIN);// Read the voltage from sensor

  voltage =  voltage_raw - QOV + 0.012 ;// 0.000 is a value to make voltage zero when there is no current

  float current = voltage / sensitivity[model];

 

  if(abs(current) > cutOffLimit ){

    Serial.print("V: ");

    Serial.print(voltage,3);// print voltage with 3 decimal places

    Serial.print("V, I: ");

    Serial.print(current,2); // print the current with 2 decimal places

    Serial.println("A");

  }else{

    Serial.println("No Current");

  }

  delay(500);

Una vez pegado, deberás seleccionar el modelo del módulo que hayas usado. Si es el de 20A deberás poner un 1 y para el de 30A un 2. Para ello deberás ir a la tercera línea de código y sustituir el número: const int model = 2;   // enter the model number (see below)

Una vez tengas el código configurado, ya puedes conectar tu circuito de potencia, en nuestro caso, conectaremos una fuente de alimentación y subiremos la corriente. Hemos usado el módulo de 30A.

Por último, ya puedes subir el programa, y podrás ver a través del Monitor Serie, el mensaje en pantalla  de la tensión y la corriente que mide.