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