1、电池基础与电动牙刷供电架构:锂电池化学特性、标称电压与放电曲线、牙刷电机负载特性

各位同学好,我是老张。做嵌入式电池管理这块有些年头了。今天咱们开始第一课,聊聊电动牙刷的电池基础。

说实话,电动牙刷看着简单,但电池这块坑不少。我最早做这个项目时,以为不就是个锂电池嘛,结果被放电曲线狠狠教育了一回。嗯,咱们从头捋一遍。

1.1 锂电池化学特性:为什么选它?

电动牙刷用的基本都是锂离子电池,最常见的是钴酸锂或三元材料。为什么选它?说白了就三点:能量密度高、自放电低、没有记忆效应。

你想想看,牙刷就那么点空间,电池塞不进去就完蛋。锂电池的能量密度能做到 150-200 Wh/kg,比镍氢电池高出一倍多。我见过有人用镍氢电池做牙刷,结果续航只有三天,用户骂翻了。

另外,锂电池的自放电率很低,每月大概 2%-5%。这意味着你出差一个月回来,牙刷还有电。镍氢电池呢?一个月能掉 20%。

核心要点: 电动牙刷首选锂电池,因为体积小、续航长、待机损耗低。

1.2 标称电压与放电曲线:别被数字骗了

锂电池的标称电压是 3.7V,但这是个平均值。实际充满是 4.2V,放完电大概 3.0V。很多新手以为电池电压是恒定的,这是大错特错。

我给大家看一个典型的放电曲线:

电量 (%) 开路电压 (V) 负载电压 (V)
100 4.20 4.05
80 3.95 3.80
60 3.85 3.70
40 3.75 3.60
20 3.60 3.45
0 3.00 2.85

注意看,从 100% 到 20%,电压只降了 0.6V。但从 20% 到 0%,电压会断崖式下跌。这就是为什么很多牙刷突然就没电了——你以为还有 20%,其实下一秒就关机。

避坑指南: 我曾经在项目中直接用电压换算电量,结果用户反馈「明明显示还有两格电,刷着刷着就停了」。后来才明白,负载电压和开路电压差很多,必须做补偿。

1.3 牙刷电机负载特性:电流不是恒定的

电动牙刷的电机,一般是直流无刷电机或空心杯电机。它的负载特性很特殊——不是恒定电流,而是脉冲式的大电流。

为什么?因为牙刷工作时,刷毛在牙齿上摩擦,阻力是变化的。你刷门牙和刷后槽牙,电流能差一倍。我实测过,空载时电流 200mA,加载后能飙到 800mA,甚至更高。

这种脉冲负载对电池电压的影响很大。你想想看,电池内阻是固定的,电流突然变大,电压就会瞬间跌落。如果这时候你采样电压算电量,结果肯定不准。

// 一个简单的电流采样示例
// 注意:不能只采一次,要多次平均
uint32_t current_sum = 0;
for(int i = 0; i < 10; i++) {
    current_sum += adc_read_current();
    delay_ms(2);  // 避开电机换向瞬间
}
uint16_t avg_current = current_sum / 10;

这段代码是我早期项目里用的。当时没加延时,采到的电流忽高忽低,电量估算像抽风一样。后来加了 2ms 延时,避开换向尖峰,数据才稳定下来。

1.4 供电架构:从电池到电机

电动牙刷的供电架构,我画个简化的框图:

  1. 电池 → 3.7V 锂电池,直接供电
  2. 升压电路 → 把 3.0-4.2V 升到 5V 或 6V,给电机用
  3. LDO → 降到 3.3V,给 MCU 和蓝牙供电
  4. 电机驱动 → MOS 管桥,控制电机启停和转速

这里有个关键点:升压电路会引入噪声。电机启动时,升压芯片会拉大电流,导致电池电压出现纹波。如果你在纹波峰值时采样电压,结果会偏高。

我的习惯: 在电机停止后 50ms 再采样电压,这时候电池已经恢复稳定了。或者用硬件滤波,在 ADC 前端加一个 RC 低通滤波器,截止频率设在 10Hz 左右。

1.5 总结:这一章你该记住什么?

好,咱们捋一下重点:

  • 锂电池标称 3.7V,实际范围 3.0-4.2V
  • 放电曲线不是线性的,20% 以下是悬崖区
  • 电机负载是脉冲式的,电流变化大
  • 采样电压要避开电机工作时刻,或者做滤波

下一章咱们会讲电量估算的几种方法,包括开路电压法、库仑计数法,还有我踩过的那些坑。到时候见。

—— 老张,公众号:蓝海资料掘金营,微信deep3321