本发明涉及电池参数采集技术领域,尤其涉及一种电池电量采集方法。
背景技术:
目前,在使用电池的产品上,通常使用电量计来获取电池电量的精确数值。而由于电量计的成本较高,还有一些低成本的产品上,还会通过采集电池的电压来获取电量的形式,比如,在使用锂电池的嵌入式移动支付终端上,但是,这种方法,由于是利用经验直接通过采集到的电压估计电量,所以,采集到的电池电量的数值通常都不准确,从而影响产品的精确使用。
技术实现要素:
本发明的目的在于提供一种电池电量采集方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种电池电量采集方法,包括如下步骤:
S1,判断打印设备是否正在打印,如果否,则定时采集电压值,否则,结束;
S2,获取当前采集电压值,以及与当前采集电压的采集时间最近的三个电压值,在该四个电压值中,获取相邻两次电压值的差值;
S3,将得到的所有差值按权重相加,得出校正值;
S4,判断所述校正值是否大于零,如果是,则用所述当前采集电压值减去所述校正值,得到当前电压值;若所述校正值是负数,则用所述当前采集电压值加上所述校正值的绝对值,得到当前电压值;
S5,利用电池的充放电曲线上电压和电量之间的关系,根据所述当前电压值获取电池电量。
优选地,S1之前,还包括步骤,检测电池、外电的在位情况,如果电池在位,则执行S1,如果外电在位,则切断外电后再执行S1。
优选地,所述检测电池、外电的在位情况,按照如下方法进行实施:
当电池或外电在位时,电路上对应的IO口为高电平,否则为低电平。
优选地,S1中,所述定时采集电压值,具体为每5秒钟采集一次电压值。
优选地,S1中,所述电压值通过CPU内部的模数转换器进行采集。