你的位置:首頁 > 電源管理 > 正文

充電電池容量測試儀實(shí)現(xiàn)方案

發(fā)布時(shí)間:2012-02-03

中心議題: 解決方案:
  • 電池容量測試儀采用89S51作為控制芯片
  • 采用三極管進(jìn)行控制

電池容量是衡量電池質(zhì)量的重要指標(biāo)。充電電池的容量測試有很多的方法??梢砸罁?jù)電池的放電曲線,進(jìn)行短時(shí)間放電,從而粗略得出電池容量。這種方法最大的優(yōu)點(diǎn)是快速,但是充電電池的放電曲線并不具有普遍性,很多劣質(zhì)電池放電初期電壓也很平穩(wěn),一旦進(jìn)入中后期,電壓下降非常迅速,所以采用這種方法得出的結(jié)論將非常不準(zhǔn)確的。最可靠最準(zhǔn)確無誤的還是以標(biāo)準(zhǔn)電流放電,全程測量實(shí)際放電時(shí)間的方式。不同的放電電流,充電電池最終能夠釋放出的電量是不同的,有一定的差距。蓄電池的容量標(biāo)注都是有統(tǒng)一標(biāo)準(zhǔn)的。目前使用最多的是10小時(shí)率放電容量與20小時(shí)率放電容量兩種。10小時(shí)率放電容量就是電池以恒定電流放電,至電量耗盡放電時(shí)間能夠維持10個(gè)小時(shí)左右,這個(gè)電流就被稱作10小時(shí)率電流(衡量電量用盡的標(biāo)準(zhǔn),不能以電池放電端電壓降低到零為準(zhǔn)。電池過度放電,會導(dǎo)致電池容量減少,無法恢復(fù),乃至提早損壞、完全失效。所以每種電池放電終止電壓都有嚴(yán)格的規(guī)定,這個(gè)可以查閱相關(guān)資料。過度放電與過度充電是造成充電電池不能達(dá)到使用年限、提前報(bào)廢的主要原因)。實(shí)時(shí)放電的測量方法最大的缺點(diǎn)就是費(fèi)時(shí)費(fèi)力,因?yàn)楹臅r(shí)久這樣測量精度也很容易受到各種外部因素的影響。測量過程中如果用10小時(shí)率電流持續(xù)放電時(shí)間至少都要在5個(gè)小時(shí)以上,作這樣長時(shí)間的測試更需要足夠的耐心與精力以及充裕的時(shí)間。科技的發(fā)展是非常迅速,今天單片機(jī)已經(jīng)非常普及了。通過單片機(jī)程序控制對放電時(shí)間,深度進(jìn)行自動化控制,就很容易精準(zhǔn)測出電池的實(shí)際容量,實(shí)現(xiàn)整個(gè)過程的自動控制。模擬實(shí)際放電測量容量的方法雖然對能源有一點(diǎn)浪費(fèi),但是對于1A、2A以下的小容量充電電池還是完全可行的,對大容量電池進(jìn)行抽樣檢查也是很有必要。

下面介紹的電池容量測試儀采用89S51作為控制芯片,圖1就是硬件的電路原理圖。

圖1 硬件的電路原理圖

這個(gè)電池容量測試儀由放電電路、單片機(jī)控制計(jì)時(shí)兩個(gè)完全獨(dú)立部分組合而成。單片機(jī)部分制作費(fèi)時(shí)費(fèi)力,而且市面上單片機(jī)已很普及,沒必要親手制作,隨便找一片51單片機(jī)實(shí)驗(yàn)板就可以了。放電電路則是比較簡單的,僅由四五只元件構(gòu)成。單片機(jī)部分主要負(fù)責(zé)對放電時(shí)間計(jì)時(shí),最終得到一組可靠的數(shù)據(jù),用于電池性能的考量。

這種放電電路的實(shí)質(zhì)就是一模擬可控硅。當(dāng)我們將待測電池接入電路相應(yīng)位置時(shí),點(diǎn)按啟動鍵,如果電池尚有余量,則電池兩端放電電壓將維持在設(shè)定值以上,三極管VT1就會瞬間飽和,電池通過電阻R2進(jìn)行放電。這種電路有可靠精確陡峭的開關(guān)特性,VT1絕對工作于飽和截止兩種狀態(tài)之下。通過可調(diào)電阻對開關(guān)電路臨界值(即充電電池放電終止電壓)進(jìn)行調(diào)節(jié)設(shè)定,便可適應(yīng)于各種不同類型充電電池的全程保護(hù)放電。由于個(gè)人的應(yīng)用不需要非常精準(zhǔn)的測試結(jié)果,所以實(shí)際測試中電池模擬放電原則上還是以快些為好,只需要得到一個(gè)大致的電池容量。為了較快完成電池測試過程,這里的電路設(shè)計(jì)采用兩小時(shí)率電流進(jìn)行放電。通過對各種電池測量結(jié)果的橫向比較,容量的差異還是顯而易見的,以此作為衡量電池優(yōu)劣的標(biāo)準(zhǔn),就已經(jīng)足夠了。這里以1000mAH、1.2V規(guī)格鎳氫電池測試為例,放電電流500mA就需要采用2Ω的放電電阻,電池終止放電電壓應(yīng)控制在1V以上。放電終止電壓通過可調(diào)電阻R1來調(diào)節(jié)設(shè)定。普通可調(diào)電阻精度較差,且容易產(chǎn)生漂移,會導(dǎo)致設(shè)定好的終止電壓隨時(shí)間推移以及使用環(huán)境變化產(chǎn)生較大的波動。為了保證放電終止電壓的精準(zhǔn)且易于設(shè)定,R1可以使用3296系列精密可調(diào)電位器。3296多圈可調(diào)精密電位器的可調(diào)范圍一般在50T,所以每圈的調(diào)節(jié)范圍為2%,每轉(zhuǎn)動一度,阻值變化大約0.005%,所以很容易調(diào)節(jié)獲得一個(gè)精確、穩(wěn)定的阻值。

