单片机充电的时候电池电压会被拉高,如何检测电压?
在单片机充电过程中检测电池电压时,若充电导致电压被拉高,可采用以下方法实现准确测量:
1. 分时检测法(推荐)
原理:在充电暂停的间隙(如PWM充电的关断周期)快速测量电池电压,避免充电电流干扰。
实现步骤:
控制充电MOSFET/开关短暂关闭(如10ms)。
立即通过ADC读取电池电压(利用外部或单片机内置ADC)。
重新开启充电。
优点:无需额外电路,成本低。
注意:需确保充电暂停时间足够短,避免影响充电效率。
2. 硬件滤波 + 电压补偿
低通滤波电路:
在电池电压检测路径上添加RC低通滤波(如10kΩ + 1μF,截止频率~16Hz),衰减充电纹波。
滤波后电压接近真实电池电压(因电池内阻导致的压降较小)。
动态补偿:
通过实验测量充电电流与电压抬升的关系(如0.1V/A),在代码中补偿修正:
真实电压 = 测得电压 - (充电电流 × 补偿系数)
3. 差分检测法
检测电池内阻压降:
使用两个ADC通道分别测量电池正极电压(
V_CHG
)和负载端电压(V_BAT
)。计算压差:
ΔV = V_CHG - V_BAT
,通过已知充电电流估算内阻(R_internal = ΔV / I_CHG
)。真实电压:
V_BAT = V_CHG - (I_CHG × R_internal)
。
适用场景:需已知充电电流(如通过电流传感器或恒流充电设定值)。
4. 专用电池管理IC
芯片示例:TI的BQ系列(如BQ25601)、MAXIM的MAX8903等。
功能:
集成高精度电压/电流检测。
自动补偿充电内阻影响。
通过I²C/SPI直接读取处理后的数据。
优点:简化设计,提高精度,适合高端应用。
5. 软件处理技巧
数字滤波:
对ADC采样值进行滑动平均或中值滤波,抑制噪声。
充电状态判断:
若检测到电压持续上升且无负载,可判定为充电状态,启用补偿算法。
选择建议
低成本方案:分时检测法 + 软件滤波。
高精度需求:专用电池管理IC。
动态电流场景:差分检测 + 电流传感器。
通过上述方法,可有效消除充电过程中的电压抬升影响,获得准确的电池电压。