Site icon AranaCorp

Mesure de puissance avec Arduino et INA219

4.5
(2)

Le Capteur INA219 est un capteur de courant et de tension permettant un mesure facile de la puissance. Dans certaines applications, il est intéressant de mesurer la puissance électrique échangée entre des appareils. Par exemple, mesurer la puissance récupérée par un panneau solaire. Nous allons voir dans ce tutoriel comment mesurer les valeurs de puissance avec le capteur INA219.

Prérequis : Donnez des sens à votre robot

Matériel

Schéma

Le capteur INA219 est un capteur de courant et de tension communiquant via I2C. Il suffit de l’alimenter avec la sortie 5V de l’Arduino et de relier les bornes SDA et SLC de la communication I2C.

Il est possible de modifier l’adresse I2C utilisée en rajoutant un pont de soudure sur les borniers A0 et A1:

Code

Pour afficher les mesure de l’INA219, nous allons utiliser la librairie d’Adafruit Adafruit_INA219.h que vous pouvez télécharger ou installer directement depuis l’IDE Arduino.

La puissance électrique échanger par deux appareils se calcule en multipliant la tension et le courant sur le bus les reliant:

P=UxI avec P la puissance(W), U la tension(V) et I le courant(A).

L’énergie est la puissance consommée par l’appareil au cours du temps

E=Pxt avec E l’énergie(Wh), P la puissance (W) et t le temps(h)

Fonctions à connaitre:

#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("----------------------------------------------------------------------------");
}


Application

Une application possible avec un capteur INA219 est de créer un énergie-mètre afin de mesurer la puissance électrique absorbée par un panneau solaire, par exemple. Cela vous permet de vérifier le bon fonctionnement des cellules photovoltaïques, d’une part, et de mesurer ses performances au cours du temps.

Sources

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

How useful was this post?

Click on a star to rate it!

Average rating 4.5 / 5. Vote count: 2

No votes so far! Be the first to rate this post.

Quitter la version mobile