• 大小: 15KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-18
  • 语言: 其他
  • 标签: 单片机  

资源简介

单节干电池剩余电量检测百分比计算函数说明(如果是多节干电池,计算一节干电池的平均电压带入公式即可):通过检测电池两端电压,计算电池剩余电量百分比:

资源截图

代码片段和文件信息

/*********************************************************
 *文件名:  soc.c
 *日  期:  2018/7/24
 *描  述:  剩余电量百分比计算库函数
 *备  注:  
 **********************************************************/
 
#include “soc.h“


/***************************************************************
函数名:SOC_DryCell

描  述:剩余电量检测百分比计算函数
输入值:adc_value:ADC采集值
flag: 选择电池实际剩余电量计算和根据芯片最低工作电压计算剩余电量百分比,取值范围:0~1
0:计算电池实际剩余电量百分比
1:根据芯片最低工作电压计算剩余电量百分比(最低工作电压2.5V)
输出值:无
返回值:num:剩余电量百分比
 ***************************************************************/
 
unsigned short int SOC_DryCell(unsigned short int adc_valueunsigned char flag) //ADC采集值 adc_value  返回剩余电量百分比
{
  float sum = 0;
    unsigned char num=0;

sum = ADC_REFER_VOL/ADC_BIT_VALUE*adc_value;    //电压计算


if(flag)
{
if(2844<=adc_value) //条件数字为ADC采集数据值,范围1.25~~~1.5v
{
num = 392.16*sum - 488.24; //公式 y = 392.16x - 488.24
num = (num>=100)?100:num;
}
}
else
{    

if(1595<=adc_value&&adc_value<2297)   // 条件数字为ADC采集数据值,范围0.7~~~1.008v
{
num=44.286*sum*sum-10.706*sum-14.206; //   公式 y = 44.286x2-10.706x-14.206
}
else if(2297<=adc_value&&adc_value<2994)  // 条件数字为ADC采集数据值,范围1.008~~1.314v
{
num=13141*sum*sum-3752.7*sum*sum*sum-15022*sum+5653.6; //   公式 y = 13141x2-3752.7x3-15022x+5653.6
}
else if(2994<=adc_value&&adc_value<4096) // 条件数字为ADC采集数据值,范围>1.341V
{
num=53.763*sum+19.36;
num = (num>=100)?100:num; // 电池电压高于1.5V时,剩余电量100%   2844 - 4095 
}
}
return num;
}






 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1847  2018-08-29 14:26  soc.c

     文件       1225  2018-08-29 11:27  soc.h

     文件      16311  2018-08-29 14:10  剩余电量检测百分比计算函数说明.docx

----------- ---------  ---------- -----  ----

                19383                    3


评论

共有 条评论