一年前我在房子內(nèi)設(shè)計(jì)了一套太陽能系統(tǒng)來供電,開始用的是基于LM317的充電控制器和一個(gè)能量計(jì)來監(jiān)視這一套系統(tǒng)。最后換成了PWM控制器。在今年4月份把這個(gè)PWM控制器分享到網(wǎng)上后,瞬間就引起了大量關(guān)注。每天都收到了關(guān)于修改太陽能電池板和電池軟硬件的郵件,很大一部分都是建議把該系統(tǒng)換成12V電池供電。
為改進(jìn)上述問題,我設(shè)計(jì)了一套新的硬件和軟件系統(tǒng),這個(gè)全新版本可以讓大家使用起來更方便。在這次設(shè)計(jì)中,我把能量計(jì)和充電控制器整合在一起。
第二代充電控制器的規(guī)格
1、 內(nèi)含充電控制器與能量計(jì)
2、 可選擇6V與12V電池
3、 可依據(jù)不同的電池電壓自動(dòng)進(jìn)行充電調(diào)節(jié)的PWM充電模式
4、 LED顯示電量狀態(tài)以及負(fù)載狀態(tài)
5、 20*4 LCD顯示電壓、電流、功率、能量以及溫度
6、 雷電保護(hù)
7、 反向電流保護(hù)
8、短路和過載保護(hù)
9、充電溫度補(bǔ)償
電氣特性
1、 額定電壓=6V/12V
2、 最大電流=10A
3、 最大負(fù)載電流=10A
4、 6V系統(tǒng)開路電壓=8-11V
12V系統(tǒng)開路電壓=15-25V
第一步:準(zhǔn)備材料
電子元件:
1、 Arduino Nano
3、 MBR 2045功率二極管
4、 穩(wěn)壓器(LM7805)
5、 溫度傳感器(LM35)
7、 TVS二極管(P6KE36CA)
8、 三極管(2N3904或2N2222)
9、 電阻(100k*2,20k*2,10k*2,1k*2,330Ω*5)
10、 陶瓷電容(0.1μF*2)
11、 電解電容(100μF和10μF)
12、 20*4 I2C LCD
13、 RGB LED
14、 Bi Color LED
15、 跳線
16、 頭針
17、 散熱器
18、 保險(xiǎn)絲和熔絲架
19、 按鈕
20、 穿孔板
21、 外殼
22、 接線端
23、 螺母/螺絲/螺栓
24、 塑料基板
工具:
1、 電烙鐵
2、 鋼絲鉗和剝模器
3、 螺絲刀
4、 鉆孔機(jī)
5、 Dremel工具
6、 噴膠槍
7、 小刀
第二步:控制器工作
充電控制器的核心是Arduino nano主板,arduino MCU可感應(yīng)太陽能電池板和電池電壓。該主板依據(jù)這個(gè)電壓值來對(duì)改變電池充電方式,并且控制負(fù)載。
充電電流的大小是由電池電壓和充電電壓設(shè)定值之差決定,該控制器使用了兩階段充電算法。按照此算法,控制器將發(fā)送一個(gè)固定頻率的PWM信號(hào)到太陽能電池板的P溝道MOSFET。
第三步:太陽能控制器的主要功能
以下是控制器的主要功能:
1、 電池過沖保護(hù):當(dāng)電池充滿后,通過太陽能電池板來限制供電,這一功能由我的程序的周期代碼來實(shí)現(xiàn)。
2、 電池過度放電保護(hù):當(dāng)電池到了低電量狀態(tài)時(shí),會(huì)自動(dòng)斷開與電路負(fù)載的連接。由負(fù)載控制代碼完成。
3、 負(fù)載控制功能:在特定的時(shí)間內(nèi)連接和斷開負(fù)載,當(dāng)日落時(shí)斷開負(fù)載,日出則進(jìn)行連接。
4、 監(jiān)視功率和能量:監(jiān)視負(fù)載功率和能量,并通過顯示器顯示。
5、 異常狀況保護(hù):在雷電、過壓、過流和短路的情況下保護(hù)電路。
6、 顯示功能:所有參數(shù)都可顯示。
7、 串行通信
----------------------
本文選自電子發(fā)燒友網(wǎng)11月《測(cè)試測(cè)量特刊》EE SHOW欄目,轉(zhuǎn)載請(qǐng)注明出處!
第四步:感應(yīng)電壓、電流和溫度
1、 電壓傳感器
電壓傳感器用來感應(yīng)太陽能電池板和電池的電壓,可通過兩個(gè)分壓器電路來實(shí)現(xiàn)。這兩個(gè)電路均由100k和20k的電阻分別感應(yīng)太陽能電池板和電池電壓,R1和R2的輸出端與arduino A0腳相連,R3和R4與arduino的A1腳連接。
2、 電流傳感器
電流傳感器在這里是用來測(cè)量負(fù)載電流的,然后用這個(gè)電流值來計(jì)算負(fù)載功率及能量,我用的是ACS712-20A。
3、 溫度傳感器
用來感應(yīng)室內(nèi)溫度,我用的是LM35,使用溫度范圍在-55℃-150℃范圍內(nèi)。
為何需要溫度監(jiān)控?
首先,隨著溫度的變化,電池的化學(xué)反應(yīng)也在改變。因此,在溫度變化時(shí)進(jìn)行充電調(diào)整非常重要。溫度傳感器專門監(jiān)控電池溫度,同時(shí)太陽能控制器還可通過此輸入端來調(diào)整合適的設(shè)定值。酸式電池的補(bǔ)償值為- 5mv /℃/cell(12V的電池為–30mV/oC,6V電池是15mV/oC)。這里的負(fù)號(hào)表示溫度升高時(shí)需要調(diào)低充電設(shè)定值。
第五步:校準(zhǔn)傳感器
電壓傳感器:
以arduino Vcc 的5V作為參考,校準(zhǔn)電壓等于5/1024,即0.0048828V
Vout=Vin*R2/(R1+R2)
Vin = Vout*(R1+R2)/R2 R1=100 and R2=20
Vin= ADC count*0.00488*(120/20) Volt
電流傳感器:
靈敏度為100mV/A
無測(cè)試電流的輸出電壓為VCC/2=2.5V
ADC count= 1024/5*Vin ,Vin=2.5+0.100*I
ADC=204.8(2.5+0.1*I) =512+20.48*I
可推出I =(ADC count/20.48)- 512/20.48=0.04882*ADC -25
溫度傳感器:
靈敏度為10 mV/°C
補(bǔ)償為(5/1024)*ADC count*100
第六步:充電過程
1、大電流快充,在此模式下預(yù)設(shè)的恒定電流會(huì)經(jīng)過電池,而這個(gè)過程不需要PWM,因?yàn)殡姵卣谶M(jìn)行充電,所以電池電壓也隨之增長。
2、恒壓充電,當(dāng)電池電壓到達(dá)快充設(shè)定值后,PWM會(huì)進(jìn)行控制,保持電壓不變。以免過熱等反應(yīng),同時(shí)電流也會(huì)降低至安全等級(jí),電池將完全充電。
3、 涓流充電:電池完全充電后,充電電壓會(huì)逐漸降低。
上述是理想的充電過程。
充電循環(huán)過程:
當(dāng)太陽能電池板的電壓大于電池電壓時(shí),進(jìn)行大電流快速充電過程。但電池電壓到達(dá)14.4V時(shí),將進(jìn)入恒壓充電模式。隨后PWM信號(hào)會(huì)管理充電電流,以使電池電壓在14.4V的狀態(tài)維持1小時(shí)。涓流充電過程的電池電壓為13.6V,當(dāng)電池電壓值低于13.6V超過10分鐘,充電將進(jìn)一步循環(huán)。
第七步:負(fù)載控制
通過監(jiān)控日出、日落來進(jìn)行負(fù)載控制。負(fù)載控制的主要作用是斷開負(fù)載與電池的連接,以防止深度放電而損壞電池。
當(dāng)太陽能電池電壓大于5V是表示日出,反之則為日落。
接通情形:晚上PV電壓低于5V,電池電壓高于LVD設(shè)定值時(shí),控制器將接通負(fù)載,并且負(fù)載指示燈將變亮。
斷開情形:以下兩種情形負(fù)載會(huì)斷開:
1、 早上PV電壓大于5V時(shí)
2、 電池電壓低于LVD設(shè)定值時(shí)
紅燈亮即表示負(fù)載已經(jīng)斷開(LVD表示低電壓斷開)
第八步:功率與能量
功率是電壓與電流的乘積,即P=U*I
能量則是功率和時(shí)間的乘積,E=P*t
為監(jiān)控負(fù)載功率以及能量,參數(shù)均會(huì)在20*4LCD上顯示。
第九步:保護(hù)
1、 太陽能電池板的反極性保護(hù)
2、 過充保護(hù)
3、 深度放電保護(hù)
4、 短路和過載保護(hù)
5、 反向電流保護(hù)
6、 太陽能電池板輸入端過壓保護(hù)
可用功率二極管MBR2045來實(shí)現(xiàn)反極性和反向電流保護(hù)。而過沖和深度放電保護(hù)是通過軟件來控制。過流和過載保護(hù)只需兩個(gè)保險(xiǎn)絲(一根是在太陽能電池板的一端,另外一個(gè)是在負(fù)載端)
很多因素可導(dǎo)致暫時(shí)性的過壓現(xiàn)象,但是雷電的影響最嚴(yán)重。在這個(gè)設(shè)計(jì)中采用了雙向TVS二極管P6KE36CA來抑制雷電和過壓帶來的危害。上一個(gè)設(shè)計(jì)用的是整流二極管,你也可以在負(fù)載端加上同樣的TVS二極管。
第十步:LED指示燈
電池電量指示燈:這是電池電量的主要表示方式,用RGB LED按照上圖進(jìn)行連接。
Battery LED燈表示電池狀態(tài)
紅色表示電壓過低
綠色表示電壓正常
藍(lán)色表示完全充
Load LED燈表示負(fù)載狀態(tài)
綠色表示負(fù)載連接
紅色表示負(fù)載斷開
最后一個(gè)LED是顯示太陽能電池板的狀態(tài)
第十一步:LCD顯示
上圖20x4 I2C LCD顯示了電壓、電流、功率、能量和溫度。顯示的內(nèi)容可在代碼中進(jìn)行改變。
第十二步:面包板測(cè)試
焊接之前在面包板上進(jìn)行測(cè)試是很棒的辦法。在連接好所有器件后,上傳代碼。根據(jù)用戶的需要,在代碼中進(jìn)行修改即可。
接線端:為太陽能輸入端、電池和負(fù)載端連接增加三個(gè)螺絲接線端,中間的是連接電池的,左邊連接太陽能電池板,右邊連接負(fù)載。
電源:在上一版本里使用了9V電池給arduino供電,現(xiàn)在用穩(wěn)壓器(LM7805)把電池電壓調(diào)低到5V。經(jīng)過幾次測(cè)試后發(fā)現(xiàn)用LM7805容易發(fā)熱而浪費(fèi)能量,所以采用更高效的DC-DC降壓變換器更可靠。
第十四步:裝配
按上述圖片裝好各元件,并在板子背面焊接好。從圖中可看到,我分別用紅色和黑色線把穩(wěn)壓器的5V端和GND腳連接在板上。不過為了美觀性,我把它們焊接在背面。
第十五步:焊接
Show All 9 Items
按照原理圖來焊接所有的元件。在兩個(gè)MOSFET和功率二極管上均裝上散熱器。
備注:MBR2045有兩個(gè)陽極和一個(gè)陰極,所以需要將這兩個(gè)陽極短路連接。
第十六步:連接電流傳感器
連接好所有元件后,在MOSFET的漏極和負(fù)載熔絲架的上端上焊接兩根粗線。然后將這兩根線連到螺絲接線端。
第十七步:制作LED指示和溫度傳感板
原理圖上只有2個(gè)LED,但是為了顯示太陽能電池板上的狀態(tài),另外增加了一個(gè)LED。
這里需要準(zhǔn)備一個(gè)如上圖的小型穿孔板,然后在板的兩側(cè)鉆兩個(gè)3.5mm的孔。
將LED插到板上并且在背面進(jìn)行焊接,還有用來插入溫度傳感器的3腳的排母和一個(gè)連接外部設(shè)備的10PIN直角排針。然后把RGB LED的陽極連接到溫度傳感器的Vcc腳。
第十八步:最終測(cè)試
在主板和顯示板都設(shè)計(jì)完后,用跳線連接各排母。每個(gè)連接都需按照原理圖操作。將USB接線插入arduino,然后下載代碼。如果你想看到連續(xù)的監(jiān)控效果,就保持這個(gè)連接。
保險(xiǎn)絲額定值:在樣品中用的是5A的熔絲架,但是實(shí)際用途上使用的是120%-125%的短路電流保險(xiǎn)絲。
控制器的連接
首先,將控制器與電池連接,而且需要線連接負(fù)極再連正極。然后連接太陽能電池板,同樣是先負(fù)后正。最后連接負(fù)載。
測(cè)試方法
在這里我用的降壓變壓器和黑布來測(cè)試控制器。變換器的輸入端連接電池,輸出端連接控制器電池端。
電池狀態(tài)
用螺絲刀旋轉(zhuǎn)變換器的電位計(jì),來模擬不同的電池電壓。LED等也會(huì)隨著電壓的變化變亮和熄滅。注意在這過程中太陽能電池板需保持?jǐn)嚅_或者是用黑布/紙板將其覆蓋。
日出/日落
用黑布來模擬即可
負(fù)載控制
按照電池的電量和日出、日落的變化,負(fù)載會(huì)進(jìn)行連接或斷開。
溫度補(bǔ)償
在溫度傳感器附近加熱或者用冰塊等降溫,可以在LCD顯示屏上立即看到溫度的變化。
充電補(bǔ)償?shù)脑O(shè)定值可在串口監(jiān)視器上顯示。
第十九步-第二十四步,請(qǐng)參見11月《測(cè)試測(cè)量特刊》。
-
Arduino
+關(guān)注
關(guān)注
188文章
6473瀏覽量
187419 -
充電控制器
+關(guān)注
關(guān)注
1文章
54瀏覽量
13577
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論