2016-2022 All Rights Reserved.平安財(cái)經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082 備案號:閩ICP備19027007號-6
本站除標(biāo)明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。
大家好,小科來為大家解答以上問題。怎樣使用Arduino測量鋰離子電池容量這個(gè)很多人還不知道,現(xiàn)在讓我們一起來看看吧!
1、第一步:工作原理。
2、這整個(gè)步驟都是理論上的,所以如果你只是想讓它工作,請?zhí)诫娐飞稀?/p>
3、電池的容量通常以毫安時(shí)(mAh)給出。馬是電流的單位,小時(shí)是時(shí)間的單位。當(dāng)我們把它們相乘時(shí),我們就會得到電荷。I * t=q .實(shí)際上,電池的容量是用Q給出的,即它們擁有的“可用電量”,或者電池在單次放電循環(huán)中實(shí)際能通過的電子數(shù)。
4、如果我們有一個(gè)恒定的電流,我們可以運(yùn)行電流,直到電池電壓低于最小電壓,然后乘以電流和時(shí)間,這樣我們就可以得到近似的容量(Q=I * T)。這是一種簡單明了的技術(shù),但只能提供粗略的數(shù)值,不能提供可靠準(zhǔn)確的數(shù)值。當(dāng)我們意識到電流不可能保持恒定,而是從高電平開始,然后隨著電池電壓的下降而急劇下降時(shí),就會出現(xiàn)這個(gè)問題。
5、這個(gè)問題的解決辦法是用微積分。如果我們對電流隨時(shí)間的積分,就可以得到確切的容量(Q=I dt),因?yàn)槿绻覀儺嫵鲭娏髋c時(shí)間的關(guān)系,曲線下的面積將代表容量(毫安乘以小時(shí)表示毫安小時(shí))。問題是,我真的不想做“正當(dāng)”的整合,所以想走捷徑。我用一種叫做黎曼和的東西來表示積分。
6、簡而言之,我們可以看一個(gè)圖,把它分解成一堆細(xì)長的矩形,計(jì)算每個(gè)矩形的面積(寬度乘以高度),然后把所有的小面積加在一起。在容量方面,我們使用一個(gè)很短的時(shí)間間隔(矩形寬度),然后每次乘以當(dāng)前時(shí)間(矩形高度),得到這個(gè)時(shí)間間隔內(nèi)消耗的少量容量。我們可以把所有的小容量加起來,找出大容量。
7、在黎曼和圖(所有垂直線)中,有時(shí)q有點(diǎn)大,有時(shí)又有點(diǎn)小。黎曼求和的思想是,正誤差抵消負(fù)誤差,所有這些都沖得很近。
8、執(zhí)行黎曼求和,直到電池電壓低于閾值,然后停止,這是電池的所有可用電荷(它不會耗盡電池并超過建議的安全限值)。
9、順便說一下,如果我們對電池中包含的總能量感興趣,我們需要看看測試中消耗的電力(不同于消耗的電力)。我們絕對可以用同樣的設(shè)備,把電壓乘以一個(gè)更小的Q,然后把更小的E(區(qū)間能耗)加到運(yùn)行中的總E(電池總功率)上來測量這個(gè)。我決定不在這個(gè)項(xiàng)目的代碼中執(zhí)行這個(gè)操作,但是如果你感興趣的話,實(shí)現(xiàn)起來并不難。否則,您可以通過取mAh額定值并將其乘以3.7的標(biāo)稱電池電壓來粗略估計(jì)電池的能量。(例如,如果我們有一個(gè)1000毫安時(shí)的電池,將其乘以3.7v得到3700毫安時(shí))。
10、第二步:電池電阻。
11、兩個(gè)負(fù)載的主要原因是測量電池電阻的能力。
12、假設(shè)電池是線性電壓源,我需要測量的電池電阻是兩個(gè)數(shù)據(jù)點(diǎn):給定負(fù)載的電壓和電流,然后是不同負(fù)載的電壓和電流(或多或少的電流)。然后我可以看到電流是如何隨電流變化的,這兩個(gè)變化的商給出了電阻。記住,一歐姆等于每安培一伏特。
13、歐姆=- v/ i。
14、測量電池電阻的方法是在裝置處于四種可能狀態(tài)中的隨機(jī)負(fù)載狀態(tài)(開/關(guān)/開/關(guān))后,收集許多數(shù)據(jù)點(diǎn)。
15、在收集了許多電壓和電流數(shù)據(jù)點(diǎn)之后,程序使用每個(gè)數(shù)據(jù)點(diǎn)來計(jì)算和記錄相對于每隔一個(gè)與電壓或電流不匹配的數(shù)據(jù)點(diǎn)的電阻。就像數(shù)學(xué)上的握手。
16、根據(jù)我的短期測試,在相同的電池中,獲得的電阻值可能相差約10%。所以不是很好,但是會給你一個(gè)大概的想法。
17、第三步:電路。
如果您以前閱讀過此說明,則會回想起以前需要將arduino連接到計(jì)算機(jī)才能讀取數(shù)據(jù)。從測試。這絕對不是理想的,所以當(dāng)我重建該測試儀時(shí),我添加了一個(gè)LCD并詢問為什么我第一次沒有這樣做。您可以在ebay上購買16x2字符LCD,價(jià)格約為5美元,包含運(yùn)費(fèi)。
實(shí)際測試電路包含兩個(gè)負(fù)載和兩個(gè)mosfet開關(guān),以便于測量電池電阻。如果你對單元電阻不感興趣,你當(dāng)然可以用一個(gè)mosfet和負(fù)載構(gòu)建電路(代碼不會介意)。
這個(gè)測試電路使用N溝道m(xù)osfet來切換當(dāng)前。我發(fā)現(xiàn)大功率mosfet的最佳來源是計(jì)算機(jī)電源(不難發(fā)現(xiàn):它們位于大散熱器上)。在運(yùn)行此測試之前,請閱讀mosfet的數(shù)據(jù)表,并確保它們能夠處理的最小電流約為1A,除非您使用較低的電流負(fù)載。另外,請確保“柵極-源極閾值電壓”小于5v。這是mosfet打開所需的電壓,我們只能使用arduino給它5v。最后,您可能需要將mosfets放在散熱器上。
我們用于測量電流的方法是使用分流電阻器。我們測量電阻兩側(cè)的電壓以計(jì)算電流。歐姆定律表示V = I * R或I = V/R(流經(jīng)電阻的電流為電阻兩端的電壓差除以電阻值)。
并聯(lián)電阻的值應(yīng)為4左右的任意值。歐姆下降,但對于~1A負(fù)載,一個(gè)好的經(jīng)驗(yàn)法則是分流電阻的額定功率應(yīng)約為電流的四倍,或者最小的《4》電阻。這是為了保持電阻冷卻。正如Domints在評論中指出的那樣,如果電阻變得非常熱,電阻值會改變,并且您的電容讀數(shù)不再準(zhǔn)確。
我在此電路中使用的負(fù)載是汽車剎車燈泡(我使用兩根燈絲作為兩個(gè)負(fù)載)。在它與分流電阻之間,在測試期間大約有一個(gè)放大器被拉動,這恰好適合我想做的事情。 Peukert效應(yīng)討論了不同電流負(fù)載對電池容量的影響。
請注意:連接A和B需要連接到模擬輸入。如果將它們連接到數(shù)字引腳,則會通過arduino直接短路當(dāng)前的鋰離子電池。糟糕的時(shí)間。
可以在fritzing文件(fzz)中找到原理圖和面包板布局。
步驟4:代碼
在此處下載代碼。
此項(xiàng)目中的代碼會經(jīng)歷10種可能的狀態(tài),總是在狀態(tài)0復(fù)位后開始,在其中測量電池電壓,并且根據(jù)電壓,程序進(jìn)入三個(gè)可能的下一個(gè)狀態(tài)之一。
狀態(tài)1 在電壓低于1v時(shí)發(fā)生,程序假定電池座為空。它提示輸入新電池,然后重設(shè)。一旦電池電壓超過1v,程序進(jìn)入狀態(tài)2.
狀態(tài)2 當(dāng)測試儀沒有電池啟動但現(xiàn)在安裝了電池時(shí)發(fā)生。程序顯示電池電壓并提示復(fù)位。
狀態(tài)3 當(dāng)程序啟動時(shí),電池電壓在1和最小電壓之間開始測試,在其他情況下話說,一個(gè)弱小的細(xì)胞。顯示電池電壓以及電池電量不足的建議。
狀態(tài)4 在程序開始且電池電壓足夠高以開始測試時(shí)發(fā)生。在此狀態(tài)下,負(fù)載開啟直到電壓低于閾值以檢查電阻。
狀態(tài)5 是檢查電阻的狀態(tài)。測量電流和電壓,然后在記錄兩個(gè)電壓/電流值后關(guān)閉一個(gè) 負(fù)載,然后重新打開。電阻是根據(jù)不同負(fù)載電流的兩個(gè)值計(jì)算的。
狀態(tài)6 在狀態(tài)5完成電阻檢測后立即發(fā)生,并繼續(xù)運(yùn)行容量檢查直到電池電壓下降低于最小電池電壓。
狀態(tài)7 在容量檢查完成且電池仍在原位時(shí)發(fā)生。它顯示測試結(jié)果和測試時(shí)間。
狀態(tài)8 是在測試運(yùn)行后從測試儀中取出電池時(shí)發(fā)生的。容量和阻力仍會顯示,但不會顯示時(shí)間。
狀態(tài)9 在插入新單元格時(shí)出現(xiàn)。容量仍會顯示,直到重置。
那么,您應(yīng)該如何編輯此代碼以使其適用于您的特定電路?您需要更改的唯一內(nèi)容是引腳編號和電阻值。它們具有以下常數(shù):
#define SHUNTRES 0.62
#define VIN A1
#define SHUNT A0
#define GATE1 0
#define GATE2 1
有些人評論過的是一個(gè)不準(zhǔn)確的參考電壓。如果您的5v引腳測量4.6伏怎么辦?還有一個(gè)常數(shù)要注意。用萬用表測量5v參考引腳,然后將該值放在下面的常量中:
#define VOLTREF 4.6
如果您正在通電來自計(jì)算機(jī)USB端口的arduino,電壓應(yīng)該在5v(并且不需要檢查它,除非你是可疑類型)。如果您在Arduino的電壓調(diào)節(jié)器(桶形插頭)中使用電源,您可能需要檢查它,但它應(yīng)該是一致的。如果您使用USB充電器為其供電,則應(yīng)檢查您將使用的每個(gè)不同電壓,因?yàn)樗鼈兛赡軙泻艽蟛町悺?/p>
步驟5:分享您的結(jié)果!
所以,這個(gè)項(xiàng)目很好,但是,假設(shè)您只是想知道單元的容量而無需構(gòu)建它。好了,我已經(jīng)啟動了一個(gè)電池列表,可以通過顏色和型號進(jìn)行識別,您可以在這里查看。
如果你已經(jīng)構(gòu)建了一個(gè)容量表,并希望對此列表做出貢獻(xiàn),請給我發(fā)消息,我會將你添加為編輯。
第6步:把它放在一起并測量
好的,所以一旦你建立了你的電路,把你的代碼拋到了arduino上應(yīng)該是好的!
在開始測試之前,電池應(yīng)該充滿電,這樣你才能知道它們的全部容量。連接一個(gè)單元,并開始測試,按下你的arduino重置按鈕,或重新啟動arduino。
一旦測試完成,屏幕將顯示“完成”以及時(shí)間,電池電阻和容量。
我為測試周期制作了電壓與時(shí)間的關(guān)系圖,它有一些非常有趣的功能。剛開始時(shí)電壓急劇下降,但直到線性電壓下降到3300 mV左右才趨于平穩(wěn)。那時(shí),它開始陡然下降。這表明為什么放電低于2.9v的鋰離子電池真的不會給你帶來更多的可用功率。電池開始變強(qiáng),然后保持變強(qiáng)……然后就完成了。當(dāng)然,您需要調(diào)整電壓常數(shù),并且需要確保不向模擬引腳饋送超過5v的電壓,因?yàn)檫@是它可以讀取的最大值。分壓器是測量高壓應(yīng)用電壓的一種可能方法(例如,12v鉛酸電池)。到目前為止,我已觀察到有關(guān)我的電池的一些信息:它們似乎大部分被制造成大約1000個(gè)電池。或2000毫安。我有一個(gè)高達(dá)3400 mAH,相當(dāng)一點(diǎn)18650非常令人印象深刻。此外,大多數(shù)配備真正便宜的LED手電筒的電池往往具有可怕的容量。但這并不奇怪。
本文到此結(jié)束,希望對大家有所幫助。
2016-2022 All Rights Reserved.平安財(cái)經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082 備案號:閩ICP備19027007號-6
本站除標(biāo)明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。