| 前言
太陽能電池的發(fā)展始于上世紀(jì)五十年代,最初應(yīng)用于宇宙開發(fā),航空航天等領(lǐng)域,經(jīng)過近五十年的發(fā)展,無論從發(fā)展速度、技術(shù)成熟性,還是從應(yīng)用領(lǐng)域來看,太陽能電池都是新能源中的佼佼者。太陽能電池具有許多優(yōu)點(diǎn),比如:安全可靠、無噪聲、無污染、能量隨處可得、不受地域限制、無須消耗燃料、可以無人值守、建站周期短、規(guī)模大小隨意、可以方便地與建筑物相結(jié)合等,這些優(yōu)點(diǎn)都是其他發(fā)電方式所不及的。但是,太陽能電池并不是一個(gè)理想的電源,其輸出特性受光照強(qiáng)度和光線頻譜等影響,輸出電流很不穩(wěn)定,所以太陽能電池不能直接驅(qū)動(dòng)用電裝置,而需要將太陽能電池先存儲(chǔ)在電池中,然后通過電池為用電裝置供電。
目前,人們常以蓄電池作為太陽能電池的儲(chǔ)電裝置,但是,蓄電池的維護(hù)較復(fù)雜,需專門的電池間,有腐蝕性氣體排出,必須現(xiàn)場初充電50-90小時(shí),需專人維護(hù),而且,不及時(shí)恢復(fù)性充電會(huì)損害電池,蓄電池對溫度也很敏感,壽命較短。
鋰電池作為二次電池之一,具有能量密度高、工作電壓高、自放電小,可快速充放電、壽命長、允許溫度范圍寬、體積小、輸出功率大、無記憶效應(yīng)和無環(huán)境污染等優(yōu)點(diǎn),綜合性能優(yōu)于鉛酸、鎳鎘、鎳氫和金屬鋰電池,被稱為性能最好的電池。雖然鋰電池也存在缺點(diǎn),但同其優(yōu)點(diǎn)相比,那些缺點(diǎn)不應(yīng)成為主要問題,特別是用于一些高科技,高附加值的產(chǎn)品中。目前,鋰電池在市場中成長快速、利潤高、已成為許多先進(jìn)國家競相發(fā)展的研究項(xiàng)目,其未來需求及發(fā)展前景是相當(dāng)好的。
鑒于上述原因,可以用鋰電池代替蓄電池作為太陽能電池的儲(chǔ)電裝置。隨即帶來的鋰電充電問題便成了鋰電應(yīng)用中的重要課題。市場上現(xiàn)有的鋰電池充電器,要么通用性不夠強(qiáng),要么精度達(dá)不到要求,而且,隨著太陽能產(chǎn)業(yè)的快速發(fā)展,不可再生資源的逐漸減少,現(xiàn)有的交流電供電式充電器必有被取代之勢。
為了實(shí)現(xiàn)在太陽能供電下對鋰電池充放電的高精度控制,提升鋰電池工作性能,延長鋰電池壽命,本文設(shè)計(jì)了一款基于AVR單片機(jī)的追光智能鋰電池充電系統(tǒng),實(shí)現(xiàn)了智能追光,并確保鋰電池不會(huì)過充、過熱而損壞,大大提高安全性能,延長鋰電池的使用壽命。該系統(tǒng)還通過與上位機(jī)通信,將鋰電池的狀態(tài)實(shí)時(shí)顯示在上位機(jī)界面上,便于實(shí)現(xiàn)對鋰電池的智能化管理。系統(tǒng)也具有電路穩(wěn)定性強(qiáng)、可靠性高、控制精度高、操作簡便、易于軟件升級(jí)等特點(diǎn)。
追光、鋰電池充電基本原理
追光原理
單軸跟蹤追光
單軸跟蹤追光的優(yōu)點(diǎn)是結(jié)構(gòu)簡單,但是由于入射光線不能始終與主光軸平行,收集太陽能的效果并不理想。
圖1是單軸跟蹤追光的一個(gè)實(shí)例。

圖1 單軸跟蹤
雙軸跟蹤追光
雙軸跟蹤追光可以通過跟蹤太陽高度和赤緯角的變化,獲得最多的太陽能,但是其結(jié)構(gòu)復(fù)雜,成本相對較高。
雙軸跟蹤追光的原理圖如圖2所示。

圖2 雙軸跟蹤
光電跟蹤追光
光電檢測就是檢測太陽高度角和方位角的變化,可以使用3個(gè)光敏電阻將光信號(hào)轉(zhuǎn)換為電信號(hào),組建橋式電路,分別通過如圖3電路接通單片機(jī)的A/D通道,微處理器根據(jù)得到的電壓數(shù)據(jù),控制電機(jī)動(dòng)作。

圖3光電跟蹤
視日運(yùn)動(dòng)軌跡跟蹤追光
由于太陽的高度角和方位角決定了太陽的位置,故可以根據(jù)當(dāng)?shù)氐慕?jīng)緯度確定太陽的位置,然后調(diào)節(jié)太陽能將電池板與地面的角度,實(shí)現(xiàn)追光。
太陽位置計(jì)算幾何數(shù)學(xué)模型如圖4所示。

