Analog Devices MAX17043 电池电量计
MAX17043 平台允许您使用 MAX17043 更准确地监控 LIPO 电池的剩余容量 (数据手册, DFRobot)。它使用 I²C 总线 进行通信(地址固定为 0x36)。
配置完成后,它使用一种称为 ModelGauge™ 的复杂锂电池建模方案,以连续跟踪 电池在变化广泛的充放电曲线下的相对充电状态。 与传统电量计不同,ModelGauge 算法消除了电池重新学习周期 和外部电流检测电阻的需求。
在低功耗应用中,准确报告电池电量非常重要。通过利用 ESPHome 的 deep_sleep
组件配合 MAX17043,项目可以运行更长时间,用户也能确信剩余电量。
这克服了测量到的电池电压与剩余电池电量几乎不相关的现实。
NOTE
参见下方硬件设计讨论——在深度睡眠期间保持 MAX17043 通电非常重要。

# Example configuration entrysensor: - platform: max17043 id: max17043_id i2c_id: i2c_max17043 battery_voltage: name: "Battery Voltage" battery_level: name: "Battery"-
battery_voltage (可选,float): LIPO 电池上测量的电压。
- 来自 Sensor 的其他所有选项。
-
battery_level (可选,float): 使用 ModelGauge™ 电池建模方案计算的电池剩余百分比。
- 来自 Sensor 的其他所有选项。
硬件设计注意事项
Section titled “硬件设计注意事项”电池电压与剩余电量之间的关系相关性差且非线性,这一点非常重要。
MAX17043 通过持续监控充放电来评估剩余电池容量。 首次通电时,它假设测量到的电压已在放松状态下持续了 30 分钟。这个最佳初始猜测不会产生持久影响,因为它随时间监控相对充电状态。
深度睡眠周期通常设计为设备短暂唤醒 执行任务,然后睡眠更长时间。在睡眠阶段让 MAX17043 保持 状态至关重要。
如果 MAX17043 断电,则每次 ESP 从深度睡眠中唤醒时,MAX17043 都将 不得不从一个新最佳猜测重新开始。 它无法利用过去的充放电行为来施展魔力—— 大大降低了使用 MAX17043 的意义。
设备睡眠模式期间的电流消耗极低(最大 3µA,相比之下活动状态最大 75µA)。
驱动程序允许用户在深度睡眠即将开始时使用 sleep_mode 操作将设备置于睡眠状态。
当 ESP 从深度睡眠中唤醒时,驱动程序清除 MAX17043 的睡眠位。
例如:
on_...: then: - max17043.sleep_mode: max17043_id - deep_sleep.enter: id: deep_sleep_1 sleep_duration: 20minNOTE
一旦调用了 sleep_mode() 操作,MAX17043 将停止重新计算电压和电池电量。
因此,如果您让 ESP 继续运行,它将不断以上次测量值发布传感器值。
退出睡眠模式的唯一方法是重启设备(按预期通过深度睡眠唤醒;或不太理想地通过断电重启)。
因此,仅在打算将 ESP 送入深度睡眠时才调用 sleep_mode()。