文号
913570
阅读
33469
回复
15
收藏
10
使用stm32的ADC和电阻测量电池容量
2023/01/02
原创
IP:广东

背景:手头上有七八块18650电池,众所周知这电池是虚标的重灾区,闲来无事想测测电池容量,看看实际容量多少。


思路:使用stm32的ADC测3Ω电阻的分压(3欧和2欧电阻串联),倒推电池电压、电流、容量等参数。每秒测一次电压,并滤波(我使用的是均值滤波,卡尔曼滤波效果也不错。也可以并联个100nF电容,让电压跳动小一点(后记:应该多个IO和ADC轮流重复采样再滤波)),推得电流后进行积分,求得电池容量为XXmAh,对电压电流乘积积分,求得电池容量为XXmWh,并使用oled显示数据,上位机接收数据导入excel绘图。


实现功能:

1、检测电池容量

2、低电压报警

3、低电压自动断电

4、数据直观显示

5、数据支持导出


过程中发现的问题:

问题一:倒推的电池电压和万用表测得电压不一致,相差10%左右。

解决过程&方法:一度怀疑是电阻内阻所致,偶然测量导线压降,达到惊人的0.3V(什么劣质导线),倒推出导线电阻,修正电压方程,得到更准确的电池电压。

问题二:测量电压时错误的串联43K电阻(下意识想着要限流,43K也是拍脑袋想出来的),导致测量值不准确。

解决过程&方法:但是是想着限流,防止烧了芯片,事实上这样做(或许)没有啥意义,还导致测量值不准(分掉了stm32的ADC的部分电压)。把外部串联进去的电阻去掉就好了,此时测得的电压值更准确。


工程文件:

attachment icon 电池容量检测.zip 6.54MB ZIP 253次下载

微信图片_20230102140623.jpg

微信图片_20230102140619.jpg 微信图片_20230102140612.jpg

[ 修改于2年1个月前 - 2024/09/14 09:28:03 ]
+5
科创币
虎哥
2023/01/02
新年好
3年10个月前IP:广东
913574
1楼

前三位回复有kcb(0.5-1)

引用
评论
3年10个月前IP:广东
913575
2楼

欢迎各位提建议和意见

引用
评论
3年10个月前IP:广东
913590
5楼
引用肖特基的救赎发表于4楼的内容
功率线用杜邦线显然不合适啊

这是自带的线,不是杜邦线,但铜芯是真的细

引用
评论(1)
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的