使用stm32的ADC和电阻测量电池容量
全桥整流2023/01/02原创 秋名山最速传说 IP:广东
关键词
stm32电池容量检测

背景:手头上有七八块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 209次下载

微信图片_20230102140623.jpg

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

[修改于 3个月9天前 - 2024/09/14 09:28:03]

+5  科创币    虎哥    2023/01/02 新年好
来自:电子信息 / 电子技术综合交流区 / 极客DIY动手实践:实验报导
15
1
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
全桥整流 作者
1年11个月前 IP:广东
913574

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

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
全桥整流作者
1年11个月前 IP:广东
913575

欢迎各位提建议和意见

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
blki
1年11个月前 IP:河南
913576

占个位置(求kcb) sticker

+0.5
科创币
全桥整流
2023-01-02
😙
引用
评论(1)
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
肖特基的救赎
1年11个月前 IP:内蒙古
913585

功率线用杜邦线显然不合适啊

+0.5
科创币
全桥整流
2023-01-02
感谢回复
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
全桥整流作者
1年11个月前 IP:广东
913590
引用肖特基的救赎发表于4楼的内容
功率线用杜邦线显然不合适啊

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

引用
评论(1)
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
amo
1年11个月前 IP:广东
913598

四线制,开尔文接法

+0.5
科创币
全桥整流
2023-01-02
感谢提供思路
引用
评论
2
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
谁叫小明
1年11个月前 IP:广东
913604

个人感觉43k可有可无,adc接入本身就是高阻输入,只要不高于芯片承受电压一般来说不用怎么限流,而功率电阻只有那么几欧姆,43k一般来说并进去对阻值影响不大,倒是导线那小几欧姆串入影响更大。

电池内阻的话或许倒是会有那么些影响,可以测量无负载电压,和有负载电压,反推出内阻大小然后代回公式来消除这一误差,但是不同电池又有不一样的内阻,那每次测量都要去重新计算重新写入程序就很麻烦,看看能不能加个mos管来控制有无负载,然后自动测量内阻来消除误差。


+1
科创币
全桥整流
2023-01-02
明哥新年好
引用
评论(3)
2
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
谁叫小明
1年11个月前 IP:广东
913605

你这边测量容量是计算满电到没电时候的总体积分吗,这样会不会有点太耗时间,能不能只测量某一区间电压来反推?

引用
评论(1)
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
LSEQY
1年11个月前 IP:山东
913606

建议把杜邦线换一下😂本人买到过很多劣质杜邦线,加热焊接时容易融化松动。


引用
评论(1)
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
3926
1年11个月前 IP:广东
913650

直流内阻参考意义不大,之前在搞无人机电池的时候尝试过通过测量充电的直流内阻评估电池的SOH,后面发现直流内阻只能判断大概的衰减趋势,不能定量分析SOH,只有限定温度,和测量时的电池SOC一致才能稍微有些参考意义,当然了你可以考虑在温度一致的情况下测一下电池不同SOC情况下的阻抗图应该会有些意义


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
hellos
1年11个月前 IP:广东
913759

部分杜邦线的质量是真的差,有些时候的误差都来自这种线。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
Misaka_14920
1年11个月前 IP:广东
913829

可以在电池回路中把电阻改大一点,测一下0.1c放电的容量,这些大内阻电池在某些特殊对内阻不敏感的小电流输出场合可能有用。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
warmonkey
1年10个月前 修改于 1年10个月前 IP:广东
917248
引用谁叫小明发表于7楼的内容
个人感觉43k可有可无,adc接入本身就是高阻输入,只要不高于芯片承受电压一般来说不用怎么限流,而功...

ADC并不是高阻输入。ADC输入端一般是个采样保持器,对于delta-sigma是调制器,大约是个小电容。STM32内部是SAR-ADC,采集的一瞬间会吸取一点电流。示波器可以看到电压在采集时跌落。

简单来说,ADC输入是一个开关后面接个电容,应该并联电容或者是用运放驱动。


对于电池测试,强烈推荐用4线夹具。铜线的电阻值随温度改变,补偿不是很准确。

引用
评论(1)
5
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
spadger
1年9个月前 IP:陕西
917921

买个YR1035电池测试仪就好了,几百块钱搞定,还能测试小电阻。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
虎哥
1年2个月前 IP:四川
926494
引用谁叫小明发表于7楼的内容
个人感觉43k可有可无,adc接入本身就是高阻输入,只要不高于芯片承受电压一般来说不用怎么限流,而功...

翻到这个帖,想起来,KC761的ADC采样就对信号波形产生了明显的影响,下图中这些毛刺都是ADC引起的。

image.png

但这些毛刺并未对ADC的采样结果产生什么影响,它应该是ADC和峰值保持器共同作用的结果,峰值保持器在ADC采样瞬间努力让输出回正,可能响应没跟上ADC释放的速度而引起了这种毛刺。

引用
评论
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
全桥整流
进士 学者 机友 笔友
文章
27
回复
283
学术分
1
2020/01/26注册,16时21分前活动

秋名山最速传说!

主体类型:个人
所属领域:无
认证方式:身份证号
IP归属地:广东
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}