終止電壓的設(shè)定必須在實(shí)際放電過程中進(jìn)行,負(fù)載電阻R2阻值變動,已經(jīng)設(shè)定的終止電壓也會隨之改變,需要重新設(shè)置。具體的調(diào)試方法就不再詳述了,參考一下相關(guān)資料。
[page]
這個(gè)放電電路不需要單獨(dú)的工作電源,而且與電池種類沒有相關(guān)性,完全可以適應(yīng)鎘鎳、鎳氫、鋰電池、鉛酸電池各種類型蓄電池的保護(hù)性放電,只是需要根據(jù)電池類型以及容量大小重新設(shè)置電路的終止電壓及放電電流。如果電池容量相對較高,那么三極管VT1、VT2的耗散功率也要相應(yīng)加大一些,同時(shí)不要忘了加大負(fù)載電阻R2的功率。

圖2是放電電路的印刷電路圖,元件數(shù)量少,很容易制作。

圖2 印刷電路圖

各種電池兩小時(shí)率電流放電能夠維持的放電時(shí)間一般都是在1.5小時(shí)以下的。這里單片機(jī)計(jì)時(shí)系統(tǒng)使用秒計(jì)時(shí),4位LED數(shù)碼管顯示。最大計(jì)時(shí)時(shí)間9999秒,大約2.7小時(shí)。

圖1單只LED數(shù)碼管內(nèi)部都是由8只發(fā)光管組合而成,分別作為8的7段字型部分,以及一位小數(shù)點(diǎn)。這里使用的是共陽極數(shù)碼管,內(nèi)部8只發(fā)光管的陽極是并連共同引出的,作為使能控制。

在實(shí)際電路中,L1就是第一只數(shù)碼管的共陽極端。單片機(jī)的輸出、輸入接口數(shù)量都很有限,所以4位LED數(shù)碼管驅(qū)動都是使用動態(tài)顯示的方式。4只獨(dú)立數(shù)碼管LED的內(nèi)部a、b、c、d、e、f、g、dp這8段發(fā)光管相對應(yīng)的陰極都是并連的。統(tǒng)一由單片機(jī)P0口8位輸出進(jìn)行驅(qū)動。數(shù)碼管要顯示出數(shù)碼還必須在共陽極端同時(shí)施加正電壓才行。所以要讓4位中某一數(shù)碼管進(jìn)行顯示,只要在P0口輸出字型碼的同時(shí),給這位數(shù)碼管共陽極端加上正電壓就行了,當(dāng)然與此同時(shí)其他三位數(shù)碼管的共陽極端要保持低電壓,才不致顯示出現(xiàn)混亂。數(shù)碼管共陽極端驅(qū)動電流較大,所以采用了三極管進(jìn)行控制。以第一只數(shù)碼管為例,在P0端口輸出字型碼的同時(shí),P37輸出低電平,三極管T4導(dǎo)通,則共陽極端L1就得到高電平了,數(shù)字就會顯示在第一只數(shù)碼管上了。

程序設(shè)計(jì)是以單片機(jī)P37口作為計(jì)時(shí)控制端子,P37口輸入低電平,計(jì)時(shí)程序啟動,4只數(shù)碼管顯示時(shí)間。放電電路中按下啟動按鍵,放電過程觸發(fā),VT1導(dǎo)通,電池端電壓降落到放電電阻R2兩端,A端對地為高電平,通過電阻R4迫使三極管VT3導(dǎo)通,P37口電平就被拉低了,單片機(jī)計(jì)時(shí)程序啟動。電池電壓降到終止電壓以后,放電電路自動關(guān)閉,A端電壓消失,VT3恢復(fù)截止?fàn)顟B(tài),計(jì)時(shí)程序停止,數(shù)碼管維持顯示當(dāng)前持續(xù)時(shí)間。

如要進(jìn)入下次測試,首先按動單片機(jī)復(fù)位鍵,當(dāng)前計(jì)時(shí)清零,等待下一次測試開始。

