找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 58700|回复: 29
打印 上一主题 下一主题
收起左侧

【DIY】自制锂电池容量测试仪

  [复制链接]
跳转到指定楼层
楼主

        锂电池的种类繁多,手机、相机、数码等电子产品中随处可见。锂电池一般是标称电压为3.6V左右,电池容量更是五花八门。电池容量是一个电池续航能力的重要参数,往往现在市场上买的锂电池(特别是一些高仿和山寨),都或多或少有虚标容量的现象来得以高利润的欺诈。
        现以18650电池为实例DIY制作一个3.6V锂电池容量检测仪,该检测仪不敢说非常准确,但是可以从客观事实上反应出被测锂电池的放电能力和大致容量。
        为简化电路采用的LM317三端稳压组成恒流放电电路,LM358运放
作为电压比较强来判断电池电压,通过AT89C2051单片机定时器统计放电时间,并自动转换为容量通过数码管显示出来,并且可以通过开关来切换放电速度,实现以每小时600mA或每小时240mA的不同速率放电。满足不同容量电池不同场合的使用。一般来说充满电的锂电池电压为4.2V左右,当电池放电到3v时(该放电值可以通过调节电位器适当调整)自动断开放电电路,切换到充电电路。在本制作中关心的是电池容量,故而未对充电电路作出过多电路考虑,只是一个简单的限流,建议对电池充电还是拿到专门的充电器上充电为宜。

电路图仿真图

单片机源程序如下:

//AT89C2051单片机,12M晶振
//lm317恒流放电注意散热,可以通过更改低1脚和第2脚之间的电阻来调节放电电流,公式为1.2v除以恒流值等于一二脚之间的电阻,比如恒流1200ma放电,1.2v/1.2A=1欧.2400ma放电就是1.2v/2.4A=0.5欧大电流放电对小容量电池有损害,不建议使用,恒流值须配合程序使用。不能随意设置。
  #include<reg51.h>
  #define uint unsigned int
  unsigned char int_time;
  unsigned int s,m,ma;

  sbit led0=P3^2;//第1个数码管
  sbit led1=P3^3;//第2个数码管
  sbit led2=P3^4;//第3个数码管
  sbit led3=P3^5;//第4个数码管
  sbit jiance=P3^0;//j启动检测
  sbit gz=P3^7;//工作指示灯
  sbit qiehuan=P3^1;//放电电流切换
// sbit key=P3^6;
  unsigned char Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳极的段码
  void delay(uint z)//延时程序
{
    uint x,y;
    for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}
  void interserve(void)interrupt 1 using 1//定时器中断
  {   
      int_time++;
    if(int_time==20)
    {
        int_time=0;
        s++;
        
    }
    if(qiehuan==0)//以240ma电流放电
    {
     if(s==15)//计算方法是60/(240/60)=3
    {
        s=0;
        ma++;
    }
     }
     if(qiehuan==1)//以600ma电流放电
    {
     if(s==6)//计算方法是60/(600/60)=3
    {
        s=0;
        ma++;
    }
     }
/*     if(key==0)
    {
    delay(10);
    if(key==0)
    m++;
    }     */
     //  ma=m*2;
   
     
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
  }

      void display()//显示程序
    {
    led0=led1=led2=led3=1;
        P1=Tab[(ma%10000)/1000];
    led0=0;

    delay(2);
    led0=led1=led2=led3=1;
    P1=Tab[(ma%1000)/100];
    led1=0;

    delay(2);
    led0=led1=led2=led3=1;
    P1=Tab[(ma%100)/10];
    led2=0;

    delay(2);
    led0=led1=led2=led3=1;
    P1=Tab[ma%10];
    led3=0;
    delay(2);  
    led0=led1=led2=led3=1;
    P1=Tab[(ma%100)/10];
    led0=led1=led2=led3=1;
    delay(2);      
    }

   
  void main(void)//主程序
  {

   TMOD=0X01;
   
    ET0=1;

    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    TR0=1;
    int_time=0;
    s=0;

   
    while(1)

           {

        if (jiance==0)
        EA=1;     
           display();
        if (jiance==1)
        EA=0;
        if(s%2&jiance==0)
          gz=0;
        delay(10);
        gz=1;
         }   
   
    }
   


所有的元器件在实验洞洞板上布局并焊接好。




走线尽可能的利用就近原则,本例中使用焊锡堆焊连线将电源正负极的主干联通。焊接中尽量考虑到减少飞线。为了方便使用,电路中将继电器更换成了5V继电器,电源插头使用了手机上用的MINIUSB插座,这样随便找个手机充电器就可以用了,比较方便些。


将数码管安上效果。
<span>

该模块直接使用电池电源,为了不影响容量测试,只有在按下电压检测按钮时才显示,平时是不显示的。



按下启动按钮,继电器吸合开始放电测试。


放电完毕,检测出其中一只18650电池虚标严重,标3800MAH,实际测量只有1127mah左右。






                                                                                            

评分

参与人数 2黑币 +15 收起 理由
qjzyx + 5 赞一个!
tieq1952 + 10 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏17 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:11498 发表于 2015-6-15 16:26 | 只看该作者
顶一下,求电路图清晰照片,本人新手,不是特别看得懂。
回复

使用道具 举报

板凳
ID:100841 发表于 2015-12-28 13:54 | 只看该作者
这个测得准不?
回复

