首页 » 家电维修 » 油烟机维修 » 单片机怎么检测电量的「单片机怎么检测电量的大小」

单片机怎么检测电量的「单片机怎么检测电量的大小」

admin 2024-09-14 07:02:11 油烟机维修 0

扫一扫用手机浏览

大家好,今天小编关注到一个比较有意思的话题,就是关于单片机怎么检测电量的的问题,于是小编就整理了2个相关介绍单片机怎么检测电量的的解答,让我们一起看看吧。

如何用单片机制作锂电池充放电?

单片机怎么检测电量的

你先要明白充电的过程和放电的过程。锂电池放电,就是把锂电池正负极接到一电阻,通过这样,把电能耗完。锂电池充电就是把锂电池接到电源上,正负极要接对,进行充电。

你要控制的锂电池充放电电路,就是控制这两种状态的切换,电路有很多,但都是这个原理。

比较简单的一种,就是通过单片机的继电器来控制电路开关的切换,相当于一个单刀双振开关。

程序就当然就更好弄了,就是个开关输出,当然要设计时间参数,充电需要时间,放电也需要时间。

如果是稍复杂的电路,就要对电量进行不断的采集,电量为零放电结合,电量满,充电结束。

单片机用锂电池供电,如何较为准确的监控实时电池电量?

这个问题,我从锂电池组PACK跟BMS结合起来的经验来跟大家解答一下吧。

单片机怎么检测电量的

首先,单片机监控电池的实时电量,如果仅仅通过监控锂电池的电压来监控锂电池的实时电量是不够准确的,可以说误差会特别大。这就是我们常说的SOC(剩余电量)的问题,因为大家都知道,锂电池在充电或者放电的时候,电压是一直在波动的,电流越大,波动就会越大。三元锂电池的电压平台是3.6V,磷酸铁锂电池的电压平台是3.2V。

锂电池在各自的平台电压上是比较平稳的,特别是磷酸铁锂电池,它的工作电压范围是2.5V~3.65V,但是它的80%的电量都集中在了3.1V~3.3V之间。所以,锂电池,如果单片机采用的是监控电压的方式来显示它的实时电量的话,基本上算是个摆设了,只能做参考,意义不大。

那要如何来监控电池的实时电量呢?

单片机在锂电池软件保护板(也叫BMS)里面,我们叫电量计IC,它需要用库仑计+电压修正算法的方式来监控电池的实时电量,才会比较准确。也是比较准确而已,一般误差会在5%左右。为什么还有5%左右的误差呢?后面讲讲。先说这个库仑计+电压修正算法的方式是个怎么回事。

库仑计,就是电流乘以时间。

电池处于放电状态时,剩余电量(以下称SOC)=当前SOC-放电电流放电时间;

电池处于充电状态时,SOC=当前SOC+充电电流充电时间。

这种方式,可以说比电压监控的方式强百倍,因为这样的实时SOC才是更为准确的,不管电池是在充电还是在放电,SOC不会因为电压波动的问题,出现特别大的误差。

单片机怎么检测电量的

都这么准确了,为什么说还有5%左右的误差呢?

这个就是要考虑到锂电池组PACK在实际使用中的情况了,因为库仑计只是在单片机监控到锂电池充电放电电流的时候才能计算到SOC的变化,也就是说如果锂电池组出现单片机无法监控到的电流时,SOC的库仑计方法将会忽视掉,如果时间长,积小成多,SOC就会误差越来越大。

什么是单片机无法监控到的电流呢?

比如瞬间的脉冲电流,由于脉冲持续的时间特别短,单片机无法捕捉到;还有锂电池特别小电流充电放电时,单片机也无法捕捉到;还有锂电池组电芯的自耗电,BMS本身的自耗电等等,这些都是BMS单片机无法捕捉到的电流,无法捕捉,就无法计算了。

BMS内部也有SOC校准机制。

锂电池组使用,需要触发BMS中的SOC校准条件的时候,SOC就会再次进行校准。SOC自动校准条件一般是:锂电池组过充保护时,或者过放保护时。

锂电池组触发BMS过充保护时,SOC恢复默认电量为100%;

锂电池组触发BMS过放保护时,SOC恢复默认电量为0%。

如果锂电池组在终端的实际使用中,无法做到触发BMS的过充保护跟过放保护呢?SOC无法校准,那SOC的误差不是越来越大?

所以,BMS单片机需要加入电压修正算法的方式来辅助SOC的校准。

电压修正算法,就是根据锂电池组在实际充放电的过程中,采集电量与电压的对应点,经过算法的方式保存起来,当BMS软件识别发现当前SOC数值与电压对应偏差很大时,BMS软件会根据算法再次对SOC进行校准。这样就实现了就算终端用户无法经过过充过放保护来校准SOC,BMS也可以通过电压修正的方式来调整SOC的显示。