圖4視日運(yùn)動(dòng)軌跡跟蹤
光電跟蹤與視日運(yùn)動(dòng)軌跡跟蹤配合追光
光電跟蹤和視日運(yùn)動(dòng)軌跡跟蹤相結(jié)合的設(shè)計(jì)方法能夠加強(qiáng)系統(tǒng)的穩(wěn)定性,提高系統(tǒng)的跟蹤精度,能夠?qū)崿F(xiàn)各種天氣下對太陽的跟蹤。
鋰電池充電原理
(1)鋰電池充電要求
鋰電池的充電要求有:
① 終止充電電壓的允差為額定值的±1%,過壓充電會(huì)造成鋰離子電池永久性損壞。
② 充電速率常用為0.5C—1C。采用0.5C充電速率時(shí),因充電過程中的電化學(xué)反應(yīng)會(huì)產(chǎn)生熱量,所以有一定的能量損失。
③ 鋰離子電池充電的溫度范圍為0℃—60℃,如果電流過大,會(huì)使溫度過高。不僅會(huì)損壞電池,而且可能引起爆炸。
④ 鋰離子電池的終止放電電壓為2.5V,嚴(yán)重過放電可能造成鋰離子電池失效。對過放電的電池充電可以通過預(yù)處理進(jìn)行補(bǔ)救,當(dāng)鋰離子電池電壓大于2.5V,則按正常方式充電;若鋰離子電池低于2.5V,則用小電流充電,充到2.5V后再按正常方式充電。
鋰電池在使用過程中,為保證使用安全,延長鋰電池壽命,還需添加鋰電池保護(hù)板,鋰電池保護(hù)板詳細(xì)資料請參見附錄一。
(2)恒流充電
采用恒流充電式,可使電池具有較高的充電效率,該方法在整個(gè)充電過程中采用恒定電流對電池進(jìn)行充電,如圖5所示。這種方法操作簡單,易于做到,特別適合對由多個(gè)電池串聯(lián)的電池組進(jìn)行充電。但由于鋰電池的可接受電流能力是隨著充電過程的進(jìn)行而逐漸下降的,在充電后期,若充電電流仍然不變,充電電流多用于電解質(zhì),產(chǎn)生大量氣泡,這不僅消耗電能,而且容易造成極板上活性物質(zhì)脫落,影響鋰電池的壽命。

圖5 恒流充電
(3)恒壓充電
在恒壓充電法中,電池兩端電壓決定了充電電流,充電電源的電壓在全部充電時(shí)間里保持恒定的數(shù)值,隨著鋰電池端電壓的逐漸升高,電流逐漸減少。充電電流隨著電壓波動(dòng)而變化,因此充電電流的最大值應(yīng)設(shè)置在充電電壓最高時(shí),以免使電池過充電。實(shí)際上,恒壓充電曲線如圖6所示,從圖中可以看到,充電初期充電電流過大,這樣對鋰電池的壽命會(huì)造成很大影響。另外,在此種充電方式中,充電末期電池溫度會(huì)升高,很有可能造成電池的熱失控,損害電池的性能,因此不推薦采用恒壓充電方式。

圖6恒壓充電
(4)恒流恒壓充電
在上述兩種充電方式的基礎(chǔ)上,充電通過恒定電流開始。在恒流充電周期中,為了防止過度充電而不斷監(jiān)視電池端電壓。當(dāng)電壓達(dá)到設(shè)定的端電壓時(shí),電路切換為恒定電壓充電,直到把電池充滿為止。在恒流充電期間,電池可以以較高電流強(qiáng)度進(jìn)行充電,這期間電池被充電到大約85%的容量,電壓以較高的斜率增長,在充電過程中斜率逐漸降低。在恒壓周期中,電池電壓恒定,充電電流逐漸下降,在電流下降到低于電池的1/10容量時(shí),充電周期完成,又稱為二階段式充電法。恒流恒壓充電曲線如圖7所示。

圖7 恒流恒壓充電
三、系統(tǒng)設(shè)計(jì)及方案論證
1、總體設(shè)計(jì)
系統(tǒng)框圖如圖8所示。

圖8系統(tǒng)框圖
本系統(tǒng)設(shè)計(jì)主要有追光控制、電壓轉(zhuǎn)換、光耦開關(guān)控制、充電控制、照明燈控制和上位機(jī)界面控制六個(gè)部分組成,以追光及充電作為本系統(tǒng)的核心。追光控制采用光電跟蹤與視日運(yùn)動(dòng)軌跡跟蹤配合的方法。充電部分采用可用太陽能電池供電的CN3063充電管理芯片,并結(jié)合溫度檢測,光耦等控制,實(shí)現(xiàn)了智能充電的功能,并能有效的保護(hù)鋰電池,活化鋰電池,提升鋰電池的性能。基于太陽能電池板輸出電壓的變化,考慮選擇了升/降壓電路,以獲得最佳的充電調(diào)節(jié)。在照明燈狀態(tài)控制部分,使用光敏電阻來檢測外界光線強(qiáng)弱,以控制照明燈的亮滅,并使用PWM(脈寬調(diào)制)調(diào)節(jié)照明燈的亮度。上位機(jī)控制臺(tái)用于觀察太陽能電池輸出電壓,鋰電池端電壓,鋰電池溫度,并提供了人工控制功能,智能化的同時(shí)實(shí)現(xiàn)了人工管理。
2、詳細(xì)設(shè)計(jì)
(1)鋰電池及太陽能電池選擇
①鋰電池選擇
基于安全、輕薄和容量的考慮,我們采用的是4000mAh的聚合物鋰電池、鋁塑包裝,有別于液態(tài)鋰電池的金屬外殼,一旦發(fā)生安全隱患,不會(huì)爆炸,只會(huì)鼓脹;重量輕,比鋼殼液鋰輕40%,比鋁殼液鋰輕20%;容量大,內(nèi)阻小,比常規(guī)電池內(nèi)阻要小,使得有效放電容量要比其它電池高;形狀可定制,采用膠態(tài)電解質(zhì),具有更平穩(wěn)的放電特性和更高的放電平臺(tái);工作電壓高;能量密度高;循環(huán)壽命長;無記憶效應(yīng),自放電小,無污染。
適用范圍:通訊設(shè)備(移動(dòng)電話、網(wǎng)絡(luò)電話、對講機(jī)、藍(lán)牙耳機(jī)),移動(dòng)辦公設(shè)備(筆記本計(jì)算機(jī)、PDA、便攜式傳真機(jī)、打印機(jī)),影像設(shè)備(數(shù)碼相機(jī)、攝像機(jī)、移動(dòng)DVD、移動(dòng)電視、MP3、MP4),其它(手電筒、礦燈、玩具、航模)。
②太陽能電池選擇
選擇太陽能電池時(shí),要綜合考慮其材質(zhì),工藝,重量,光電轉(zhuǎn)換效率,功率等。本系統(tǒng)采用的太陽能電池板參數(shù)如表1所示。
表1 所選太陽能電池參數(shù)
|
規(guī)格
|
110*134mm
|
|
開路電壓
|
9V
|
|
短路電流
|
170mA
|
|
功率
|
1.5W
|
|
工藝
|
單晶硅層壓工藝
|
考慮到太陽能電池實(shí)際輸出功率和系統(tǒng)本身功耗,我們將4塊參數(shù)如上表1所示的太陽能電池板并聯(lián)使用,并聯(lián)方式如圖9所示。
(2)電壓轉(zhuǎn)換部分
①降壓電路
方案一:采用LM7805芯片,將太陽能輸出電壓轉(zhuǎn)換為5V,此芯片價(jià)格便宜,但缺點(diǎn)是功耗大,效率低,不利于太陽能供電的充電系統(tǒng)。
方案二:采用LM1117芯片,LM1117是一款正電壓輸出的低壓降三代線性穩(wěn)壓芯片,內(nèi)部集成過熱保護(hù)和限流電路,功耗低,并且內(nèi)部限制了最大功耗,適合電池充電器。對于固定電壓的輸出,可采用更小的電容。
以上兩種方案,外圍電路復(fù)雜度基本相同,雖然LM1117的價(jià)格高出LM7805許多,但是考慮到整流功耗,我們選用LM1117作為降壓芯片。應(yīng)用電路如圖10所示。

