锂电池
锂电池电压与电量关系表如下
剩余电量% | 标准锂电池 | 两节锂电池 | 三节锂电池 | 大电流恒流 |
---|---|---|---|---|
100% | 4.20V | 8.40V | 12.60V | 4.20V |
90% | 4.06V | 8.12V | 12.18V | 3.97V |
80% | 3.98V | 7.96V | 11.94V | 3.87V |
70% | 3.92V | 7.84V | 11.76V | 3.79V |
60% | 3.87V | 7.74V | 11.61V | 3.73V |
50% | 3.82V | 7.64V | 11.46V | 3.68V |
40% | 3.79V | 7.58V | 11.37V | 3.65V |
30% | 3.77V | 7.54V | 11.31V | 3.62V |
20% | 3.74V | 7.48V | 11.22V | 3.58V |
10% | 3.64V | 7.28V | 10.92V | 3.51V |
5% | 3.45V | 6.90V | 10.35V | 3.42V |
0% | 3.00V | 6.00V | 9.00V | 3.00V |
干电池
干电池电压与电量关系如下。注意:不同干电池之间差异很大,此表仅供参考。
电量(%) | 电压(V) | 电量(%) | 电压(V) |
---|---|---|---|
100% | 1.5000V | 50% | 1.1488V |
90% | 1.3155V | 40% | 1.1185V |
80% | 1.2530V | 30% | 1.0808V |
70% | 1.2140V | 20% | 1.0095V |
60% | 1.1830V | 10% | 0.8717V |
干电池电量可以通过以下代码获取
/*********************************************************************************************************
* 函数名称:GetBatteryRemainQuantity
* 函数功能:计算干电池剩余电量
* 输入参数:curVolt:当前电压值,单位是V
* 输出参数:void
* 返 回 值:剩余电量百分比
* 创建日期:2022年10月29日
* 注 意:
* 1、只适用于干电池,电压为1.5V时电量100%,电压为0.7V时电量为0%
* 2、x = [1.500, 1.47, 1.45, 1.4, 1.315, 1.253, 1.214, 1.183, 1.148, 1.118, 1.080, 1.009, 0.871, 0.7]
* 3、y = [100, 98, 97, 96, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0]
* 4、多项式拟合次数:5
*********************************************************************************************************/
u8 GetBatteryRemainQuantity(f32 curVolt)
{
//按照多项式拟合系数,降幂排序
const f32 s_arrCoe[] = { 8145.94715458473, -46603.4683489303, 104277.519717189, -113828.342267199, 60649.4212182337, -12625.5831842004 };
//局部变量
i8 i; //循环变量
f32 remain; //剩余电量
f32 x; //自变量
//电压过高或过低
if (curVolt >= 1.5) { return 100; }
if (curVolt <= 0.7) { return 0; }
//计算剩余电量
remain = 0;
x = 1;
for (i = (sizeof(s_arrCoe) / sizeof(float)) - 1; i >= 0; i--)
{
remain = remain + s_arrCoe[i] * x;
x = x * curVolt;
}
//结果校验
if (remain >= 100) { remain = 100; }
if (remain <= 0) { remain = 0; }
//返回剩余电量,四舍五入
return (int)(remain + 0.5);
}