R语言 Yarn acm 存量客户 algorithm plot ip History.js Movejs sql数据库教学视频 jquery查找子元素 mysql当前时间减一天 excel动态图表制作 ab软启动器 matlab网页版 python图形化编程 java求和 java初级教程 java有哪些数据类型 java语言代码大全 java怎么配置 java集合类 kafka中文教程 customerrors alphacam 方正兰亭字体下载 firework下载 cubase下载 经典雅黑 男网红头像 模拟邻居 梦想世界科举答案 调试js 金水疑云 思源黑体 拍照姿势的摆法女 速查表 华为mate8和p9哪个好 冬青黑体简体中文 mysql退出命令
当前位置: 首页 > 学习教程  > 编程语言

电池电压值转换为百分比

2020/10/8 18:12:20 文章标签:

在开发嵌入式产品中,一般都会用到电池,同时也就可能需要指示电池的电量需求,有些品台自带的百分比算法比较粗糙,满电电压减去关机电压除以100%,这种计算不符合实际电池放电曲线,往往30%多开始就飞速往下掉了…

 在开发嵌入式产品中,一般都会用到电池,同时也就可能需要指示电池的电量需求,有些品台自带的百分比算法比较粗糙,满电电压减去关机电压除以100%,这种计算不符合实际电池放电曲线,往往30%多开始就飞速往下掉了。

这里举例用一个简单的算法,用积分方式,把电池放电曲线,按同等时间分成10等分,每等分看似一个固定斜率,参考代码如下:

#define ARRAY_DIM(a) (sizeof(a) / sizeof((a)[0]))
const static int Battery_Level_Percent_Table[11] = {3000, 3650, 3700, 3740, 3760, 3795, 3840, 3910, 3980, 4070, 4150};
int toPercentage(int voltage)
{
	int i = 0;
	if(voltage < 3000)
		return 0;

	for(i; i<ARRAY_DIM(Battery_Level_Percent_Table); i++){
		if(voltage < Battery_Level_Percent_Table[i])
			return i*10 - (10UL * (int)(Battery_Level_Percent_Table[i] - voltage)) / 
			(int)(Battery_Level_Percent_Table[i] - Battery_Level_Percent_Table[i-1]);;
	}

	return 100;
}

Battery_Level_Percent_Table中是电压的参考值,从0~100共11个点,以上电压值仅供参考,可根据实际项目需求修改合适的值。电压值的单位为mV。


本文链接: http://www.dtmao.cc/news_show_250013.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?