это если мы "кулоны" считаем. В моём случае (по большому количеству
проектов имею весьма положительный опыт), достаточно контроля по
уровню напряжения. Уверенно контролируется 5-7 ступеней даже для литий-железо-фосфатной батареи, у которой почти "горизонталь"
Типовые пороги для моих алгоритмов контроля (статус укладывается в 3 бита):
Extra - 100+% - свежезаряженное, вот только что с заряда
Full - 100% - заряженое до максимума, некоторое время назад
Good - 75% - ещё терпимо
Half - 50% - половинка :) /индикация такого состояния/
Bad - 25% - плохо - /индикация такого состояния, и, как правило какие-нибудь "напоминалки" раз в 15-20 минут/
Critical - 5% - "критический уровень", падаем в режим максимального энергосбережения, отключая всё функционально не необходимое
/индикация такого состояния, и, как правило какие-нибудь "напоминалки" раз в 5 минут/
Empty - 1% - "пустая батарея" - автоматическое корректное завершение работы и переход к контролю заряда (если он будет)
No - 0 - нет батареи :)
есть нюанс - есть автоматический поправочный коэффициент на текущее энергопотребление, а так же для некоторых страждущих, - возможность сдвигать дополнительной поправкой график контроля вверх/вниз, если замечено не очень адекватное поведение алгоритма в конкркетном приложении.