圖10降壓電路
②升壓電路
方案一:采用MC34063作為升壓芯片。MC34063專用于直流--直流變換器控制部分,片內(nèi)包含有溫度補(bǔ)償帶隙基準(zhǔn)源、一個(gè)占空比周期控制振蕩器、驅(qū)動(dòng)器和大電流輸出開關(guān),能輸出1.5A的開關(guān)電流。它能使用最少的外接元件構(gòu)成開關(guān)式升壓變換器、降壓式變換器和電源反向器。

方案二:利用三極管、電容、電感、電阻搭建升壓電路,此方案較麻煩,在輸入電壓波動(dòng)時(shí),無法得到穩(wěn)定的電壓。
通過比較,我們選擇方案一,該方案的優(yōu)點(diǎn)是,在太陽能電池板輸出電壓波動(dòng)時(shí),能得到穩(wěn)定的輸出電壓。其應(yīng)用電路如圖11所示。

圖11升壓電路
(3)充電開關(guān)電路
方案一:采用普通繼電器作為充電開關(guān)。由于有機(jī)械運(yùn)動(dòng),可能會(huì)帶來電火花,且開關(guān)時(shí)間長。
方案二:采用TLP521光耦作為充電開關(guān)。TLP521是一種全部由固態(tài)電子元器件組成的無觸點(diǎn)開關(guān)元件,它利用電子元器件的電,磁和光特性來完成輸入與輸出的可靠隔離,利用大功率三極管,功率場效應(yīng)管,單向可控硅等器件的開關(guān)特性,來達(dá)到無觸點(diǎn),無火花地接通和斷開被控電路。基于以上優(yōu)點(diǎn),我們采用光耦作為開關(guān)器件,其應(yīng)用電路如圖12所示。

圖12光耦開關(guān)
單片機(jī)突然掉電時(shí),會(huì)因I/O的低電平誤開通充電電路,因此,外加反相器7SLS04,采用高電平控制,能防止誤開通充電電路。
(4)充電控制部分
方案一:使用充電管理芯片MAX1898。MAX1898和外部晶體管PNP或PMOS
組成充電器,可以精確地恒流/恒壓充電,電池電壓精度可達(dá)±0.75%,充電電流可控,帶自動(dòng)輸入電源監(jiān)視器,自啟動(dòng)充電等功能,但MAX1898需要有穩(wěn)定的電壓輸入,不使用于太陽能供電的系統(tǒng)。
方案二:使用可太陽能電池供電的充電管理芯片CN3063。該器件內(nèi)部包括功率晶體管,應(yīng)用時(shí)不需要外部的電流檢測電阻和阻流二極管;內(nèi)部具有8位模擬--數(shù)字轉(zhuǎn)換電路,能根據(jù)輸入電壓源的電流輸出能力自動(dòng)調(diào)整充電電流,用戶不需要考慮最壞情況,可最大限度地使用輸入電壓源的電流輸出能力;輸入電壓范圍是4.35V-6V之間;在鋰電池電壓較低時(shí),采用涓流充電模式,激活鋰電池;電源電壓掉電時(shí)自動(dòng)進(jìn)入低功耗的睡眠模式,充電狀態(tài)和充電結(jié)束狀態(tài)雙指示輸出;自動(dòng)再充電功能,電池溫度監(jiān)測功能。
上述兩種方案,因CN3063可用太陽能電池供電,且價(jià)格低于MAX1898,又考慮MAX1898不易手工焊接等問題,我們采用CN3063作為本系統(tǒng)的充電管理芯片。
CN3063的管腳排列如圖所示。

圖13 CN3060管腳排列
各管腳功能如表2所述。
表2CN3063管腳功能

其典型的應(yīng)用電路如圖14所示。

