前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >电池供电产品中电量采集及显示问题

电池供电产品中电量采集及显示问题

作者头像
用户2366192
发布2024-01-29 18:24:16
1460
发布2024-01-29 18:24:16
举报
文章被收录于专栏:TopSemic嵌入式TopSemic嵌入式

电池供电的电子产品不计其数,具有便携性好的优点,可以随时随地使用。但是有一个让用户非常焦虑的事情是电池续航问题。我们在使用电池供电的产品时,会关心当前电池还有多少电量、还能用多久。

我最近买了一个蓝牙耳机,选择它的一个重要原因就是它可以直观的显示电池电量,

如果本身没有显示,只能在电池电量低时收到语音提示,或者在电脑、手机上查看电量信息(蓝牙协议里有电池电量的服务,会将电量信息发给主设备),不如直接显示方便。

本文探讨和电池电量相关的2个技术问题:电量采集和电量显示。

一、电量采集

电池电量采集方法主要有两种:

1) 电压采集法:这种方法是基于电池电压与电量的关系来进行采集的。电池电压随着电量消耗而逐渐降低,因此可以通过采集电池电压来估算电量。电压采集法具有成本低、实现简单的优点,但其精度较差,尤其是在电池电量较低时。

电池的种类不同,电压和电量的关系也不同。

图片来源:https://www.powertechsystems.eu/home/tech-corner/lithium-ion-state-of-charge-soc-measurement/

上图可以看出,铅酸电池具有相对线性的曲线,可以很好地估计充电状态:然而,锂离子电池的放电曲线要平坦得多,这意味着在很宽的工作范围内,电池端子的电压变化非常小。

2)库仑计法:这种方法是基于电池电流累积来进行采集的。库仑计是一种电路,它能够累积通过其的电流。通过记录电流累积值,可以计算出电池消耗的电量。库仑计法具有精度高、可靠性好的优点,但其成本也较高,实现也更为复杂。

对于普通应用来说,使用第一种电压采集法即可,以4.2V锂电池为例,电池容量和电压关系大概如下,可根据电压估算出电池容量。

图片来源:https://siliconlightworks.com/li-ion-voltage

二、电量显示

假设电池电量使用如下图标进行显示,满格电量为4格

假设我们可以按照如下电压进行设置:

4.20V~3.90V满格

3.90V~3.80V三格

3.80V~3.72V两格

3.72V~3.65V一格

3.65以下,低电压告警。

代码里你可能会按照如下方式实现:

代码语言:javascript
复制
if(Vol >= 3.9)
  Disp(4);
else if(Vol >= 3.8)
  Disp(3);
else if(Vol >= 3.72)
  Disp(2);
else if(Vol >= 3.65)
  Disp(1);
else
  Disp(0);

这么写实际会有问题,会出现在临界值时出现电量格数来回跳变的问题。比如ADC测得电压时3.90V时显示满格,当测到3.89V时会就显示3格,下一时刻由于ADC采集误差或者本身电池电压波动就会测到3.90V,这时就又显示了满格,之后会再次出现3格。这样会让用户觉得紊乱,实际中不能这么用,需要改进。

改进的方法是加入回差控制:

代码语言:javascript
复制
if(Vol >= 3.9)
  Disp(4);
else if(vbat >= 3.8+0.02 && vbat < 3.9-0.02) 
  Disp(3);
else if(vbat >= 3.72+0.02 && vbat < 3.8)
  Disp(2);
else if(vbat >= 3.65+0.02 && vbat < 3.72)
  Disp(1);
else if(Vol < 3.65)
  Disp(0);
else
    ; // 不处理

这样就可以解决这个问题,原理也很简单,就是在跳变的区间内不做处理即可。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-26,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 TopSemic嵌入式 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com