这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» DIY与开源设计» 电子DIY» DIY制作一个3.6V的锂电池容量检测仪

共5条 1/1 1 跳转至

DIY制作一个3.6V的锂电池容量检测仪

工程师
2020-05-30 23:44:11 打赏

DIY制作一个3.6V的锂电池容量检测仪


锂电池的种类繁多,手机、相机、数码等电子产品中随处可见。锂电池一般是标称电压为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
#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插座,这样随便找个手机充电器就可以用了,比较方便些。



将数码管安上效果。


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




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


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





关键词: AT89C2051 锂电池 容量 检测仪 电池

工程师
2020-06-02 15:50:36 打赏
2楼

现在电池容量虚标的问题,确实很普遍!有了这个神器“假货或者不合格的电池”,统统现原形!


工程师
2020-06-02 15:57:27 打赏
3楼

求电路图清晰照片,本人新手,不是特别看得懂。


工程师
2020-06-02 16:03:14 打赏
4楼

看原理图,放电电流无法达到600ma吧?


高工
2020-06-14 09:24:55 打赏
5楼

学到了


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]