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

#include "MAX17043.h"
#include "Wire.h"

MAX17043 batteryMonitor;

void setup() {
  
#include "MAX17043.h"
#include "Wire.h"

MAX17043 batteryMonitor;

void setup() {
  
  Wire.begin(); 
  Serial.begin(9600);
  Serial.println("MAX17043 Example: reading voltage and SoC");
  Serial.println();
  // Запускаем датчик для работы
  batteryMonitor.reset();
  batteryMonitor.quickStart();
  delay(1000);
  // Получаем напряжение
  float cellVoltage = batteryMonitor.getVCell();
  Serial.print("Voltage:\t\t");
  Serial.print(cellVoltage, 4);
  Serial.println("V");
  // Получаем текущий заряд
  float stateOfCharge = batteryMonitor.getSoC();
  Serial.print("State of charge:\t");
  Serial.print(stateOfCharge);
  Serial.println("%");
}

void loop() {}

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

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