圖14 CN3063應(yīng)用電路
CN3063的應(yīng)用信息:
電源低電壓鎖存
CN3063內(nèi)部有電源電壓檢測電路,當(dāng)電源電壓低于電源電壓過低閥值時(shí)芯片處于關(guān)斷狀態(tài),充電也被禁止。
睡眠模式
內(nèi)部有睡眠狀態(tài)比較器,當(dāng)輸入電壓低于電池端電壓加20mv時(shí),充電器處于睡眠模式,只有當(dāng)輸入電壓上升到電池端電壓50mv以上時(shí),充電器才離開睡眠模式,進(jìn)入正常工作狀態(tài)。
輸入電壓源限流模式
當(dāng)CN3063輸入電壓源的電流輸出能力小于所設(shè)置的充電電流時(shí),器件內(nèi)部的8位模擬-數(shù)字轉(zhuǎn)換電路根據(jù)輸入電壓源的電流輸出能力自動(dòng)控制充電電流,此時(shí)實(shí)際充電電流可能小于所設(shè)置的充電電流,但是在滿足施加在CN3063的第4管腳VIN的電壓不低于最小工作電壓4.35的前提下,能夠使得充電電流最大化。在這種模式下用戶不需要考慮最壞情況,只要根據(jù)輸入電壓源的最大電流輸出能力設(shè)置充電電流就可以了,非常適合利用太陽能電池等電流輸出能力有限的電壓源對電池進(jìn)行充電。
充電結(jié)束
在恒壓充電狀態(tài),當(dāng)施加在CN3063的第4管腳VIN的電壓大于4.45V,并且當(dāng)充電電流小于所設(shè)置的恒流充電電流的1/10時(shí),充電周期結(jié)束。在輸入電壓源限流模式,即使充電電流小于所設(shè)置的恒流充電電流的1/10,充電也將繼續(xù),不會(huì)結(jié)束。這樣可以保證即使在輸入電壓源的電流輸出能力很微弱的情況下,也能為電池充電。
預(yù)充電狀態(tài)
在充電周期的開始,如果電池電壓Kelvin檢測輸入端(FB)的電壓低于3V,充電器處于預(yù)充電狀態(tài),充電器以恒流充電模式充電電流的10%對電池進(jìn)行充電。
電池電壓Kelvin檢測
CN3063有一個(gè)電池電壓Kelvin檢測輸入端(FB),此管腳通過對芯片內(nèi)部的精密電阻分壓網(wǎng)絡(luò)連接到恒壓充電的誤差放大器。FB管腳可以直接連接到電池的正極,這樣可以有效避免電池正極和CN3063的第5管腳之間的寄生電阻(包括導(dǎo)線電阻,接觸電阻等)對充電的影響。這些寄生電阻的存在會(huì)使充電器過早的進(jìn)入恒壓充電狀態(tài),延長充電時(shí)間,甚至使電池充不滿,通過使用電池電壓Kelvin檢測可以解決這些問題。如果將此管腳懸空,那么CN3063一直處于預(yù)充電狀態(tài),充電電流為所設(shè)置的恒流充電電流的1/10。
設(shè)定恒流充電電流
在恒流模式,計(jì)算充電電流的公式為

其中, 表示充電電流,單位為A。 表示ISET管腳到地的電阻,單位為歐姆。
在本系統(tǒng)中,設(shè)置500mA的充電電流,因此, =1800V/0.5A=3.6KΩ。
電池溫度監(jiān)測
為了防止電池溫度過高或者過低對電池造成的損害,CN3063內(nèi)部集成有電池溫度監(jiān)測電路。電池溫度監(jiān)測時(shí)通過測量TEMP管腳的電壓實(shí)現(xiàn)的,當(dāng)TEMP管腳的電壓大于46%*VIN超過0.15秒時(shí),芯片正常工作;如果TEMP管腳的電壓小于46%*VIN超過0.15秒時(shí),則CN3063認(rèn)為電池的溫度超出范圍,充電將暫時(shí)停止,當(dāng)TEMP管腳的電壓又重新大于46%*VIN超過0.15秒時(shí),充電會(huì)繼續(xù)。
本系統(tǒng)中將TEMP管腳接到地,禁用電池溫度監(jiān)測功能,并以DS18B20作為替代,實(shí)時(shí)監(jiān)測鋰電池電壓,方便觀察。
再充電
當(dāng)一個(gè)充電周期結(jié)束時(shí),如果電池電壓Kelvin檢測輸入端的電壓低于再充電閥值時(shí),CN3063自動(dòng)開始一個(gè)新的充電周期。
恒流/恒壓/恒溫充電
采用恒流/恒壓/恒溫模式對電池充電,在恒流模式中,如果CN3063功耗過大,器件的結(jié)溫接近115°C,放大器Tamp開始共工作,自動(dòng)調(diào)整充電電流,使器件的結(jié)溫保持在大約115°C。
漏極開路狀態(tài)指示輸出端
有兩個(gè)漏極開路狀態(tài)指示端 和 ,這兩個(gè)狀態(tài)指示端可以驅(qū)動(dòng)發(fā)光二極管或單片機(jī)端口。 用來指示充電狀態(tài),在充電時(shí), 為低電平; 用來指示充電結(jié)束狀態(tài),當(dāng)充電結(jié)束時(shí), 為低電平。當(dāng)電池的溫度處于正常溫度范圍之外超過0.15秒時(shí), 和 管腳都輸出高阻態(tài)。當(dāng)電池沒有接到充電器時(shí),充電器很快將輸出電容充電到恒壓充電電壓值,由于電池電壓Kelvin檢測輸入端FB管腳的漏電流,F(xiàn)B管腳和BAT管腳的電壓將慢慢下降到再充電閥值,這樣在FB管腳和BAT管腳形成一個(gè)紋波電壓為100mv的波形,同時(shí) 輸出脈沖信號(hào)表示沒有安裝電池。當(dāng)電池連接端BAT管腳的外接電容4.7uF時(shí),脈沖的周期大約為10Hz。系統(tǒng)中 管腳接紅色LED, 管腳接綠色LED。
表3列出了兩個(gè)狀態(tài)指示燈及其對應(yīng)的充電狀態(tài)。
表3狀態(tài)指示燈與充電狀態(tài)關(guān)系