当然,电压修正算法的方案特别多,不同的BMS厂家,算法也各有不同,上面讲的是大致的算法方式,给各位做参考。

通过这种库仑计+电压修正算法的方式,还是比较准确的。会让实时电量SOC控制在5%左右的误差。

以上,就是单片机用锂电池供电,较为准确的监控实时电池电量的方式了。

希望可以帮到大家。

如果单纯使用adc检测电池电压,那是肯定测不准的,锂电有个特性,就是电量越用越低,比如1s锂电的标准电压为3.7v,电量充足的时候大概是4v左右,这里就有0.3v的差值,如果使用的ldo芯片质量一般,那它的输出会大打折扣,比如3.3v稳压芯片在锂电电量耗尽时(3.4-3.7v)最后输出可能是2v多,这就导致单片机的基准也随之下降,adc测量出来就不准。

这里推荐答主使用一个基准芯片(几毛到几块钱不等,成本较低),有2.5v,也有2.0v的,将它得输入接到adc的基准电压输入脚,这样就可以避免系统电压下降导致adc采集不准确的问题了。

在电压检测准确的前提下,再去对电池做放电特性的分析,得出放电曲线,然后去校准你的电池电量百分百比。

单片机可通过ADC检测电压来监控电池电量

我们一般通过检测电压来判断锂电池的电量。单节锂电池标称电压为3.7V,充满电压为4.2V。电压大于等于4.2V我们认为电量为100%,电池电压等于3.82V时认为电量为50%,电池电压小于等于3.0V时认为电量为0%。当然不同的锂电池是有差异的,需要根据锂电池的规格来定。

单片机怎么检测电量的

要监测电池电量就离不开ADC,如果单片机本身有ADC就简单了,没有ADC的话可以外置一个ADC芯片。

锂电池电压测量电路设计

首先,需要设计一个用于测量锂电池电压的分压电路,为了省电,我们可以设计一个带开关的电路,在需要测量电压的时候再给分压电阻供电,如下图,当EN_CHK_V为低电平时,Q3截止,关断分压电阻的供电;需要测量电池电压时,EN_CHK_V设置为高电平,Q3导通,单片机的ADC通道(CHK_V)就可以检测电压了。

单片机怎么检测电量的

大家可能问,为什么要分压呢?为什么不直接测量电池的电压?这与单片机的参考电压有关系,不分压的话,电池电压高于参考电压就没法测量了,大家继续往下看就明白了。

ADC检测电压,需要有一个参考电压基准或者参照电压

任何测量,都需要有一个参照或者参考,ADC测量电压也不例外。假如参考电压为2.5V,那么ADC测出满量程就是2.5V了。因为锂电池的电压在3.0V~4.2V间变化的,所以比较适合用LDO或者TL431设计一个2.5V的参考电压。锂电池的电压经过上面的分压电路后,最大测量值就不会超过2.5V这个参考电压了。

单片机怎么检测电量的

如果单片机的ADC是12bit,那么满量程为0xFFF(4095)=2.5V,电压计算如下:

  • 0xFFF / AD值 = 2.5/V
  • V = (2.5 x AD值) / 0xFFF

当然这个测量出来的电压值是经过电阻分压的,大家还需要按分压比例算出真正的电池电压值,得到锂电池的电压值,就可以按照电量与电压的对应关系,计算得到锂电池的电量。

单片机怎么检测电量的

如果单片机内部有参照电压,就更为简单的。以STM32系列的单片机为例,STM32的内部有一个参照电压VREFINT,相当于一个标准电压测量点,它和ADCx_IN17连接,这个参考电照与参考电压是不一样的哦。有了这个参照电压,即使锂电池的电压发生变化,也可以通过参照电压计算出真实的电压值,在测量锂电池电压值之前,我们需要先读出参照电压的ADC测量数值,记为ADrefint,再去读出锂电池电压ADC数值,记为ADchx,则要测量的电压为:

  • Vchx = Vrefint (ADchx/ADrefint)
  • 其中ADrefint是固定值,需要查看对应单片机的规格书。

如果你用的是STM32有单片机,可以去了解一下内部参照电压的使用哦。

欢迎关注@电子产品设计方案,一起享受分享与学习的乐趣!关注我,成为朋友,一起交流一起学习

  • 记得点赞和评论哦!非常感谢!

到此,以上就是小编对于单片机怎么检测电量的的问题就介绍到这了,希望介绍关于单片机怎么检测电量的的2点解答对大家有用。

相关文章