跳转到内容

Analog Devices MAX17043 电池电量计

MAX17043 平台允许您使用 MAX17043 在 ESPHome 中更准确地监控 LIPO 电池的剩余容量(数据手册DFRobot)。它使用 I²C 总线 进行通信(地址固定为 0x36)。

配置完成后,它使用一种称为 ModelGauge™ 的复杂 Li+ 电池建模方案,在广泛变化的充放电曲线中持续跟踪电池的相对充电状态。 与传统的电量计不同,ModelGauge 算法消除了电池重新学习周期和外部电流检测电阻的需求。

在低功耗应用中,准确报告电池电量非常重要。通过将 ESPHome 的 deep_sleep 组件与 MAX17043 结合使用,项目可以运行更长时间,用户可以对剩余电量充满信心。 这克服了测量电池电压与剩余电池电量相关性差的现实问题。

NOTE

请参阅下面的硬件设计讨论 - 在深度睡眠期间保持 MAX17043 通电非常重要。

DFRobot DFR0563 Gravity I2C 3.7V 锂电池电量计。
# 示例配置条目
sensor:
- platform: max17043
id: max17043_id
i2c_id: i2c_max17043
battery_voltage:
name: "电池电压"
battery_level:
name: "电池电量"
  • battery_voltage (可选, float): 在 LIPO 电池处测量的电压。

  • battery_level (可选, float): 使用 ModelGauge™ 电池建模方案的剩余电池百分比。

重要的是要认识到电池电压与剩余电池电量之间的关系相关性很差,而且是非线性的。

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: 20min

NOTE

一旦调用 sleep_mode() 动作,MAX17043 将停止重新计算电压和电池电量。 因此,如果您让 ESP 继续运行,它将继续使用最后的测量值发布传感器值。 退出睡眠模式的唯一方法是重启设备(按照预期通过深度睡眠唤醒;或者不太理想的方式是通过断电重启)。

因此,仅当您打算让 ESP 进入深度睡眠时才调用 sleep_mode()