程序設(shè)計(jì)比較簡單。它的大致流程如下:初始化,P3端口置位,設(shè)立常量a為時(shí)間計(jì)數(shù)器,依次對a的十進(jìn)制數(shù)值各位進(jìn)行提取,順序輸送到P0端口,P2端口中的P24、P25、P26、P27各位是依次作為四位數(shù)碼管的使能控制端,通過P2端口的配合,就可以完成對各位數(shù)碼管的驅(qū)動,時(shí)間的動態(tài)顯示。程序進(jìn)行中要不斷地檢測P3端口數(shù)值以決定計(jì)時(shí)狀態(tài):如果電池處于放電過程之中,三極管VT3導(dǎo)通,將迫使P37端口電壓降到零,P3端口值就是127,單片機(jī)程序檢測到這一結(jié)果,時(shí)間常量a將自動加1,指示期間放電時(shí)間已經(jīng)延續(xù)1秒種了。這1秒鐘的時(shí)間精確計(jì)算是比較麻煩的。計(jì)時(shí)程序是一個(gè)循環(huán)結(jié)構(gòu),每一周期耗用時(shí)間都是一致的。所以在使用keil軟件調(diào)試過程中,通過對時(shí)間計(jì)數(shù)寄存器sec的觀察計(jì)算,可以得出一次循環(huán)大致需要的時(shí)間。以此為據(jù)再通過適當(dāng)改變延時(shí)子程序循環(huán)次數(shù)將常量a計(jì)時(shí)周期控制在1秒以下,剩余微小的時(shí)間差就可以通過插補(bǔ)空指令來校正了。計(jì)時(shí)精度只要控制在千分之一以下就可以了。在51單片機(jī)使用11.0592MHz晶體振蕩器的情況下,指令周期大約1.085微秒,所以將計(jì)時(shí)精度控制在千分之一以下問題不大。誤差總是會有的,只能通過精確計(jì)算來控制了,也可以通過更換更高頻率的晶體振蕩器提高單片機(jī)時(shí)鐘頻率的方法來進(jìn)一步提高計(jì)時(shí)的精度。如果放電過程中,意外原因或者人為終止放電過程,P37端口變?yōu)楦唠娖?,程序循環(huán)依舊會進(jìn)行下去,只是時(shí)間常量a停止自動加一,時(shí)間顯示維持不變。

編譯后,寫入單片機(jī)內(nèi)部,做好放電電路部分與51單片機(jī)的連接,便可投入使用。

電池接入后,按動輕觸按鍵“啟動”,就會進(jìn)入一次容量測試過程,期間電池取出接入,都不會影響到單片機(jī)計(jì)時(shí)。電池放電完畢,單片機(jī)數(shù)碼管顯示鎖定,給出總放電持續(xù)時(shí)間,單位為秒??梢宰孕腥斯び?jì)算放電小時(shí)數(shù)。當(dāng)然也是可以自行對程序進(jìn)行改進(jìn),直接以小時(shí)分鐘形式進(jìn)行顯示。只要單片機(jī)不斷電,數(shù)碼管將持續(xù)顯示當(dāng)前放電時(shí)長。如果要進(jìn)入下次測量過程,只需要按動單片機(jī)復(fù)位鍵,數(shù)碼管清零,單片機(jī)程序轉(zhuǎn)入起點(diǎn),你就可以進(jìn)入新一次的容量測試過程了。

充電電池如果較長時(shí)間閑置,它的實(shí)際容量將受到影響,重新啟用第一次能夠釋放的容量遠(yuǎn)遠(yuǎn)達(dá)不到標(biāo)注容量,放電電壓也很不平穩(wěn)。至少要經(jīng)過三次以上的充電放電循環(huán),電池完全激活,容量才能恢復(fù)到應(yīng)有的水平。充分考慮這種因素的影響,所以容量測試一般采取多次平均的方式,或者循環(huán)充放電三次以后放電持續(xù)時(shí)間為準(zhǔn),以此衡量電池容量才算是恰當(dāng)。
[page]
#include “reg51.h”

char

code disp[]={40,235,50,162,225,164,36,234,32,160};

//字形碼

void delay(unsigned int dt)

{ unsigned int j=0;

for(;dt>0;dt--)

{ for(j=0;j<125;j++)

{;}

}

}

void main()

{ int a,b,c,led1,led2,led3,led4;

P3=255;

a=0;

for(;;)

{b=a;

led1=b%10;

P2=239;

P0=disp[led1];

delay(6);

P2=255;

b=b/10;

led2=b%10;

P2=223;

P0=disp[led2];

delay(6);

P2=255;

b=b/10;

led3=b%10;

P2=191;

P0=disp[led3];

delay(6);

P2=255;

b=b/10;

led4=b%10;

P2=127;

P0=disp[led4];

delay(6);

P2=255;

for(c=44;c>0;c--)

{

P2=239;

P0=disp[led1];

delay(5);

P2=255;

P2=223;

P0=disp[led2];

delay(5);

P2=255;

P2=191;

P0=disp[led3];

delay(5);

P2=255;

P2=127;

P0=disp[led4];

delay(5);

P2=255;

}

if(P3==127)

delay(3);

if(P3==127)

a=a+1;

else a=a;

}

}
要采購充電電池么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