(5)溫度監(jiān)測
方案一:采用熱敏電阻做傳感器件。熱敏電阻與溫度的變化是非線性的,而8位單片機(jī)的計(jì)算能力有限,在使用時(shí),需摒棄復(fù)雜的計(jì)算公式,改用查表法算取溫度。溫度的精度值取決于AD采樣精度,溫度表格精度和熱敏電阻精度。
方案二:采用DS18B20溫度傳感器。使用時(shí),只需編寫嚴(yán)格的時(shí)序,即可直接讀出溫度值,低四位進(jìn)行小數(shù)近似化處理,可以得到較為準(zhǔn)確的溫度值。
由于熱敏電阻與溫度的變化是非線性的,而且無法使用復(fù)雜的計(jì)算公式得出精準(zhǔn)的溫度值,我們采用方案二,當(dāng)鋰電池溫度大于60°C時(shí),停止充電。
DS18B20的應(yīng)用電路如圖15所示。

圖15溫度監(jiān)測
(6)照明燈控制
方案一:通過檢測光敏電阻阻值的大小,判斷白天黑夜,并根劇光敏電阻阻值調(diào)節(jié)照明燈亮度。
方案二:通過檢測太陽能電池板輸出電壓,來判斷白天黑夜,并進(jìn)一步調(diào)節(jié)照明燈亮度。
比較兩種方案,方案二中太陽能電池板輸出電壓不僅會(huì)受到外界光強(qiáng)的影響,還跟溫度高低等其他因素有關(guān)系,為避免誤判斷,我們采用方案一,且方案一中,根據(jù)光敏電阻阻值大小,更易于使用脈寬調(diào)制(PWM)模擬DA功能。
應(yīng)用電路如圖16所示。

圖16照明燈
當(dāng)檢測到外界光強(qiáng)低于閥值時(shí),打開照明燈,并使用STC12C5A60S2單片機(jī)的一路PCA輸出PWM波,模擬DA功能,程序如下:
void SetLed(uchar PWM_LOW)
{
CCON=0; //PCA控制寄存器初始化
CL=0; //PCA計(jì)數(shù)器低8位清零
CH=0; //PCA計(jì)數(shù)器高8位清零
CMOD=0X02; //模式設(shè)置
CCAP0H=CCAP0L=PWM_LOW; //將光敏電阻值送給PCA捕捉/比較寄存器
CCAPM0=0X42; //設(shè)置PCA工作模式
CR=1; //啟動(dòng)PCA計(jì)數(shù)器
}
rg0=GetADCResult(2); //光敏電阻值采集
if(rg0>=0xa0) //電阻值大于閥值時(shí),調(diào)光
SetLed(rg0-0xa0);
else
SetLed(0); //否則,發(fā)送0,即關(guān)閉照明燈
(7)追光控制
方案一:采用雙舵機(jī),搭建舵機(jī)云臺(tái)。此方法可以全方位的追光,但是在實(shí)際使用中,舵機(jī)存在“搶電”的現(xiàn)象,會(huì)給供電電壓帶來較大的波動(dòng),甚至?xí)a(chǎn)生較強(qiáng)的抖動(dòng),不利于控制,也不利于電能的收集。
方案二:只采用一個(gè)舵機(jī),并結(jié)合機(jī)械追光。經(jīng)查閱資料,當(dāng)太陽能電池板與地平面的角度和當(dāng)?shù)氐木S度相同時(shí),光能利用率最大。本方案中利用的機(jī)械部件,可人為的調(diào)節(jié)太陽能電池板與地平面的角度,再通過控制伺服舵機(jī)實(shí)現(xiàn)追光。
通過比較,我們選用方案二。方案二更節(jié)約電能,同時(shí),在太陽能電池板的不同位置放置三個(gè)光敏電阻,利用光敏電阻對環(huán)境亮暗的敏感性設(shè)計(jì)尋找光源傳感器,即光敏電阻和已知電阻的分壓電路,采集光敏電阻端和已知電阻端電壓,通過模擬量的電壓分析,即可模糊地判斷光線的強(qiáng)弱。與另兩路尋光傳感器電路中得到的電壓值相比較,即可判斷出光源的位置。利用單舵機(jī)機(jī)械結(jié)構(gòu)實(shí)時(shí)把光源位置方向鎖在正中間光敏電阻所對的方向。

