AD检测锂电池电量

[复制链接]
2283|7
 楼主| pidan678 发表于 2015-1-19 18:09 | 显示全部楼层 |阅读模式
如题,10位AD (只用了8位) 锂电电量用四个LED灯来表示
单片机 STM8S003
VREF=5V (78L05输出)
锂电应该在3.0到4.2之间  用四LED表示电量(>3.8V全亮,>3.6&&<3.7亮三个……)
现在问题是  在临界点时  LED会闪

比如adtemp==205时,采样值总是205上下跳变


一般AD值  应该做什么处理  除抖动



int main(void)
{
....
  while (1)
  {
adtemp=采样值;
....
adtemp取过10次,求平均
         if(adtemp>=205)
            {
....   
            }
       if(180<=adtemp<=196)
            {
....        
            }
       if(adtemp<188)
            {
...           
            }

         
  }
}
宋业科 发表于 2015-1-20 08:05 | 显示全部楼层
检测要有回差的。
 楼主| pidan678 发表于 2015-1-20 08:20 | 显示全部楼层
宋业科 发表于 2015-1-20 08:05
检测要有回差的。

怎么处理?
 楼主| pidan678 发表于 2015-1-20 10:32 | 显示全部楼层
dragon_hn 发表于 2015-1-20 11:02 | 显示全部楼层
参考斯密特触发器.
玄德 发表于 2015-1-20 12:24 | 显示全部楼层

高于100就亮(或灭),低于80再灭(或亮)。
huayuliang 发表于 2015-1-20 20:00 | 显示全部楼层
其实就是软件实现滞回比较器(施密特触发器)。
benbpig 发表于 2015-4-21 15:19 | 显示全部楼层
果然有人用003做这个,楼主你的原理图能不能共享下?非常感谢!另外你的的基准源是怎么弄的?003是不是只能用电源电压作为基准源?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

223

主题

404

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部