找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 15512|回复: 7
打印 上一主题 下一主题
收起左侧

STM32单片机如何实现电池电量的实时显示

[复制链接]
跳转到指定楼层
楼主
各位大佬,在下有一个问题,就是如何用单片机STM32做一个电池电量的实时显示,类似于手机上面那个电量显示条一样。各位有什么好的设计方案吗?还望各位不吝赐教。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:98195 发表于 2019-10-26 07:28 来自手机 | 只看该作者
我的思路是用电池的当前电压比上一个数,然后A/D转换,I/O口检测显示
回复

使用道具 举报

板凳
ID:609400 发表于 2019-10-26 08:43 | 只看该作者
楼上基本正解,开机时检测多个新电池电压值,求其平均值作为电池总量,(也可以不检测,直接设一个电压总值)。检测获取的电池总值精准一些,不检测略差。检测完成后,此段程序要屏掉。
主程序:设定每隔一段时间检测电池电压值,并将检测值与电压总值比较,然后送显即可!
回复

使用道具 举报

地板
ID:401564 发表于 2019-10-26 10:24 | 只看该作者
电量并不等于电压,如果你要显示电压就直接ADC显示就可以了
但如果是电量的话,就不是单单的显示电压比而已了,特别是锂电池
有一种算法好像是叫积分算法之类,乱得很,看不明白,文化太低
手机和大多的实际应用,包括电动车之类的,一般都是用库仑计IC,对充电的放电进行比例运算来显示电量的,像DS2784就是一个库仑计,你看一下它的数据手册就知道了
回复

使用道具 举报

5#
ID:609400 发表于 2019-10-27 08:14 | 只看该作者
楼上提醒的对,确实电量并不等于电压,复杂精确的做法就如同楼上的解释。
但是简单一点,我想还是可以用电压进行估算的,百度了一下,可以参考:
锂电池4.2v 剩100%;3.8v 剩70%左右;3.6v 剩30%左右,好一点的10%-20%;
楼主可以做个实验,近乎完全放电后,测一下电压,如3.5v,作为显示电量0%,这样4.2v与3.5v对应的就是100%-0%了。
回复

使用道具 举报

6#
ID:290583 发表于 2019-10-27 20:59 | 只看该作者
大体思路还是AD检测,关键是AD检测回来的值怎样和电压对应起来。如果要求不高的话可以近似把电压值和AD值看成是线性的关系。要求高一点的话可以用电池管理芯片,TB上很多,你只需要不停读取芯片反馈回来的数值即可,这样精度高很多,一般精度都在0.05V。
回复

使用道具 举报

7#
ID:687759 发表于 2021-7-6 13:09 | 只看该作者
本帖最后由 余金渠 于 2021-7-6 13:11 编辑

C:\Users\余金浚\Downloads\43AXRZ)A0FM`HB6VNDU%5BSB1.png
正如这张图所示
电池电量与电压的关系可以分为3个界段
下面是3个阶段的函数
设电池电量为y(%)电压为x
当电池电压大于3.8v小于4.2v时;
70 = 3.8k+b
100 = 4.2k+b
k = 75
b =-215
y = 75x-215
当电池电压大于3.6V小于3.8V时;
70 = 3.8k+b
25 = 3.6k +b
k = 225
b = -785
y =225x-785
当电池电压大于3.2V小于3.6V时;
25 = 3.6k+b
0   = 3.2k+b
k =62.5
b =-200
y =62.5k-200
就如楼上所说简单的电压对应电量是不准的只不过我这种可以降电压更准确的对应电量

43AXRZ)A0FM`HB6VNDU[SB1.png (28.58 KB, 下载次数: 74)

43AXRZ)A0FM`HB6VNDU[SB1.png
回复

使用道具 举报

8#
ID:1063617 发表于 2023-3-1 13:54 | 只看该作者
有推荐的AD芯片吗
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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