电池充电准确

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
4个职位/ 0个新
最后发表
匿名(未验证)
电池充电准确

嗨,对话框中,

我有一个问题,当我们给电池充电时,它会上升到显示100%电量,但它仍在充电,当我们拔掉usb(充电尚未完成)时,它显示低于100%电量。充电时是否有办法准确判断电池电量?我们正在使用adc的方法来获取电池百分比,使用SOC会有帮助吗?

设备:
LC_Dialog
离线
最后看到:2周4天前
工作人员
加入:2016-09-19 23:20
你好,穆,

你好,穆,

这可能有不同的因素,很难用已知的信息回答这个问题。
请指定电压、电流和电池规格的配置值。此外,什么是百分比值是下降到当你断开USB连接。

是的,SOC应该在获得电池测量方面提供更好的结果。注意,当使用SOC时,测量的频率应该以分钟为单位(比如2分钟),以便为SOCF驱动程序提供足够的时间来处理计算,因为秒的顺序不会有太大的变化。

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

BR,
信用证

穆(未验证)
你好,信用证,

你好,信用证,

感谢您的快速响应,以下是我的充电参数:
#定义dg_configBATTERY_TYPE (BATTERY_TYPE_CUSTOM)
#define dg_configBATTERY_CHARGE_VOLTAGE 0xA // 4.2V
#define dg_configBATTERY_TYPE_CUSTOM_ADC_VOLTAGE(3194)//定义电压
#define dg_configPRECHARGING_THRESHOLD (2462) // 3.006V .设置阈值
#define dg_configCHARGING_THRESHOLD (2498)//(2498) // 3.05V
#define dg_configBATTERY_CHARGE_CURRENT 3 // 45mA //4 // 60mA
#define dg_configBATTERY_PRECHARGE_CURRENT 20 // 2.1mA
#define dg_configBATTERY_CHARGE_NTC 1 //禁用
#define dg_configPRECHARGING_TIMEOUT (30 * 60 * 100)

我们的电池是一个3.7V标称和50mAh容量的LiPo电池。

我们使用以下代码来获取电池电量:
#define MAX_BATTERY_LEVEL 3800 //3800 mv
#定义MIN_BATTERY_LEVEL 2800 //2800mV

静态uint8_t bat_level(uint16_t voltage)

if (voltage >= MAX_BATTERY_LEVEL) {
返回100;
} else if (voltage <= MIN_BATTERY_LEVEL) {
返回0;

/*
*为演示目的放电(伏特vs容量)是近似值
一个线性函数。具体的公式取决于所使用的电池。
*/
return (uint8_t) (int) (voltage - MIN_BATTERY_LEVEL) * 100 /
(MAX_BATTERY_LEVEL - MIN_BATTERY_LEVEL));

uint16_t bat_voltage;
静态uint8_t read_battery_level(空白)

uint8_t水平;

Battery_source bat = ad_battery_open();
ad_battery = ad_battery_raw_to_mvolt(bat, ad_battery_read(bat));
水平= bat_level (bat_voltage);
ad_battery_close(蝙蝠);

回报水平;

在正常使用时,即没有充电时,电池的电量是足够准确的。但是当我们充电时,它并不显示电池充电的实际值。例如,它将到100%,但“charging_state”变量仍然是USB_CHARGING_ON,所以如果在这一点上我断开充电电缆;电池电量下降到89或90%。我的问题是,当充电_state== usb_charing_on时,是否有一种方法来获得电池水平的准确测量?

LC_Dialog
离线
最后看到:2周4天前
工作人员
加入:2016-09-19 23:20
你好,穆,

你好,穆,

感谢您解释用例。看起来,当充电器连接,电池充电,一般你会得到一个高电压(约50 mv)因为电池充电时不加载,停下来,你断开充电器,现在下降由于连接负载。在CV(恒压)阶段,充电电压接近充电电压。

不论情况如何,不建议用ADC测量电压来测量电池充电。此外,效率也会因电压与容量的关系而变化。使用SOC测量电荷更好,因为它使用columbus计数器来估计剩余电荷。这样可以更准确地记录充电器状态。

尝试与SOC执行电荷检测,如果您有任何进一步的问题或担忧,请让我们知道。作为参考,您可以查看实现SOC的pxp_reporter应用程序。

最好的
信用证