圖17光敏電阻檢測
由于光敏電阻對環(huán)境的敏感性,導(dǎo)致環(huán)境中的散光造成的同一規(guī)格的光敏電阻在相同照度下電阻值不同。為此,在每個(gè)光敏電阻前加黑色筒狀遮體,使光敏電阻的基準(zhǔn)電阻值基本相同,為檢測光源時(shí)三者電阻值的比較有統(tǒng)一標(biāo)準(zhǔn),提高光源檢測的精確度。
采集的電壓值為模擬量,提高了光源檢測的空間精度,模擬量亦可以作比較,賦相應(yīng)的比例系數(shù)、微分系數(shù)代入舵機(jī)控制軟件模塊。光敏電阻檢測光源電路圖如圖17所示。
在實(shí)際使用中發(fā)現(xiàn),當(dāng)出現(xiàn)外界干擾信號(hào),供電電源的電壓不足等情況時(shí),會(huì)造成舵機(jī)抖動(dòng),所以我們采用獨(dú)立的單片機(jī)和獨(dú)立的電源完成追
光,避免了信號(hào)干擾和電壓不足產(chǎn)生的抖動(dòng),同時(shí),也避免了因舵機(jī)“搶電”造成的其他模塊電壓不穩(wěn)定的問題。
獨(dú)立電源來自鋰電池,通過PT1301 IC芯片升壓后供舵機(jī)使用,并且添加負(fù)載指示燈(藍(lán)色)和鋰電池電壓過低報(bào)警指示燈(黃色)。詳細(xì)資料請參見附錄二。
其中,主要程序如下:
#define steer_center 60
#define right_limit 100
#define left_limit 20
#define KP 10 //比例系數(shù)
sbit pwm=P3^7;
uchar rg1,rg2,rg3;
uchar last_pwm_value_init; //上一次舵機(jī)輸出值初始化
uchar control_pwm; //舵機(jī)PWM輸出值
uchar last_control_pwm; //上一次舵機(jī)PWM輸出值
void get_analog() //采集三路光敏電阻采光系統(tǒng)中的電壓值
{
rg1=GetADCResult(0);
rg2=GetADCResult(1);
rg3=GetADCResult(2);
}
uchar analog_analyse()
{
get_analog();
if(last_pwm_value_init==0)
{
last_control_pwm=steer_center;
last_pwm_value_init=1; //初始化完成
}
if(rg2-rg1>0&&rg3>=rg2)
control_pwm=last_control_pwm-(rg2-rg1)*KP/80;
else if(rg2-rg3>0&&rg1>=rg2)
control_pwm=last_control_pwm+(rg2-rg3)*KP/80;
else if(rg1-rg2>0&&rg3-rg2>0)
{
if(rg2<80)
{
control_pwm=last_control_pwm;
}
//else //control_pwm=last_control_pwm+(rg1-rg2)*8/80-(rg3-rg2)*8/80; //也進(jìn)行角度調(diào)節(jié)
}
else
control_pwm=steer_center;
if(control_pwm<=left_limit)
control_pwm=left_limit;
else if(control_pwm>=right_limit)
control_pwm=right_limit;
last_control_pwm=control_pwm; //保存上一次舵機(jī)輸出值
return control_pwm;}
void main()
{
uchar PWM;
InitADC(); //AD初始化
Init_PCA(); //PCA擴(kuò)展定時(shí)器初始化
while(1)
{
PWM=analog_analyse();
jd=PWM;
Delay(12);
}
}
void PCA_ISR()interrupt 7
{
CCF1=0;
CCAP1L=value;
CCAP1H=value>>8;
value+=25;
if(cnt <= jd) //判斷0.025ms次數(shù)是否小于角度標(biāo)識(shí)jd=20-100
pwm=1; //小于,PWM輸出高電平
else
pwm=0; //大于則輸出低電平
if (cnt>=800)
cnt=0;
else
cnt++; //0.025ms次數(shù)加1 ,次數(shù)始終保持為800 即保持周期為20ms
}
(8)主控單元
方案一:采用AVR 單片機(jī) ,AVR單片機(jī)的I/O口是真正的I/O口,能正確反映I/O口輸入/輸出的真實(shí)情況。工業(yè)級(jí)產(chǎn)品,具有大電流(灌電流)10~40 mA,可直接驅(qū)動(dòng)可控硅SCR或繼電器,節(jié)省了外圍驅(qū)動(dòng)器件。
AVR單片機(jī)內(nèi)帶模擬比較器,I/O口可用作A/D轉(zhuǎn)換,可組成廉價(jià)的A/D轉(zhuǎn)換器。ATmega48/8/16等器件具有8路10位A/D。
部分AVR單片機(jī)可組成零外設(shè)元件單片機(jī)系統(tǒng),使該類單片機(jī)無外加元器件即可工作,簡單方便,成本又低。

圖18 AVR MCU管腳分布
AVR單片機(jī)可重設(shè)啟動(dòng)復(fù)位,以提高單片機(jī)工作的可靠性。有看門狗定時(shí)器實(shí)行安全保護(hù),可防止程序走亂(飛),提高了產(chǎn)品的抗干擾能力。AVR MCU管腳分布如圖18所示。
方案二:采用新一代增強(qiáng)型8051單片機(jī)STC12C5A60S2,此單片機(jī)具有兩路PWM/PCA功能;8路10位A/D采集,轉(zhuǎn)換速度25萬次/秒;雙串口;內(nèi)部集成MAX810專用復(fù)位電路;具有60K的用戶程序空間;內(nèi)部集成掉電檢測電路;可擴(kuò)展為4個(gè)16位定時(shí)器;7路外部中斷;工作頻率范圍為0-35MHZ,相當(dāng)于普通8051的0-420MHZ;指令代碼完全兼容傳統(tǒng)的8051單片機(jī)。
綜上兩種方案,因所需的A/D檢測通道較多,我們選用方案二中的STC12C5A60S2單片機(jī)作為主控芯片。
其管腳排列如圖19所示。

圖19 STC12C5A60S2管腳排列
單片機(jī)的時(shí)鐘電路和復(fù)位電路分別如圖20和圖21所示。
時(shí)鐘電路:

圖20 時(shí)鐘電路
復(fù)位電路:

圖21復(fù)位電路
此外,系統(tǒng)需要與上位機(jī)進(jìn)行通信,采用MAX232做電平轉(zhuǎn)換,以使單片機(jī)的TTL電平和RS232協(xié)議的電平相同。
具體電路如圖22所示。

圖22 MAX232轉(zhuǎn)串口 圖23 RC濾波
在使用A/D功能時(shí),為消除信號(hào)干擾,在P1口設(shè)計(jì)RC濾波電路,如圖23所示。
4、軟件流程
(1)充電管理
在此段程序中,首先連續(xù)三次檢測鋰電的電壓是否大于1V,判斷放入的鋰電池是否有效。待判斷成功后,檢測太陽電池的輸出電壓,若電壓大于6V,采用降壓充電通道,并打開此通道的充電門控,關(guān)閉降壓充電通道;若電壓小于6V,采用升壓充電通道,并打開降壓充電通道的充電門控,關(guān)閉升壓充電通道門控。當(dāng)檢測到鋰電池電壓大于等于4.2V時(shí)或鋰電池溫度大于60°C時(shí),關(guān)閉所有充電通道。程序一直對鋰電池電壓進(jìn)行檢測,直到鋰電池電壓降到4V且溫度小于60°C時(shí),根據(jù)相應(yīng)情況打開相應(yīng)的充電通道。
具體的程序流程圖如圖24所示。