使用道具 举报

地板
ID:51443 发表于 2016-4-15 09:07 | 只看该作者
看原理图,放电电流无法达到600ma吧?
回复

使用道具 举报

5#
ID:110782 发表于 2016-4-23 18:37 | 只看该作者
本帖最后由 hfghf 于 2016-4-23 20:15 编辑

用89C2051程序加载的不全    只能用大容量的89C4051或89s51代替了

QQ截图20160423183404.jpg (4.42 KB, 下载次数: 237)

QQ截图20160423183404.jpg
回复

使用道具 举报

6#
ID:110782 发表于 2016-4-26 20:59 | 只看该作者
本帖最后由 hfghf 于 2016-4-26 21:07 编辑
xuehai0405 发表于 2015-6-15 16:26
顶一下,求电路图清晰照片,本人新手,不是特别看得懂。

程序好像有点大89C2051好像无法写入程序   我用的是89C4051   晶振的谐振电容也不知道选择的对不对   虚线内的可以不用  电路没用被测量电池供电 没增加充电电阻     用的是12V供电 12V继电器    12V经过7805稳压5V给电路供电  测量电阻没用那么多合适的   没使用240MA放电测试 只保留了600MA放电测试   没想改变程序就没根据手里有的电阻计算电流    测量结果不知道准不准   

QQ截图20160426204702.jpg (197.93 KB, 下载次数: 193)

QQ截图20160426204702.jpg

评分

参与人数 1黑币 +5 收起 理由
qjzyx + 5 赞一个!

查看全部评分

回复

使用道具 举报

7#
ID:113984 发表于 2016-5-11 09:31 | 只看该作者
楼主,可以上传下里的原理数据吗,我做的是铅酸蓄电池容量检测设计,想要你原理图里容量检测的数据。。。。。3q
回复

使用道具 举报

8#
ID:47634 发表于 2016-7-24 08:01 | 只看该作者
做工不错,学习了
回复

使用道具 举报

9#
ID:138155 发表于 2016-9-1 13:47 | 只看该作者
不错俺学习了
回复

使用道具 举报

10#
ID:99130 发表于 2016-11-10 21:27 | 只看该作者
LM317的3脚到底是接的哪???还有就是RL1的参数。麻烦楼主说明
回复

使用道具 举报

11#
ID:99130 发表于 2016-11-10 21:38 | 只看该作者
楼主 你这到底是要电源还是不要???前后矛盾。程序也不能完全用。原理图不清楚。解释一下吧
回复

使用道具 举报

12#
ID:191450 发表于 2017-5-6 13:42 | 只看该作者

 这个测得准不
回复

使用道具 举报

13#
ID:102702 发表于 2017-5-6 21:15 | 只看该作者
楼主能重发一下原理图吗?这个图看不清哦
回复

使用道具 举报

14#
ID:200469 发表于 2017-7-9 15:53 | 只看该作者
求图纸 !
回复

使用道具 举报

15#
ID:112693 发表于 2017-7-9 17:45 | 只看该作者
好东西,谢谢分享!!!
回复

使用道具 举报

16#
ID:127462 发表于 2017-8-27 21:24 | 只看该作者
学习学习,学习一下,谢谢
回复

使用道具 举报

17#
ID:250631 发表于 2017-11-21 11:28 | 只看该作者
楼主动手能力不错,是个技术模范。
回复

使用道具 举报

18#
ID:253767 发表于 2017-12-21 15:04 | 只看该作者
还是拿来主义,直接引用了
回复

使用道具 举报

19#
ID:277063 发表于 2018-1-17 16:51 | 只看该作者
厉害!最近想做一个这方面的都不知道怎么下手
回复

使用道具 举报

20#
ID:272625 发表于 2018-1-25 01:57 | 只看该作者
电路从电池上耗电,怎么可能测得准!玩具…
回复

使用道具 举报

21#
ID:229361 发表于 2018-1-26 00:26 | 只看该作者

学习学习,学习一下,谢谢
回复

使用道具 举报

22#
ID:65956 发表于 2018-11-21 08:43 | 只看该作者
这种电池本来就很难作到,超过2600的都是虚标的,假的
回复

使用道具 举报

23#
ID:191195 发表于 2018-11-21 11:11 | 只看该作者
18650业界最高水准也就是3400左右,不用测也知道是虚标
回复

使用道具 举报

24#
ID:415539 发表于 2019-8-9 22:13 | 只看该作者
顶一下,求电路图清晰照片
回复

使用道具 举报

25#
ID:67838 发表于 2019-8-18 20:33 | 只看该作者
不错俺学习了
回复

使用道具 举报

26#
ID:746837 发表于 2020-5-8 13:28 | 只看该作者
楼主请求看看仿真效果图,3q啦
回复

使用道具 举报

27#
ID:137736 发表于 2020-5-8 18:28 来自手机 | 只看该作者
还可以再改进,89C2051内部有比较器,可以代替358。
回复

使用道具 举报

28#
ID:558859 发表于 2020-5-13 18:18 | 只看该作者
收藏学习,顺便问楼主如何给AT89c2051下载资料呀,麻烦教教
回复

使用道具 举报

29#
ID:305511 发表于 2020-5-30 14:17 | 只看该作者
挺好的想法 ,谢谢分享了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表