Icono del sitio AranaCorp

Medición de potencia con Arduino e INA219

El sensor INA219 es un sensor de corriente y voltaje para medir fácilmente la potencia. En algunas aplicaciones, es interesante medir la energía eléctrica intercambiada entre dispositivos. Por ejemplo, medir la potencia recuperada por un panel solar. En este tutorial veremos cómo medir los valores de potencia con el sensor INA219.

Requisito previo : Dale sentido a su robot

Hardware

Diagrama

El sensor INA219 es un sensor de corriente y voltaje que se comunica a través de I2C. Es suficiente suministrarle la salida de 5V del Arduino y conectar los terminales SDA y SLC de la comunicación I2C.

Code

Para mostrar las mediciones INA219, utilizaremos la biblioteca Adafruit_INA219.h que puede descargar o instalar directamente desde el IDE de Arduino.

La potencia eléctrica intercambiada por dos dispositivos se calcula multiplicando el voltaje y la corriente en el bus que los conecta:

P = UxI con P la potencia (W), U la tensión (V) e I la corriente (A).

La energía es la energía que consume el dispositivo a lo largo del tiempo.

E = Pxt con energía E (Wh), potencia P (W) y tiempo t (h)

Funciones a saber:

#include <Wire.h>
#include <Adafruit_INA219.h>

Adafruit_INA219 ina219;

  float voltage_V = 0,shuntVoltage_mV,busVoltage_V;
  float current_mA = 0;
  float power_mW = 0;
  float energy_Wh=0;
  long time_s=0;

void setup(void) 
{
  Serial.begin(9600);
  uint32_t currentFrequency;
  ina219.begin();
  Serial.println("Measuring voltage and current with INA219");
}

void loop(void) 
{
  getData();
  delay(2000);
}

void getData(){
  
 time_s=millis()/(1000); // convert time to sec
 busVoltage_V = ina219.getBusVoltage_V();
 shuntVoltage_mV = ina219.getShuntVoltage_mV();
 voltage_V = busVoltage_V + (shuntVoltage_mV / 1000);
 current_mA = ina219.getCurrent_mA();
 //power_mW = ina219.getPower_mW(); 
 power_mW=current_mA*voltage_V; 
 energy_Wh=(power_mW*time_s)/3600;   //energy in watt hour
   
  
  Serial.print("Bus Voltage:   "); Serial.print(busVoltage_V); Serial.println(" V");
  Serial.print("Shunt Voltage: "); Serial.print(shuntVoltage_mV); Serial.println(" mV");
  Serial.print("Load Voltage:  "); Serial.print(voltage_V); Serial.println(" V");
  Serial.print("Current:       "); Serial.print(current_mA); Serial.println(" mA");
  Serial.print("Power:         "); Serial.print(power_mW); Serial.println(" mW");  
  Serial.print("Energy:        "); Serial.print(energy_Wh); Serial.println(" mWh");
  Serial.println("----------------------------------------------------------------------------");
}


Solicitud

Una posible aplicación con un sensor INA219 es crear un medidor de energía para medir la energía eléctrica absorbida por un panel solar, por ejemplo. Esto le permite verificar el correcto funcionamiento de las células fotovoltaicas, por un lado, y medir su rendimiento a lo largo del tiempo.

Fuentes

Encuentre otros tutoriales y ejemplos en el generador de código automático
Arquitecto de Código

Salir de la versión móvil