数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 8672|回复: 122

[Arduino] TP4056 实现可编程锂电充电器+电量计(原创)

    [复制链接]
发表于 2021-4-22 15:33:59 | 显示全部楼层 |阅读模式

认识众多玩家高手/拆客/DIYer,查阅更多资源,一起学习技术知识

您需要 登录 才可以下载或查看,没有帐号?立即注册 微信登录

x
手头有些容量非常小的软包锂电,直接使用市面上的大功率充电板(500mA/1A)倍率太大,容易损坏电池。
索性拿 TP5046 搭一套充电系统,配合 Arduino 实现电压、电流采样,实现电池容量检测。

【原理】
TP4056 是 1A 锂电池线性充电器,适合 3.7v 三元锂电池充电。
芯片除了自带指示灯驱动(充电/满电),还支持单电阻 Rprog 设定、检测电流:

IMG1.png

图中 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.

IMG2.png

硬件做成了 Arduino 扩展板的形式,由于 TP4056 需要有些散热设计,因而再搭棚一层 TP4056 最小系统。
Vprog 由 ADC 直接采样,Vbat 经过 47k-10k 分压网络后采样,最后焊接扩展板:

IMG3.JPG

安装上 Arduino UNO 的组合样子:

IMG4.JPG


【软件】
由于没有复杂的控制逻辑,整套代码使用 ICCAVR 编写:

IMG5a.png

运行过程中使用串口助手接收电压、电流数据,供后期计算使用:

IMG5b.png


附上运行固件及源码,供参考或直接烧录: LiCHGTest_APP SRCv1.0.zip (5.83 KB, 下载次数: 20)

打赏

参与人数 22M币 +383 收起 理由
zx61107 + 20 謝謝分享
kkdkj + 20 謝謝分享
沙漠臭屁虫 + 20
hfsp + 20 優秀文章
亚历山大 + 20
李拜天 + 20 謝謝分享
moontree + 20
cao57508 + 20 優秀文章
hefanghua + 20 又有很大收获,感谢分享
411183343 + 20

查看全部打赏

本帖被以下淘专辑推荐:

发表于 2021-4-22 16:17:51 | 显示全部楼层
DIY很好,但楼主你不知道最近芯片涨价吗?还用单片机
回复 支持 反对

使用道具 举报

发表于 2021-4-22 16:20:54 | 显示全部楼层
160mAh太小了吧,能干啥???
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-22 16:23:17 | 显示全部楼层
石墨 发表于 2021-4-22 16:17
DIY很好,但楼主你不知道最近芯片涨价吗?还用单片机

所以才要用 Arduino,底板拔掉可以换作他用。

扩展板只是做了接线+模拟调理
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-22 16:26:41 | 显示全部楼层
邪恶海盗 发表于 2021-4-22 16:20
160mAh太小了吧,能干啥???

矿坛参加了最近一次 DIY 大赛,一个自动开合的垃圾桶盖。
这个 160mAh 电池连续续航了 4.5 月,还觉着容量小吗?

我挂风筝上测高度的帖子,电池标称容量只有 60mAh,比这个还迷你。
回复 支持 1 反对 0

使用道具 举报

发表于 2021-4-22 16:32:03 | 显示全部楼层
用TP4056 VPROG和VBAT来判断充电电流大小。。这创意不错。。
回复 支持 反对

使用道具 举报

发表于 2021-4-22 16:32:05 来自手机浏览器 | 显示全部楼层
牛掰了,给楼主点赞
回复 支持 反对

使用道具 举报

发表于 2021-4-22 16:41:48 | 显示全部楼层
买了几个4056充电板  截止电压都很低 才4.02V——4.08V
回复 支持 反对

使用道具 举报

发表于 2021-4-22 16:44:17 | 显示全部楼层
这个项目真好 我一直想做 但是无奈不懂程序不会搞
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-22 16:49:32 | 显示全部楼层
asnake 发表于 2021-4-22 16:32
用TP4056 VPROG和VBAT来判断充电电流大小。。这创意不错。。

Vprog 在设计的时候就是可以检测充电电流的,这个要感谢 4056 的厂商,预留了这么个彩蛋
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-4-22 16:51:03 | 显示全部楼层
aacyxjz 发表于 2021-4-22 16:32
牛掰了,给楼主点赞

感谢捧场!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-22 16:53:27 | 显示全部楼层
luzhishen 发表于 2021-4-22 16:41
买了几个4056充电板  截止电压都很低 才4.02V——4.08V

一般是 4.15v-4.25v 比较正常,我前后入手的几批都在 4.21v 左右,没见着太大的区别。

可有芯片近拍图,发来学习下坑长啥样?当然有时候也是万用表的锅。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-22 16:55:24 | 显示全部楼层
1064865056 发表于 2021-4-22 16:44
这个项目真好 我一直想做 但是无奈不懂程序不会搞

Arduino + 图形编程可还行,基本就是简单的图块拼装;

不过 ADC 采样、二进制还是得会搞,数据处理的时候逃不开
回复 支持 反对

使用道具 举报

发表于 2021-4-22 17:48:13 | 显示全部楼层
有详细的电路图吗?新手需要学习
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-22 17:52:46 | 显示全部楼层
听雨亭 发表于 2021-4-22 17:48
有详细的电路图吗?新手需要学习

源码里有写明接线, TP4056 接线就是 PDF 里标准的
回复 支持 反对

使用道具 举报

发表于 2021-4-22 19:45:31 | 显示全部楼层
我都想把废板子上的单片机利用起来。没用过AVR在寻源代码
回复 支持 反对

使用道具 举报

发表于 2021-4-22 21:18:43 来自手机浏览器 | 显示全部楼层
t3486784401 发表于 2021-4-22 16:53
一般是 4.15v-4.25v 比较正常,我前后入手的几批都在 4.21v 左右,没见着太大的区别。

可有芯片近拍图, ...

楼主,我一直很好奇,4056这模拟芯片
靠什么保证大批量生产,充电截止电压基本一致?
还有那个恒流大小与电阻之间函数关系,模拟电路真不易
回复 支持 反对

使用道具 举报

发表于 2021-4-22 21:47:07 | 显示全部楼层
t3486784401 发表于 2021-4-22 16:26
矿坛参加了最近一次 DIY 大赛,一个自动开合的垃圾桶盖。
这个 160mAh 电池连续续航了 4.5 月,还觉着容量 ...

我X,牛屁了...

----------------------------------
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-23 00:06:09 | 显示全部楼层
cnhncs 发表于 2021-4-22 19:45
我都想把废板子上的单片机利用起来。没用过AVR在寻源代码

这个是基于 AVR 的 Arduino,十几块一套的山寨板子都能很好运行
回复 支持 反对

使用道具 举报

发表于 2021-4-23 00:13:03 | 显示全部楼层
t3486784401 发表于 2021-4-22 09:06
这个是基于 AVR 的 Arduino,十几块一套的山寨板子都能很好运行

硬件上用Arduino,软件上用AVR,可以直接调度单片机,免去使用Arudino IDE的接口,以前经常这样干

感觉Arduino方便的地方就是板子自带USB接口,不需要有另外的编程器和
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

关闭

活动推荐上一条 /1 下一条

Archiver|手机版|小黑屋|关于我们|联系我们|网站条款|数码之家

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2021-5-9 10:37 , Processed in 0.249600 second(s), 18 queries , Redis On.

Powered by Discuz!

© 2006-2021 MyDigit.cn

快速回复 返回顶部 返回列表