Модуль MAX17043 использует алгоритм ModelGauge что бы отслеживать заряд аккумулятора без использования токовых датчиков.

  1. #include "MAX17043.h"
  2. #include "Wire.h"
  3.  
  4. MAX17043 batteryMonitor;
  5.  
  6. void setup() {
  7.  
  8. #include "MAX17043.h"
  9. #include "Wire.h"
  10.  
  11. MAX17043 batteryMonitor;
  12.  
  13. void setup() {
  14.  
  15.   Wire.begin(); 
  16.   Serial.begin(9600);
  17.   Serial.println("MAX17043 Example: reading voltage and SoC");
  18.   Serial.println();
  19.   // Запускаем датчик для работы
  20.   batteryMonitor.reset();
  21.   batteryMonitor.quickStart();
  22.   delay(1000);
  23.   // Получаем напряжение
  24.   float cellVoltage = batteryMonitor.getVCell();
  25.   Serial.print("Voltage:\t\t");
  26.   Serial.print(cellVoltage, 4);
  27.   Serial.println("V");
  28.   // Получаем текущий заряд
  29.   float stateOfCharge = batteryMonitor.getSoC();
  30.   Serial.print("State of charge:\t");
  31.   Serial.print(stateOfCharge);
  32.   Serial.println("%");
  33. }
  34.  
  35. void loop() {}

Функция getVCell позволяет получить напряжение на аккумуляторе в мВ.

Функция getSoC возвращает состояние заряда аккумулятора в %.