TP4056 实现可编程锂电充电器+电量计

本文作者: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」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

相关推荐
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值