圖24充電流程 圖25串行通信流程
(2)串行通信
此段程序的主要任務(wù)是實(shí)現(xiàn)與上位機(jī)之間的通信。先進(jìn)行判斷是發(fā)送還是接收,若是發(fā)送,則將采集到的太陽能電池電壓、鋰電池電壓、鋰電池溫度發(fā)送至上位機(jī)并在上位機(jī)界面上顯示;若是接收,則需響應(yīng)上位機(jī)發(fā)送的指令(0XAA為開始充電,0XFF為停止充電),并做出相應(yīng)操作。
具體的程序流程圖如圖25所示。
(3)追光控制
此段程序用于實(shí)現(xiàn)太陽能電池板的實(shí)時(shí)追光。分別采集三個(gè)光敏電阻端和已知電阻端的電壓,通過模擬量的電壓分析,模糊地判斷光線的強(qiáng)弱,并與另兩路尋光傳感器電路中得到的電壓值相比較,判斷出光源的位置,并將新的jd值賦給PCA捕捉/比較寄存器,產(chǎn)生新的PWM,調(diào)節(jié)舵機(jī)轉(zhuǎn)動(dòng)的角度,使太陽能電池始終對準(zhǔn)光源。
具體的程序流程圖如圖26所示。

圖26 追光流程
四、系統(tǒng)特色及創(chuàng)新
本系統(tǒng)的全部能量均來自太陽能,是順應(yīng)時(shí)代潮流的積極探索。通過光電轉(zhuǎn)化后將電能存儲(chǔ)到鋰電池中,再給各個(gè)模塊供電,可再生能源的使用響應(yīng)了當(dāng)下“和諧社會(huì)”的建設(shè),為本系統(tǒng)提升了競爭力。
本系統(tǒng)解決了低電壓無法工作的問題。我們添加了低壓檢測中斷功能,當(dāng)電壓過低時(shí),會(huì)觸發(fā)中斷,系統(tǒng)會(huì)保存重要的數(shù)據(jù),當(dāng)電壓正常時(shí),可恢復(fù)工作。同時(shí),當(dāng)沒有光照時(shí),系統(tǒng)靠存儲(chǔ)在鋰電池中的電能工作,我們也不用擔(dān)心鋰電池突然損壞的問題,因?yàn)楫?dāng)鋰電池?zé)o法供電時(shí),只要有光照,單片機(jī)仍可啟動(dòng)工作。
本系統(tǒng)提高了光電轉(zhuǎn)換的效率。機(jī)械和舵機(jī)的配合追光,既考慮了舵機(jī)耗電的問題,也提高了光電轉(zhuǎn)換率。機(jī)械追光利用的是當(dāng)?shù)氐乩砦恢玫奶攸c(diǎn),將太陽能電池板與地平面成的角度和當(dāng)?shù)氐木暥纫恢。例如,合肥?dāng)?shù)氐木S度在32°左右,我們就將太陽能電池板與地平面的角度調(diào)節(jié)到32°左右,再通過舵機(jī)調(diào)節(jié),配合追光。
需要說明的是,系統(tǒng)安裝好后,此機(jī)械角度無需再次調(diào)節(jié)。
系統(tǒng)充分考慮了鋰電池的特性及其充電要求。采用可太陽能供電的CN3063智能充電管理芯片,而且為鋰電池安裝了保護(hù)板,這些措施為鋰電池的安全有效充電提供了保障;低壓涓流充電的方式,能重新激活鋰電池,正常電壓情況下,恒流/恒壓的充電方式更能安全快速的為鋰電池充電,系統(tǒng)的“再充電”功能也防止了鋰電池的過放;系統(tǒng)還設(shè)計(jì)了升/降壓兩路充電通道,以光耦器件作為開關(guān),開關(guān)迅速而且不會(huì)產(chǎn)生電火花,通過程序的設(shè)計(jì),自動(dòng)切換充電通道;18B20溫度檢測的加入,能有效防止鋰電池溫度過高而損壞,為鋰電池的安全提供了第二重保障。
系統(tǒng)中的照明燈改變了傳統(tǒng)照明燈非開即關(guān)的特點(diǎn)。利用脈寬調(diào)制(PWM)模擬DA功能,實(shí)現(xiàn)了智能調(diào)光,當(dāng)外界光線越弱時(shí),照明燈越亮,當(dāng)外界光線越強(qiáng)時(shí),照明燈越暗,直至關(guān)閉,此方法的推廣使用,會(huì)更節(jié)能。
VB上位機(jī)界面的設(shè)計(jì),實(shí)現(xiàn)了人工智能化管理。在上位機(jī)界面上,可以直觀的看到系統(tǒng)的運(yùn)行情況,包括太陽能電池輸出電壓、鋰電池電壓、鋰電池溫度、鋰電池電壓變化曲線,如果系統(tǒng)運(yùn)行出了故障,可以在上位機(jī)上加以控制,及時(shí)停止充電,避免了更大的損失。
本系統(tǒng)還有很大的提升空間。例如在經(jīng)濟(jì)許可的情況下,將有線傳輸改為無線傳輸,仍能實(shí)現(xiàn)通信;增大太陽能電池板的功率,使用鋰電池電池組,添加逆變模塊,可產(chǎn)生220V交流電,供小功率電器使用等等。
五、系統(tǒng)應(yīng)用及展望
本系統(tǒng)可用于太陽能充電器,新型路燈,手電筒、玩具、航模。應(yīng)用在通訊設(shè)備如移動(dòng)電話、網(wǎng)絡(luò)電話、對講機(jī)、藍(lán)牙耳機(jī);移動(dòng)辦公設(shè)備如筆記本計(jì)算機(jī)、PDA、便攜式傳真機(jī)、打印機(jī);影像設(shè)備如數(shù)碼相機(jī)、攝像機(jī)、移動(dòng)DVD、移動(dòng)電視、MP3、MP4等。
鑒于此系統(tǒng)能有效的保護(hù)鋰電池,活化鋰電池,延長鋰電池壽命,還可以考慮應(yīng)用在信號(hào)發(fā)射塔上為鋰電池組充電,能為通訊服務(wù)商節(jié)約更換鋰電池組的成本。
根據(jù)系統(tǒng)追光特性,還可以將系統(tǒng)安裝在屋頂,為家居用電提供可能;安裝在電動(dòng)汽車頂部,無論車子走到哪里,只要有太陽光,都會(huì)找到最佳位置吸光儲(chǔ)能。
總之,該系統(tǒng)應(yīng)用十分廣泛,只要其工作環(huán)境有光源,用到鋰電池,都可以考慮改裝后使用,發(fā)展前景相當(dāng)好。
附錄一 鋰電池保護(hù)板介紹
系統(tǒng)中使用的鋰電池保護(hù)板采用的IC芯片是DW01+。DW01+是一個(gè)鋰電池保護(hù)電路,為避免鋰電池因過充電、過放電、電流過大導(dǎo)致電池壽命縮短或電池被損壞而設(shè)計(jì)的。它具有高精確度的電壓檢測與時(shí)間延遲電路。它的工作電流低,過充檢測4.3V,過充釋放4.05V;過放檢測2.5V,過放釋放3.0V;芯片內(nèi)部有過了保護(hù)復(fù)位電阻,廣泛應(yīng)用于單節(jié)鋰電池的保護(hù)電路DW01+的管腳排列如圖27所示。

