电池充电精确的电池电量

⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
4个员额/0个新员额
最后一篇文章
匿名(未验证)
电池充电精确的电池电量

嗨,对话,

我有一个问题,当我们给电池充电时,它会显示100%的电池电量,但它仍在充电,当我们移除usb(充电尚未完成)时,它显示低于100%。充电时有没有办法准确确定电池电量?我们正在使用adc方法获取电池百分比,使用SOC会有帮助吗?

设备:
立法会对话
离线
最后一次见到:3个月1周前
工作人员
加入:2016-09-19 23:20
你好,穆塔希尔,

你好,穆塔希尔,

这可能有不同的因素,很难用给定的信息回答问题。
请指定电压、电流和电池规格的配置值。另外,当您断开USB连接时,它下降到的百分比值是多少。

是的,SOC应提供更好的电池测量结果。请注意,在使用SOC时,测量频率应为分钟(例如2分钟),以便为SOCF驱动器提供足够的时间来处理计算,因为秒数的变化不大。

为了更好地回答这个问题,请提供一些您当前实现的用于测量电池百分比的源代码示例。如果你有充电时间记录,那会很有帮助。

BR,
信用证

穆(未验证)
嗨,LC,

嗨,LC,

感谢您的快速响应,以下是我的充电参数:
#定义dg_configBATTERY_TYPE (BATTERY_TYPE_CUSTOM)
#定义dg配置电池充电电压0xA//4.2V
#定义dg配置电池类型自定义ADC电压(3194)//3.9v
#定义dg_配置预充电_阈值(2462)//3.006V
#定义dg_配置充电_阈值(2498)//(2498)//3.05V
#定义dg配置电池充电电流3//45mA//4//60mA
#定义dg配置电池预充电电流20//2.1mA
#定义dg\u配置电池\u充电\u NTC 1//已禁用
#define dg_configPRECHARGING_TIMEOUT (30 * 60 * 100)

我们的电池是额定电压为3.7V、容量为50mAh的LiPo电池。

我们正在使用以下代码来获取电池水平:
#定义最大电池电量3800//3800mV
#define MIN_BATTERY_LEVEL 2800 //2800mV

静态uint8电池电平(uint16电压)
{
如果(电压>=最大电池电量){
返回100;
}否则如果(电压<=最小电池电量){
返回0;
}

/*
*出于演示目的,放电(电压与容量)为近似值
*通过线性函数。确切的公式取决于所使用的特定电池。
*/
返回(uint8_t) ((int) (voltage - MIN_BATTERY_LEVEL) * 100 /
(最大电池电量-最小电池电量);
}
uint16电池电压;
静态uint8读取电池电量(无效)
{
uint8级;

电池\源电池=ad\电池\打开();
bat_电压=ad_电池_原始_至_mvolt(bat,ad_电池_读取(bat));
电平=电池电平(电池电压);
ad_电池_关闭(bat);

回报水平;
}

正常使用时,即未充电时,电池电量足够准确。但当我们充电时,它并没有显示电池充电的实际值。例如,它将变为100%,但“charging_state”变量仍然是USB_charging_ON,因此如果此时我断开充电电缆;电池电量降至89%或90%。我的问题是,当充电状态=USB充电打开时,有没有一种方法可以准确测量电池电量?

立法会对话
离线
最后一次见到:3个月1周前
工作人员
加入:2016-09-19 23:20
你好,穆塔希尔,

你好,穆塔希尔,

感谢您解释这个用例。看起来,当充电器连接且电池正在充电时,一般情况下,由于电池未加载,您将获得稍高的电压(例如约50mV),当充电停止且您断开充电器时,由于现在连接的负载,它会下降。此外,在CV(恒定电压)阶段,充电电压接近充电电压。

不管情况如何,不建议用ADC通过测量伏特来测量电池充电。此外,效率可以根据电压与容量的映射而变化。测量电荷最好是用SOC来完成,因为它使用科隆计数器来估计剩余电荷。这将更准确地记录充电器状态。

尝试使用SOC进行充电检测,如果您有任何其他问题或顾虑,请告知我们。作为参考,您可以查看pxp_reporter应用程序,其中实现了SOC。

最好的,
信用证