智能充电器绝对不仅仅是一款业余 DIY 的充电器, 他也将是一块入门级别的 STM32 开发板。附件内容分享了该STM32 智能充电器全部教程。 让您从零开始学习充电器。 从您学习 STM32 , 所以你可以尽可能的放心, 即使您对 STM32 还没有任何接触, 只要您有决心, 只要有 C 语言基础,,你完全可以经过这个项目的引导后学会智能充电器, 学会利用 STM32 开发项目。
STM32 智能充电器功能更新内容:
1.增加快速充电功能(测试了5个电池多次充电 只有一次失误:一个电池过放 在充电30分钟出现假负压 误判了 呵呵)
2.增加参数设置(可以设置单个电池容量 所有的充电参数都是根据这个容量来配置 LCD背光设置 LED设置等)
3.继续完善电池内阻测试(虽然直流测试法缺点颇多 但是 继续改善 应该还是可以比较靠近的)
4.修整标准充电(先放完电再冲)
STM32 智能充电器板子测量电压跟万用表的对比
对于快充 我是根据Panasonic的一份资料来做的
充电曲线如下:
1. 预冲 预冲电流0.2C 达到预冲截止电压跳转 超过预冲时间跳转over 超过最高电压(1.8)跳转over
2. 不带监控快充 这个时候充电是快充电流0.4C(暂时设置0.4C 测试完毕可以调整到0.5C) 但是不检测负压 充电时间10分钟 充电过程监视最高电压
3. 带监控快充 检测负压 负压值采用#defined设定 目前是5mv 负压出现 充电结束 超过最高电压转over 超过最长时间over
4. 整个充电过程有总的最长时间
5. 目前温度检测 ntc虽然焊接上去了 但是 还没想好用什么办法跟电池良好接触 暂时温度没考虑进来
负压值的比较 采用数列方式 每一秒钟均值作为比较对象 数列里面每一个数值跟电压最高值比较 比较结果用-1和+1标示 最后算数列总和 就知道负压的情况
参数设置 全部保存到flash里面 下次开机会自动读取 有记忆功能
可以在充电前设置电池容量 所有各个状态中的充电电流都是根据这个容量来计算的
比如 标准充电0.1C 快速充电0.4C 放电0.2C等等
这样 就不是固定一个电流值
针对不同的电池 就可以“量身定做”了
内阻测试 以前的版本因为加电时间太短 就检测了 读数不对 所以误差较大
以前是采用 (V1-V0)/I 的公式算的
V1 = 恒流充电时电压
I = 恒流充电电流
V0 = 不充电时电压
总是感觉V0 在哪个时间点测试 不好把握
所以 现在采用 (V1-V2)/(I1-I2)
呵呵
现在我的电池测量结果是80毫欧左右
电池是三洋的正品电池 正确数值应该是20毫欧左右的
结果还是有很大误差
嗯 继续努力
标准充电 是使用0.1C电流冲16小时
这个模式下 截止充电就是只有2个因素
一个是最高电压 一个是16小时这个时间
考虑到放进去充电的电池 可能还有电
有电的电池还是冲16小时
那肯定过冲
也考虑过按照电压的比例估算剩余电量
从而自动调整充电时间
但是 电池电压跟容量 基本不比例
每个电池的个体性质也不一样
于是 干脆一不做二不休
直接0.2C放电完毕 再开始标准充电
STM32 智能充电器制作成功后实物展示: