
自适应多功能充电器
DIYers手里一般都有各种各样的充电电池,从镍氢、锂电到9V电池,给它们充电也是个麻烦事,得各配各的充电器。如果能用一个充电器适配各种电池不就好了?
感觉可以先做一个限压/限流分别可调的DCDC电源,然后每30秒一个周期,第一秒用9.5V限压+10mA限流试充,再测量实际电压电流来判断,如果电流很小接近为零,判断为没有接入电池;如果电压<1.5V,判断为镍氢;电压<4.2V,判断为锂电池;否则判断为9V的6F22。之后的29秒,针对前面的电池判断结果,电压较低时用较大电流快充,电压接近上限时改为较小电流补充。
原理图如下,为了能从5V输入得到0~10V输出,用芯龙的XL6007搭成SEPIC变换器,效率低些,最大输出300mA电流还是可以的。反馈控制这里,用两路PWM分别RC滤波后,通过OPA2340的两个运放分别和电压/电流采样信号相比较,两个运放输出端通过BAT54C的两个二极管拉高XL6007的FB脚,也就是电压/电流之一达到设定值时就构成环路,从而实现了限压/限流分别可调。
输出端用一个PMOS:MDD2301实现防反接。

MCU没有特殊要求,用一片STM32F030C8T6即可,用三个ADC通道分别采集电压、电流和作为2.5V参考电压的CJ431。显示则用了一片128*64的0.96寸OLED。
实际充电效果如图:


程序见github:
https://github.com/tomzbj/diy/tree/master/2026/self_adaptive_charger
编辑于 2026-08-05 · 著作权归作者所有