M5StickCとINA219電流センサで太陽光パネルからバッテリへの充放電電流を測定する

前回の記事で電流センサ INA219 とM5Stackを使って電流測定をしたので、M5StickCでもやってみました。
太陽光パネルからの12Vバッテリへの充放電電流を測定してみました。

プログラム

Adafruit INA219 ライブラリと共にインストールされる getcurrent をベースにM5StickCへ移植しました。
前回のM5Stack同様にLCDに表示しています。
電圧、電流、電力を100msec間隔で表示し、電流が充電方向でプラス、緑色の円描画、放電方向でマイナス、赤色の円描画しています。

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

Adafruit_INA219 ina219;
int refresh_count = 0;

void setup(){
  M5.begin();
  //Wire.begin(32, 33);  // Grove G32:SDA, G33:SCL
  Wire.begin(0, 26);     // G0: SDA, G26: SCL
  M5.Axp.ScreenBreath(8);
  M5.Lcd.setRotation(3);
  M5.Lcd.setTextSize(2);
  Serial.begin(115200);
  while (!Serial) {
    delay(1);
  }
  // Initialize the INA219.
  if (! ina219.begin()) {
    M5.Lcd.println("Failed to find INA219 chip");
    while (1) { delay(10); }
  }
  M5.Lcd.println("Measuring voltage and current with INA219 ...");
  M5.Lcd.fillScreen(BLACK);
}

void loop(void) {
  float shuntvoltage = 0;
  float busvoltage = 0;
  float current_mA = 0;
  float loadvoltage = 0;
  float power_mW = 0;

  shuntvoltage = ina219.getShuntVoltage_mV();
  busvoltage = ina219.getBusVoltage_V();
  current_mA = (-1)*ina219.getCurrent_mA(); //バッテリの充電方向に合わせて反転
  power_mW = ina219.getPower_mW();
  loadvoltage = busvoltage + (shuntvoltage / 1000);
  
  if (++refresh_count > 100) {
    refresh_count = 0;
    M5.Lcd.fillScreen(BLACK);
  }
  M5.Lcd.setCursor(0, 10);
  M5.Lcd.printf("%7.2f V\n", busvoltage);
  M5.Lcd.printf("%7.2f mA\n", current_mA);
  M5.Lcd.printf("%7.2f mW\n", power_mW);
  if (current_mA < 0) { 
    M5.Lcd.fillCircle(138, 35, 14, RED);
  } else {
    M5.Lcd.fillCircle(138, 35, 14, GREEN);
  }
  delay(100);
  m5.update();
}

接続

Grove端子(Vcc 5V)でも IO0,26(Vcc 3.3V)でも動作しました。
Grove端子を使用する場合はsetup()関数の2-3行目のコメントを入れ替えます。

M5StickC : INA219
------------------------
3.3V : Vcc
GND : Gnd
G0 : Sda
G26 : Scl

DC12VバッテリへのVin+ と Vin- の接続

電流計なので当然直列に入れます。バッテリの+12V端子に直列に挿入しました。
電圧も測定するために INA219 のGNDとバッテリ、負荷のGNDを接続します。

Vin+ : バッテリの+端子
Vin- : ソーラーチャージャーのバッテリ接続用+端子

これで充電時の電流がプラス、放電時がマイナスになります。

測定

僅かに発電中。ここのところ雨続きですが、日中は明るければわずかに発電します。
5Wの太陽光パネルを東向きに設置していますが、雨の日の午後で2-10mA程度で充電してます。

こちらは発電できずに充放電が頻繁に切り替わっています。

まとめ

前回のM5StackをM5StickCにしてLCD表示をシンプルにしました。
太陽光パネルで充電中の12Vバッテリの充放電電流を確認することができるようになり、太陽光パネルの発電状況が可視化されました。

コメントを残す

メールアドレスが公開されることはありません。

5 − five =