首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TP4056 实现可编程锂电充电器+电量计

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

作者头像
MCU起航
发布2021-04-25 11:52:01
1.7K0
发布2021-04-25 11:52:01
举报
文章被收录于专栏:单片机爱好者单片机爱好者

本文作者: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 愉快!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 单片机爱好者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档