圖27 DW01+管腳排列
DW01+是各管腳功能如表4所示。
表4DW01+管腳功能

DW01+的應(yīng)用電路如圖28所示。

圖28 DW01+應(yīng)用電路
附錄二 PT1301升壓、負(fù)載指示、低壓報(bào)警指示介紹
1、PT1301升壓
PT1301 是一款啟動(dòng)電壓可低于1V的小尺寸高效率升壓DC/DC轉(zhuǎn)換器。采用自適應(yīng)電流模式PWM控制環(huán)路,能在較寬的負(fù)載電流范圍內(nèi)穩(wěn)定和高效的工作,并且不需要任何外部補(bǔ)償電路;PT1301 內(nèi)部含有 2A 功率開關(guān),在鋰電池供電時(shí)最大輸出電流可達(dá) 300mA,同時(shí) PT1301 還提供用于驅(qū)動(dòng)外部功率器件(NMOS 或 NPN)的驅(qū)動(dòng)端口,以便在應(yīng)用需要更大負(fù)載電流時(shí),擴(kuò)展輸出電流。14μA 的低靜態(tài)電流,再加上高效率,可使電池使用更長時(shí)間,因此非常適合給舵機(jī)供電。
PT1301的管腳排列如圖29所示
圖29 PT1301管腳排列
PT1301各管腳功能如下表5所示。
表5 PT1301管腳功能

PT1301的典型應(yīng)用電路如圖30所示。

圖30 PT1301應(yīng)用電路
2、負(fù)載指示
負(fù)載指示燈的原理如圖31所示。

圖31負(fù)載指示
工作原理分析:當(dāng)電源連接上負(fù)載時(shí),指示燈就會(huì)亮,當(dāng)負(fù)載所需的電流越大時(shí),指示燈就會(huì)越亮;相反,當(dāng)負(fù)載所需電流減小時(shí),指示燈就會(huì)變暗。此電路用于觀察舵機(jī)的用電情況。
3、低壓報(bào)警指示
本系統(tǒng)具有鋰電池低壓報(bào)警指示功能,當(dāng)鋰電池電壓低于3.3V時(shí),報(bào)警指示燈就會(huì)亮,這里采用的是TP74芯片。
TP74是一款高精度、低功耗的電壓檢測器。芯片由基準(zhǔn)電壓產(chǎn)生器、電壓取樣電路、比較器及輸出單元構(gòu)成;可提供NMOS開漏和CMOS兩種輸出,用于1.5V-3.6V的電源電壓的檢測,可為大多數(shù)微處理器及數(shù)字系統(tǒng)電源提供電壓檢測。當(dāng)輸入電壓低于預(yù)先設(shè)定值Vdf)時(shí),reset信號(hào)啟動(dòng)直至輸入電壓恢復(fù),電路重新工作。TP74的管腳排列如圖32所示。

圖32 TP74管腳排列
TP74個(gè)管腳功能如表6所示。
表6 TP74管腳功能描述
低壓報(bào)警指示的原理如圖33所示。

圖33低壓報(bào)警指示
工作原理分析:當(dāng)輸入電壓Vin>3.3V時(shí),輸出電壓Vout=Vin,此時(shí),發(fā)光二極管兩端電壓相等,因此,當(dāng)鋰電池電壓高于3.3V時(shí),指示燈滅;若當(dāng)輸入電壓Vin<3.3V時(shí),輸出電壓Vout為零,此時(shí),發(fā)光二極管兩端有電壓差,指示燈亮。 表7列出了使用過程中負(fù)載指示燈和低壓報(bào)警指示燈的狀態(tài)及含義。
表7 負(fù)載指示燈和低壓報(bào)警指示燈的狀態(tài)及含義
|
|
負(fù)載指示燈(藍(lán)色)
|
鋰電池低壓報(bào)警指示燈(黃色)
|
|
鋰電池待機(jī)中
|
滅
|
滅
|
|
鋰電池使用中
|
亮
|
滅
|
|
鋰電池使用中且電池電壓低
|
滅
|
亮
|
|
鋰電池待機(jī)中且電池電壓低
|
滅
|
閃爍
|
附錄三 外圍充電電路原理圖

|