电池充电指示灯(Battery Monitor)

Charging Indicator for Battery (Battery Monitor)

我们今天在手机等所有电子设备中都看到了一个可视化的电池充电指示器,它是由条形图组成的图形容器,当电池长时间充电时,一条条增加,当手机使用时,一条条减少很长时间。 我在每个 GUI 操作系统中看到相同的笔记本电脑,如 windows 和 Linux。 我不确定我发帖的地方是否正确,因为这需要 系统程序员 电气工程师 。 我的问题的直观视图在这里:

http://gickr.com/results4/anim_eaccb534-1b58-ec74-697d-cd082c367a25.gif

很久很久以前我就在想,这是什么逻辑? 如何管理程序以监控电池。 我根据安培小时做了一个简单的逻辑,当电池处于充电模式时,条应该增加多少时间。???但这对我来说并不完美。 我还看了我炸的一个电池指示器Android应用程序源代码,但他使用的功能是基于Andriod内核(Linux内核)的系统调用。

我需要从头开始的东西.... 我需要知道这个逻辑......因为我正在做一个操作系统内核项目,稍后将需要电池充电监视器。

但是我现在要实现的是在控制台屏幕上只显示百分比。 请告诉我如何做....提前致谢

随着时间的推移对安培数进行积分并不是对电池表进行编码的可靠方法。请改用电压。

  1. 有关(近似)电压与充电水平的图表,请参阅电池数据表。

  2. 获取 CPU 的模拟输入。如果它是带有内置 ADC 的微控制器,那么希望这就足够了。

  3. 将参考电压(例如齐纳二极管)插入模拟输入。随着电源电压的降低,参考似乎会增加,因为 ADC 仅按比例测量电压。 CPU 可能包含一个内置参考电压发生器,您可以将其复用到 ADC,或者 ADC 可能始终相对于固定参考而不是轨到轨进行测量。有关详细信息,请参阅 ADC 手册(或微控制器手册的 ADC 部分)。

  4. 确保 ADC 提供足够的精度。

  5. 对电池电量进行采样,运行 一个简单的低通滤波器来消除噪音,例如 displayed_level = (displayed_level * 0.95) + (measured_level * 0.05)。 运行 通过近似函数将表观参考电压映射到充电水平。

  6. 显示电量。