Capteur INA219, mesurer la puissance d’un panneau solaire ou une batterie avec un Arduino ou ESP8266

L’INA219 est un circuit permettant de mesurer simplement la puissance consommée par un appareil mais on peut également l’utiliser pour mesurer la puissance délivrée par un panneau solaire ou une batterie LiPo (ou un autre type de batterie. L’INA 219 permet de mesurer un courant continu jusqu’à 26V / 3.2A. Il est équipé d’un bus I2C ce qui permet de récupérer très facilement les mesures à l’aide d’un MCU (Arduino, ESP8266, ESP32) ou d’un mini PC Raspberry Pi.

 

L’INA219 vient se placer sur le circuit entre la source d’alimentation et le consommateur d’énergie.

Caractéristiques de l’INA 219

L’INA219 est un capteur I2C qui pourra être alimenté entre 3 et 5V. On pourra l’utiliser avec n’importe quelle carte de développement ou mini PC

  • Alimentation: 3 à 5 Vcc
  • Résistance de détection de courant : 0,1 ohm 1% 2W
  • Plage de mesure :
    • Courant continu jusqu’à 26V
    • Tension jusqu’à 3,2A, résolution: 0,8 mA
  • Adresses I2C (sur 7 bits) : 0x40, 0x41, 0x44, 0x45. Sélection par pont de soudure

Documentation officielle Ti

Voir toutes les promos

Changer l’adresse I2C

On dispose de deux jumper A0 et A1. En soudant un pont de soudure, on peut choisir parmi 4 adresses I2C :

0x40 Offset = binary 00000 (par défaut)
0x41 Offset = binary 00001 (pont A0)
0x44 Offset = binary 00100 (pont A1)
0x45 Offset = binary 00101 (pont A0 et A1)

ina219 i2c address

Installer la librairie INA 219 d’Adafruit sur l’IDE Arduino

La librairie INA 219 d’Adafruit est directement disponible depuis le gestionnaire de librairie de l’IDE Arduino.

install adafruit ina219 library ide arduino

La seconde librairie développée par 4 développeurs (également disponible sur GitHub ici) permet d’ajuster plus finement les paramètres de mesure et de passer quelques paramètres de configuration à l’initialisation du capteur

  • Plage  : Range for bus voltage
    • RANGE_16V : 0-16 volts
    • RANGE_32V (par défaut): 0-32 volts
  • Gain : ajuste le gain du shunt
    • GAIN_1_40MV : 40mV
    • GAIN_2_80MV : 80mV
    • GAIN_4_160MV : 160mV
    • GAIN_8_320MV (par défaut): 320mV
  • bus_adc : configure bus voltage conversion
    • ADC_9BIT : 9bit, 84us.
    • ADC_10BIT : 10bit, 148us
    • ADC_11BIT : 11bit, 2766us
    • ADC_12BIT (par défaut): 532us
    • ADC_2SAMP : 2 échantillons, 1.06ms
    • ADC_4SAMP : 4 échantillons, 2.13ms.
    • ADC_8SAMP : 8 échantillons, 4.26ms.
    • ADC_16SAMP : 16 échantillons, 8.51ms
    • ADC_32SAMP : 32 échantillons, 17.02ms.
    • ADC_64SAMP : 64 échantillons,  34.05ms.
    • ADC_128SAMP : 128 échantillons,  68.10ms.
  • shunt_adc: les mêmes paramètres que bus_adc
  • Mode:
    • PWR_DOWN : éteint
    • ADC_OFF
    • CONT_SH : Mesure du Shunt en continu
    • CONT_BUS :
    • CONT_SH_BUS (par défaut)

Mesurer la puissance délivrée par un panneau solaire ou une batterie

Quelque soit la source d’alimentation, il est possible de mesurer la puissance délivrée (tension et intensité du courant). Pour que cela fonctionne, il faut donc placer l’INA219 entre la source de courant et un consommateur. Ce peut être une LED ou un régulateur de charge (dans le cas d’un panneau solaire).

Un cas d’application type et l’utilisation d’un panneau solaire pour recharger une batterie LiPo ou une batterie rechargeable au lithium 18650. Pour recharger la batterie, il est nécessaire d’utiliser un régulateur de charge. Le plus connu est le TP4056 mais il en existe beaucoup d’autre. Cela fera l’objet d’un prochain article.

Pour faire la mesure de puissance, on vient couper le fil positif allant du panneau solaire à l’entrée du régulateur de charge suivant ce schéma :

  • Pole (+) du panneau solaire -> Vin (+) INA 219 -> Vin (-) INA 219 -> Pole (+) régulateur de charge
  • Pole (-) du panneau solaire -> GND du MCU
  • Pole (-) du régulateur de charge -> GND du MCU

Voici un schéma de câblage plus explicite

ina219 puissance panneau solaire solar panel power arduino

Code Arduino compatible ESP8266, ESP32

La librairie Adafruit INA 219 est livrée avec un exemple. Vous pouvez également utiliser broche 2 pour mesurer le courant délivré pour l’Arduino Uno. Si vous utilisez un ESP8266, changez par une sortie au format Dx. N’utilisez pas les broches D1 et D2 utilisées par le bus I2C.

Si vous avez attribué une autre adresse I2C, indiquez celle-ci au moment de l’initialisation de l’objet ina219()

Ouvrez le moniteur série pour connaître la puissance délivrée par votre panneau solaire. Ici de toute évidence, la puissance n’est pas suffisante pour alimenter un régulateur de charge.

solar panel ina219 arduino power measure

Problème qualité des clones chinois

C’est Texas Instrument (TI) qui fabrique l’INA 219. Pour une raison qui m’échappe, certaines cartes sont livrées avec un circuit défectueux ou mal configuré. En scannant le bus I2C, les modules défectueux disposent de plusieurs adresses

Même en testant chaque adresse, rien n’y fait.

J’ai testé plusieurs circuits, voici comment reconnaitre les circuits qui semblent poser problème

J’ai ouvert ce sujet sur le forum pour échanger des infos ou une solution au problème.

Print Friendly, PDF & Email

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous désinscrire à tout moment.

Comparateur de prix

Bons plans

Les offres suivantes se terminent bientôt. Utilisez le coupon indiqué pour profiter du prix promo

Domotique et objets connectés à faire soi-même