張樹(shù)人+周景雷
摘 要: 在此闡述了利用光敏電阻尋找直射太陽(yáng)的原理,以STC12C5A60S2為控制核心,設(shè)計(jì)了一種自動(dòng)太陽(yáng)能跟蹤器。太陽(yáng)照射情況通過(guò)太陽(yáng)能電池板4邊上的4個(gè)光敏電阻測(cè)得,經(jīng)過(guò)放大后輸送到單片機(jī),在單片機(jī)內(nèi)由軟件進(jìn)行分析計(jì)算,得出電池板需要偏移的方向和角度,最后通過(guò)2個(gè)伺服電機(jī)對(duì)電池板左右和上下偏移進(jìn)行控制,從而提高了轉(zhuǎn)化效率。
關(guān)鍵詞: STC12C5A60S2; 自動(dòng)太陽(yáng)能跟蹤器; 光敏電阻; 轉(zhuǎn)化效率
中圖分類(lèi)號(hào): TN919?34; TP273 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)08?0142?03
Design of automatic solar tracker based on STC12C5A60S2
ZHANG Shu?ren, ZHOU Jing?lei
(College of Jiang?zheng Machine and Electronic Engineering, Heze University, Heze 274015, China)
Abstract: The principle to look for the direct sun by using photosensitive resistance is expounded in this article. An automatic solar tracker taking the STC12C5A60S2 as its core was designed. The suns irradiation status is measured by the four photosensitive resistances embedded on four sides of the solar panel, sent to the single chip microcomputer (SCM) after amplification, and then analyzed and calculated in the SCM by software to get deviation direction and angle that the panel needs to be moved. At last, two servo motors are adopted to control panels left?right and up?down migration, and improve the luminous efficiency.
Keywords: STC12C5A60S2; automatic solar tracker; photosensitive resistance; luminous efficiency
進(jìn)入21世紀(jì),隨著工業(yè)等各行各業(yè)的迅速發(fā)展,化石燃料的使用量在極具增加,人們不得不面臨兩個(gè)嚴(yán)峻的現(xiàn)實(shí)——資源日益短缺和生態(tài)環(huán)境極具惡化。為了緩解這些問(wèn)題世界各國(guó)都采取了一系列政策和措施,來(lái)大力扶持和發(fā)展節(jié)能環(huán)保產(chǎn)業(yè),其中太陽(yáng)能電池板就是一個(gè)重要的領(lǐng)域。由于不同季節(jié)、地區(qū)、時(shí)間段太陽(yáng)光強(qiáng)最強(qiáng)點(diǎn)總是變化的,以及其他不確定因素的影響,在利用太陽(yáng)能時(shí),自然而然地就出現(xiàn)了一個(gè)問(wèn)題,那就是電池板如何自動(dòng)跟蹤太陽(yáng)直射,使得轉(zhuǎn)化效率最高,經(jīng)過(guò)幾年的研究,已經(jīng)取得了不錯(cuò)的成績(jī)[1?3]。筆者根據(jù)自己的經(jīng)驗(yàn)設(shè)計(jì)了一種太陽(yáng)能自動(dòng)跟蹤器,取得了不錯(cuò)的效果。
1 系統(tǒng)組成
為解決上述問(wèn)題,本設(shè)計(jì)采用對(duì)光強(qiáng)敏感的光敏電阻檢測(cè)太陽(yáng)光強(qiáng)最強(qiáng)點(diǎn),根據(jù)多個(gè)光敏電阻檢測(cè)最強(qiáng)光強(qiáng)的差值作為伺服電機(jī)的輸入量,控制電池板兩個(gè)自由度靈活準(zhǔn)確偏轉(zhuǎn)。工作原理如圖1所示。該系統(tǒng)時(shí)刻檢測(cè)太陽(yáng)與光敏傳感器的位置,并將檢測(cè)到的信號(hào)經(jīng)過(guò)放大輸入到單片機(jī),在單片內(nèi)經(jīng)過(guò)計(jì)算和分析得出太陽(yáng)能電池板如何偏移及偏移的角度,該偏移信號(hào)由驅(qū)動(dòng)電路驅(qū)動(dòng)伺服電機(jī),進(jìn)而帶動(dòng)電池板進(jìn)行偏轉(zhuǎn),到達(dá)最佳位置。實(shí)物示意圖如圖2所示。
2 控制系統(tǒng)設(shè)計(jì)
2.1 控制器
本裝置控制系統(tǒng)核心控制器采用STC公司生產(chǎn)的單時(shí)鐘單片機(jī)STC12C5A60S2,該器件是高速、低功耗、超強(qiáng)抗干擾的一代8051單片機(jī),指令代碼完全兼容8051,但速度較其提升8~12倍,60 KB FLASH程序存儲(chǔ)器,1 280 B RAM數(shù)據(jù)存儲(chǔ)器,E2PROM分為若干扇區(qū),每個(gè)扇區(qū)含512 B,7路I/O口外部中斷,4個(gè)16位定時(shí)器,3個(gè)時(shí)鐘輸出口,內(nèi)部集成MAX810專(zhuān)用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250千次/s,即25萬(wàn)次/s)針對(duì)電機(jī)控制,強(qiáng)干擾場(chǎng)合。
自動(dòng)太陽(yáng)能跟蹤器的基本控制方式主要有MCU(單片機(jī))控制和PLC[4]控制等幾種形式,相比其他而言MCU控制更具有簡(jiǎn)單、靈活的特點(diǎn)。而STC12C5A60S2是傳統(tǒng)8051的升級(jí)版,控制上像8051一樣簡(jiǎn)單,功能上卻毫不遜色其他MCU,而且性價(jià)比特別高,綜合考慮本設(shè)計(jì)選擇STC12C5A60S2單片機(jī)作為控制核心。
2.2 光強(qiáng)信號(hào)采集及伺服電機(jī)控制
光敏電阻工作原理是基于內(nèi)光電效應(yīng)。在其受到光照時(shí),內(nèi)部產(chǎn)生的載流子參與導(dǎo)電,由于外加的電場(chǎng),載流子會(huì)做漂移運(yùn)動(dòng),電子流向電源正極,空穴流向電源負(fù)極,從而使其阻值迅速下降,光照消失后,由光激發(fā)產(chǎn)生的電子?空穴對(duì)將復(fù)合,其阻值也將恢復(fù)原值。
伺服電機(jī)可以使控制速度、位置精度非常精確,依靠脈沖來(lái)定位而且能快速響應(yīng),作為執(zhí)行元件其具有始動(dòng)電壓、線性度高等特性。本設(shè)計(jì)伺服電機(jī)的控制信號(hào)來(lái)源于單片機(jī)的輸出脈沖。
本設(shè)計(jì)光強(qiáng)采集采用靈敏度較高的光敏電阻,分布于電池板4個(gè)邊沿的中心位置(圖2中紅色點(diǎn)),光強(qiáng)不同,則其阻值不同,單片機(jī)A/D采集的信號(hào)不同,轉(zhuǎn)換出的數(shù)據(jù)亦不同,根據(jù)電池板上下光敏電阻的差值作為控制系統(tǒng)的輸入量,經(jīng)過(guò)程序算法計(jì)算出相應(yīng)脈沖信號(hào),由單片機(jī)輸出,控制伺服電機(jī)1,調(diào)節(jié)電池板上下偏移。同理,左右控制由電池板左右光敏電阻差值計(jì)算。據(jù)此可以實(shí)現(xiàn)電池板靈活準(zhǔn)確的跟蹤太陽(yáng)光強(qiáng)求出最強(qiáng)點(diǎn),實(shí)現(xiàn)電池板的最大效率。信號(hào)處理電路如圖3所示[5]。圖中,R_Uin是電池板上部光敏電阻采集信號(hào),R_Din是電池板下部光敏電阻采集信號(hào),經(jīng)過(guò)各自放大,再進(jìn)行查分放大,得到輸出信號(hào)Uout輸送到單片機(jī)A/D采集口。限于篇幅,左右電路在此不再列舉。
3 軟件設(shè)計(jì)
限于篇幅,這里只給出A/D轉(zhuǎn)換子程序、PWM配置子程序和左右偏移子程序。程序編譯環(huán)境為Keil4[6]。
3.1 A/D轉(zhuǎn)換子程序
光信號(hào)的采集使用4路高速A/D通道,使用多次采樣求均值的方法提高數(shù)據(jù)的準(zhǔn)確性。
//****A/D讀第n通道取值****//
uint get_adc(uchar n)
{ uint adc_data;
ADC_RES = 0; //清零
ADC_CONTR=ADC_POWR|ADC_SPEEDLL|n|ADC_START; //打開(kāi)A/D轉(zhuǎn)換電源,設(shè)定轉(zhuǎn)換速度、通道號(hào),A/D轉(zhuǎn)換開(kāi)始
_nop_();
_nop_();
_nop_();
_nop_(); //要經(jīng)過(guò)4個(gè)CPU時(shí)鐘的延時(shí),其值才能夠保證
被設(shè)置進(jìn)ADC_CONTR 寄存器
while(?。ˋDC_CONTR&ADC_FLAG)); //等待轉(zhuǎn)換完成
adc_data=ADC_RES; //轉(zhuǎn)換結(jié)果計(jì)算,取8位結(jié)果
ADC_CONTR&=~ADC_FLAG;
//關(guān)閉A/D轉(zhuǎn)換,ADC_FLAG位由軟件清0
return adc_data; //返回ADC的值
}
//****A/D精度處理****//
float AD_work(uchar n)
{ float AD_val; //定義處理后的數(shù)值A(chǔ)D_val為浮點(diǎn)數(shù)
unsigned char i;
for(i=0;i<100;i++)
AD_val+=get_adc(n); //轉(zhuǎn)換100次求平均值(提高精度)
AD_val/=100;AD_val=(AD_val*5)/256;
//A/D的參考電壓是單片機(jī)上的5 V,所以乘5即為實(shí)際電壓值
return AD_val;
}
3.2 PWM配置子程序
采用單片機(jī)內(nèi)部自帶的兩路PWM輸出控制該裝置兩個(gè)伺服電機(jī)的精確偏轉(zhuǎn),使電池板在兩個(gè)自由度上靈活移動(dòng)。限于篇幅,這里只給出控制左右偏移伺服電機(jī)的PWM程序。
void PWM_A(uchar y)
{ CR=1; //啟動(dòng)PCA計(jì)數(shù)器
CCAP0H=y; //占空比高8位控制
CCAP0L=y; //占空比低8位控制
while(!CCF0); //等待正脈寬結(jié)束
CR=0; //停止PCA計(jì)數(shù)器
}
3.3 左右偏移子程序
理論上同軸上的兩個(gè)光敏電阻面對(duì)最強(qiáng)光源時(shí),所得到的數(shù)據(jù)即A/D轉(zhuǎn)換后所得的數(shù)值應(yīng)該相等,但實(shí)際情況總存在誤差,所以在同軸電阻數(shù)據(jù)求差時(shí)設(shè)定一極小誤差值e,若同軸電阻數(shù)據(jù)差值在正負(fù)e內(nèi),則認(rèn)為是最強(qiáng)光源點(diǎn),伺服電機(jī)便可上下、左右控制電池板偏移到最強(qiáng)光源點(diǎn)。
//*****左右偏移*****//
if((AD_work(1)?AD_work(2))>=E)
//如果左邊光敏電阻的A/D值減去右邊光敏電阻的A/D值打入閾值
{ while((AD_work(1)?AD_work(2))<=e)
//用while語(yǔ)句實(shí)現(xiàn)舵機(jī)的連續(xù)轉(zhuǎn)動(dòng),直至滿足設(shè)定的條件
{ PWM_A(i); //舵機(jī)PWM輸出
i++; //變量自加,實(shí)現(xiàn)舵機(jī)向左轉(zhuǎn)動(dòng)
if(i==0xff) //保護(hù)程序,防止溢出
{ i=0xff; //i最大值為0xFF 255 break; //跳出while循環(huán)
}
}
}
else if((AD_work(2)?AD_work(1))>=E)
//如果右邊光敏電阻的ad值減去左邊光敏電阻的ad值打入閾值
{ while((AD_work(2)?AD_work(1))<=e)
//用while語(yǔ)句實(shí)現(xiàn)舵機(jī)的連續(xù)轉(zhuǎn)動(dòng),直至滿足設(shè)定的條件
{ PWM_A(i); //舵機(jī)PWM輸出
i??; //變量自加,實(shí)現(xiàn)舵機(jī)向右轉(zhuǎn)動(dòng)
if(i==0) //保護(hù)程序,防止溢出
{ i=0; //i最小值為0 break; //跳出while循環(huán)
}
}
}
else
{ PWM_A(i); //如果采集值變化在要求內(nèi),維持上一次值
}
4 結(jié) 語(yǔ)
隨著太陽(yáng)能的利用越來(lái)越廣泛,對(duì)自動(dòng)太陽(yáng)能跟蹤器的研究也越來(lái)越重要。本文以單片機(jī)STC12C5A60S2為控制核心,設(shè)計(jì)了一種太陽(yáng)能自動(dòng)跟蹤器,能隨著四季、一天早晚太陽(yáng)直射不同情況進(jìn)行實(shí)時(shí)調(diào)節(jié),現(xiàn)場(chǎng)試驗(yàn)結(jié)果表明該控制器跟蹤準(zhǔn)確、轉(zhuǎn)化效率高,有著明顯的現(xiàn)實(shí)意義。
參考文獻(xiàn)
[1] 伍春生,劉四洋,彭燕昌,等.基于PIC16F877A自動(dòng)太陽(yáng)能跟蹤器的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2007,30(20):147?149.
[2] 杜云峰.基于單片機(jī)的太陽(yáng)能自動(dòng)跟蹤系統(tǒng)的研究[J].現(xiàn)代電子技術(shù),2010,33(15):157?159.
[3] 王海鵬,鄭成聰,徐丹,等.基于單片機(jī)的太陽(yáng)能自動(dòng)跟蹤裝置的設(shè)計(jì)與制作[J].科學(xué)技術(shù)與工程,2010,10(19):4651?4655.
[4] 羅維平.基于PLC的太陽(yáng)能電池板自動(dòng)跟蹤系統(tǒng)的研究[J].電子技術(shù)與應(yīng)用,2009(9):138?140.
[5] 童詩(shī)白.模擬電子技術(shù)基礎(chǔ)[M].4版.北京:高等教育出版社,2006.
[6] 郭天祥.新概念51單片機(jī)C語(yǔ)言教程:入門(mén)、提高、開(kāi)發(fā)、拓展全攻略[M].北京:電子工業(yè)出版社,2009.