本文作者:t3486784401
链接:https://www.mydigit.cn/forum.php?mod=viewthread&tid=250916&extra=
手头有些容量非常小的软包锂电,直接使用市面上的大功率充电板(500mA/1A)倍率太大,容易损坏电池。
索性拿 TP5046 搭一套充电系统,配合 Arduino 实现电压、电流采样,实现电池容量检测。
【原理】
TP4056 是 1A 锂电池线性充电器,适合 3.7v 三元锂电池充电。
芯片除了自带指示灯驱动(充电/满电),还支持单电阻 Rprog 设定、检测电流:
图中 Rprog 与恒流电流的关系:
Icc= 1v/Rprog *1200
实时充电电流与 Vprog 的关系:
Ibat= Vprog/Rprog *1200
恒流阶段 Vprog=1.0v,充满以后 Vprog<0.1v.
使用 ADC 同步采样电池电压 Vbat、参考电压 Vprog 即可获得电压、电流参数,
电流参数对时间进行积分,即可获得电池容量参数。
【硬件】
硬件的主要功能包括:电压电流滤波采样、编程电阻 Rprog 的动态切换。
Rprog 采用 8-4-2-1 比例方式由 Arduino 切换,调整 IO 通断即可设定 60mA-950mA 充电电流,步进值 60mA.
硬件做成了 Arduino 扩展板的形式,由于 TP4056 需要有些散热设计,因而再搭棚一层 TP4056 最小系统。
Vprog 由 ADC 直接采样,Vbat 经过 47k-10k 分压网络后采样,最后焊接扩展板:
安装上 Arduino UNO 的组合样子:
【软件】
由于没有复杂的控制逻辑,整套代码使用 ICCAVR 编写:
运行过程中使用串口助手接收电压、电流数据,供后期计算使用:
附上运行固件及源码,供参考或直接烧录:公众号后台回复关键词:008,或者 可编程充电。
【效果】
堆叠板上保留了 TP4056 经典的红/绿充电状态指示,效果如下:
串口收到的数据统一替换下格式粘贴进 EXCEL,顺手处理电压电流换算:
最终 EXCEL 绘制电池充电电压(蓝)、电流(红)曲线,含时间标签:
电流曲线(红)下方的面积即为电池容量,实际用 EXCEL 做个累加直接就有了。
我这个二手软包电池测得大约 160mAh 的容量。
从电流曲线上可以明显看出 TP4056 工作流程:恒流到4.2v,再恒压到1/10电流,最终停止充电。
电压曲线则可以看出 3.9-4.2v 区间段容量较大,恒流持续时间较长;而 <3.7v 区间几乎没什么容量。
以上,使用 TP4056 搭接了一套可编程锂电充电系统,支持电压电流采样,可用于估算电池容量。
恒流充电电流 60mA-950mA 可调,可以适配各路中小容量的三元锂电池充电。
最后祝大家 DIY 愉快!
推荐阅读:
专辑|Linux文章汇总
专辑|程序人生
专辑|C语言
我的知识小密圈
关注公众号,后台回复「1024」获取学习资料网盘链接。
欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~