何小映
(西安航空學院 電子工程學院,陜西西安, 710077)
在某些生產生活中,有些房間或廠房面朝東或西,太陽光將通過窗戶照射進房間,照射時間長,而其中有些設備不能受到太陽光長時間的照射,所以需要設計一套窗簾控制系統,該系統能夠自動判斷光線的強弱,識別白天和黑夜,也能區(qū)分自然光和太陽光,當白天,窗簾未受到太陽光照時,可以打開窗簾,當太陽光照射窗簾時,關閉窗簾,保護設備免受日光長時間照射以達到保護目的,當夜晚傍晚或黎明光線較弱時將窗簾關閉。此系統也適用于對太陽光耐受性較差的物體的保護或其他需要避免陽光照射的場合。
該系統包括太陽檢測裝置、A/D轉換、無線發(fā)送模塊、無線接收模塊、電機控制模塊五個部分,系統的整體結構如圖1所示[1]。
圖1 系統整體結構圖
從圖1中可以看到,為了使房間避免長時間受到陽光照射,在靠近窗戶的外墻壁表面安裝一個太陽光檢測裝置,其檢測元件的感光面與墻面平行,由該裝置將太陽光轉化為電壓,再由A/D轉換部分轉換為數字信號,通過無線發(fā)送模塊發(fā)送出去,接收端安裝在室內,通過無線方式接收電壓數據,并經過程序判斷光線的強弱及太陽光的有無,從而由電機控制模塊控制窗簾的啟閉。
發(fā)送部分負責太陽光的檢測及信號的無線發(fā)送,包括太陽光檢測裝置、A/D轉換、STC89C51單片機最小系統[2]、無線發(fā)送模塊NRF24L01、指示電路組成,框圖如圖2所示。
圖 2 發(fā)送電路框圖
2.1.1 太陽檢測裝置
在圖2中,太陽檢測裝置為光敏電阻模塊[3],其電路結構如圖3所示。
圖3 光敏模塊
圖中,R2為光敏電阻,AO為輸出地模擬電壓。光敏電阻基于內光電效應的工作原理[4]。光照愈強,它的阻值就愈低,光照強度升高,它的電阻值就迅速降低,其亮電阻
值可小于1kΩ以下。光敏電阻對光線十分敏感,其在無光照時,呈高阻狀態(tài),暗電阻一般可達1.5MΩ。經實驗得出2022年7月31日(晴)不同時間時光敏模塊輸出電壓AO的值,如表1所示。
表1 光敏模塊電壓(V)及陽光窗簾狀態(tài)
?
從表1可以看出,6:15以前夜晚到黎明時,光線較弱,太陽光檢測模塊輸出電壓較大,在0.50V以上,窗簾處于關閉狀態(tài),6:15~7:37,光線逐漸變強,光敏模塊輸出電壓降到0.50V及以下,0.10V以上,但太陽光沒有照射窗戶,所以打開窗簾,一直到7:38太陽光開始照射光敏模塊,模塊輸出的電壓開始迅速減小到0.10V,此時關閉窗簾,當陽光全部照射到光敏模塊伴后,隨著太陽光線的增強,模塊的電壓下降到0.10V以下,從8:25開始到10:40都維持最小值0.06V,隨后隨著太陽光與光敏模塊位置的變化,模塊輸出電壓有所上升,10:47開始升高到0.07V,到11:30又升高為0.08V,到11:49又升高為0.09V,到12:11又升高為0.10V,直到12:30都維持為0.10V,此時間段窗簾都關閉,12:31太陽光全部掠過不再照射光敏模塊,模塊輸出電壓變?yōu)?.11V,此時可以開窗簾,此后隨著光線的下降,光敏模塊輸出電壓開始升高,到傍晚19:00升高到0.41V,到19:15后升高到0.50V以上,光線已經比較弱了,此時可以關閉窗簾,此后進行新一天循環(huán)。綜上所述,從光敏模塊輸出的電壓情況就能判斷出物體是否受到陽光照射及光線強弱,規(guī)律就是,當受到光照后,光敏模塊的電壓降到0.10V及以下時,應該關閉窗簾,當無太陽光照但是光線較強時光敏模塊的電壓介于0.11V到0.50V之間,應該打開窗簾,當光敏模塊電壓大于0.50V時,天氣介于夜晚或黎明或傍晚,光線較弱,窗簾關閉。
2.1.2 A/D轉換
由于光敏模塊輸出的電壓在受到太陽照射時電壓較小,在0.06~0.10V之間,所以A/D轉換采用10位AD轉換器件ADC1005以提高分辨率[5],將太陽光檢測裝置輸出的AO電壓轉換為10位數字量,電路如圖4所示。ADC1005為10位逐次逼近式AD轉換器件,其輸入為差分輸入方式,圖中,VIN(+)、VIN(-)為待轉換的模擬信號正負端,VIN(+)端接待轉換信號AO。CLKR、CLKIN為時鐘輸入端,接阻容元件,轉換頻率如公式(1)所示:
在圖示參數情況下,轉換頻率為1.8MHz,介于該芯片的0.2~2.6MHz的范圍,為片選信號,低電平有效,為寫信號,當這兩個信號同時為低電平時,AD轉換器進行復位,只要其中一個為高電平時,便啟動AD轉換,AD轉換結束后,變成高電平,當和RD都為低電平時讀取AD轉換結果,分兩次讀取,第一次讀取高八位,第二次讀取低兩位,讀取的低兩位在最高兩位上[6]。每次都從DB0~DB7輸出八位數字量,送到單片機P0.0~P0.7口。
圖 4 AD轉換電路
2.1.3 無線發(fā)送模塊
數據的發(fā)送采用無線模塊NRF24L01,該模塊與單片機的接口電路如圖5所示。
圖5 無線發(fā)送模塊與單片機接口
無線發(fā)送模塊采用NRF24L01[7],該模塊工作在2.4GHZ全球開放ISM頻段,需要的3.3V電源可以采用ASM1117模塊提供,該模塊采用SPI接口方式,管腳CE為片選信號,CSN為SPI片選信號,SCK為SPI時鐘,MOSI為SPI主出/從入信號,MISO為SPI從入/主出信號,IRQ為中斷輸入信號。
2.1.4 指示燈電路
指示燈電路部分采用2個LED發(fā)光二極管,其中LED指示發(fā)送過程,該指示燈熄滅表示無數據發(fā)送,點亮時表示正在進行發(fā)送,如果接收方沒有收到將會進行閃爍表示持續(xù)發(fā)送,如果發(fā)送完畢并且
收到應答信號則LED熄滅,LED1點亮,所以通過這兩個指示燈就可以知道發(fā)送的狀態(tài),電路如圖6所示。
圖6 發(fā)送狀態(tài)指示電路
程序設計采用C51編寫,發(fā)送端程序為循環(huán)結構,包括AD轉換程序和無線發(fā)送程序,AD轉換程序實現對模擬信號的轉換,發(fā)送程序則負責將AD轉換結果無線發(fā)送給接收端,流程圖如圖7所示。
圖7 發(fā)送程序流程圖
接收部分硬件設計電路如圖8所示,其中各部分電路分別如下所述。
圖8 接收部分電路
3.1.1 單片機與無線接收模塊部分
單片機與無線接收模塊的電路由單片機STC89C51和無線收發(fā)模塊NRF24L01構成,實現數據的無線接收。
3.1.2 指示電路
指示電路用來指示接收狀態(tài),P2.6連接LED陰極,控制方式見圖8所示。
3.1.3 控制電路
控制電路實現電機的控制,并進一步控制窗簾的開啟和關閉,包括單片機、電機驅動電路L293D、電機、限位檢測電路,單片機的P1.6、P1.7共同控制電機的運行,當P1.6=P1.7=0時,電機停轉,當P1.6=0,P1.7=1,時,電機正轉關閉窗簾,當P1.6=1,P1.7=0,時,電機反轉開啟窗簾。P2.0、P2.1進行行程檢測,檢測窗簾位置,當P2.0=0,P2.1=1時,窗簾全關,
當P2.0=1,P2.1=0時,窗簾全開,當P2.0=1,P2.1=1時,窗簾處于運行狀態(tài)。
接收部分程序流程圖如圖9所示。
圖9 接收程序流程圖
初始化包括定時器初始化和接收模塊初始化,接收端采用定時器定時,每200ms采集一次數據,每個數據包括數組RBUF的前三個元素,第一個元素的值為發(fā)送模塊標識符,值為0xa1,第二、三個元素的值為10位AD轉換電壓值數字量,為了減小干擾,進行平均值濾波,采集10次求平均值,再算出對應的電壓值V0,根據電壓值V0判斷光線強弱及有無太陽光照射窗簾,進而檢測窗簾的狀態(tài)再根據具體情況發(fā)出開關窗簾的指令,通過電機的正反轉進行開關窗簾,由行程開關檢測是否完全關閉或打開窗簾。
從實際需求出發(fā),設計了一個太陽光遮光系統,保護房間或庫房里的設備免受太陽光的照射,系統能夠檢測光線的強弱,判斷有無太陽光照射,進而控制電機正反轉進行關窗和開窗,實現對設備的避陽光照射保護。