跳转到内容

Analog Devices MAX17043 电池电量计

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

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

在低功耗应用中,准确报告电池电量非常重要。通过利用 ESPHome 的 deep_sleep 组件配合 MAX17043,项目可以运行更长时间,用户也能确信剩余电量。 这克服了测量到的电池电压与剩余电池电量几乎不相关的现实。

NOTE

参见下方硬件设计讨论——在深度睡眠期间保持 MAX17043 通电非常重要。

DFRobot DFR0563 Gravity I2C 3.7V Li 电池电量计。
# Example configuration entry
sensor:
- 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 的其他所有选项。

电池电压与剩余电量之间的关系相关性差且非线性,这一点非常重要。

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()。