电池充电准确无误

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

嗨,对话框中,

我有一个问题,当我们充电时,它会上升到显示100%的电池水平,但它仍在充电,当我们移开usb(充电尚未完成),它显示低于100%。有没有一种方法可以准确地确定充电时的电池电量?我们正在使用adc方法来获取电池百分比,使用SOC会有帮助吗?

设备:
LC_Dialog
离线
最后看到:3个月1个星期前
工作人员
加入:2016-09-19 23:20
你好,穆,

你好,穆,

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

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

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

布罗尔,
信用证

Mutahir(未经验证)
你好,信用证,

你好,信用证,

感谢您的快速响应,以下是我的充电参数:
#define dg_configbattery_type(battery_type_custom)
#define dg_configBATTERY_CHARGE_VOLTAGE 0xA // 4.2V . define dg_configBATTERY_CHARGE_VOLTAGE
#define dg_configBATTERY_TYPE_CUSTOM_ADC_VOLTAGE (3194)// 3.9v
#define dg_configPRECHARGING_THRESHOLD (2462) // 3.006V . define dg_configPRECHARGING_THRESHOLD (2462) //
#define dg_configCHARGING_THRESHOLD (2498)//(2498) // 3.05V . define dg_configCHARGING_THRESHOLD (2498)//
#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
#define min_battery_level 2800 // 2800mv

Static uint8_t bat_level(uint16_t电压)

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

/ *
*为演示目的,放电(伏特vs容量)是近似的
*由一个线性函数。确切的配方取决于使用的具体电池。
*/
返回(UINT8_T)((int)(电压 - min_battery_level)* 100 /
(MAX_BATTERY_LEVEL - MIN_BATTERY_LEVEL));

uint16_t bat_voltage;
静态uint8_t read_battery_level(空白)

uint8_t水平;

bat = ad_battery_open();
Bat_voltage = 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%。我的问题是有一种方法得到一个准确的测量电池水平时,充电状态==USB_CHARGING_ON?

LC_Dialog
离线
最后看到:3个月1个星期前
工作人员
加入:2016-09-19 23:20
你好,穆,

你好,穆,

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

无论情况如何,建议不要通过测量伏特来测量ADC的电池电量。此外,效率可能因容量映射伏特而异。由于它使用Coloumb计数器来估计剩余充电,因此测量充电更好地完成。记录充电器状态时,这将更加准确。

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

最好的
信用证