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