懷化學院光電信息工程系 懷化學院武陵山片區生態農業智能控制技術湖南重點實驗室 劉 晉
懷化學院光電信息工程系 賀利朋 陳小玉
懷化學院光電信息工程系 懷化學院武陵山片區生態農業智能控制技術湖南重點實驗室 張順如
目前大學校園里使用的路燈存在不少的缺點:第一,功耗高,許多學校的路燈不是節能燈。第二,更為重要的現實問題是使用時的能源浪費問題,即在進入傍晚或黎明時,外界自然光亮度尚可,而一般校園路燈沒有相應的控制手段,使路燈處于較弱的亮度來節省能源;而在午夜至黎明的這段時間校道上基本無人,路燈的持續照明則會造成能源的不必要浪費,而直接斷電則有人經過而路燈卻不亮會造成行人不便。因此,根據學校路燈實際使用情況,即:傍晚和黎明時分有自然光的補充,路燈無需充分點亮,午夜至黎明人流稀少,路燈無需時刻保持點亮狀態,設計一種依據時間需求和自然光輻射、人體紅外光輻射的雙重控制路燈是符合校園路燈實際使用和節能需求的。
本設計的目標是根據校園路燈實際使用的情況,采用在照明時間上進行控制、及光電傳感器對人體紅外光、自然背景光的感應,設計出一種具有高節能且能夠實現高品質照明的時控及光控雙重控制模式的校園智能LED節能路燈,將實現:①在傍晚或黎明時依據自然光的明暗來控制路燈相應的亮度;②從午夜12點至凌晨6點熄滅路燈,該時間段內若有人經過則自動短時間亮起路燈以進行照明的功能。
本設計將采用單片機作為主控芯片,外界光信息的采集用紅外熱釋電傳感器、硅光電池等來實現,用ADC進行模數轉換,采用時鐘芯片來提供時間參考,用以照明的LED燈的亮度控制電路采用PWM調制,采用光敏電阻進行開關電路的搭建。智能路燈控制系統的原理設計總方案如圖1所示。

圖1 智能路燈控制系統的原理框圖
由于STC89C52RC單片機具有價格低、使用方便、資料多、可在線下載等諸多優點,本設計選用其作為主控芯片,該芯片是一種高性能低功耗的CMOS結構8位微CPU,其具有8K字節容量的可編程Flash存儲器,512字節隨機存儲,32位信號輸入輸出線,雖然STC89C52RC單片機仍然使用MCS-51內核,但其做了很多的改進。
采用熱釋電傳感器EG4002作為人員經過路燈時的信號采集芯片。本設計需要有人經過時路燈能一直工作,所以將引腳A接入高電平,支持重復觸發使有人經過時路燈能一直處于工作狀態。VC引腳接入單片機的P1.0引腳,當處于午夜至黎明之外的時間段內時,單片機將VC引腳置為低電平使EG4002禁止觸發,當處于午夜至黎明之間的時間內,單片機將VC引腳置為高電平使輸出信號隨輸入信號而觸發。
采用ADC0809轉換器作為AD轉換芯片。在本設計中ADC接入了硅光電池和熱釋電紅外傳感器的AD轉換通道分別為IN0、IN1兩個引腳。D0~D7引腳接單片機P3引腳用于輸出AD轉換結果。ST引腳用于控制AD轉換脈沖的啟動,當ST引腳電平被單片機由高電平置為低電平時出現下降沿啟動ADC0809,開始ADC轉換。單片機通過不停的讀取EOC引腳電壓的高低來判斷轉換是否完成。
采用DS1302作為時鐘芯片。外接32.768KHz的晶振為時鐘芯片提供計時脈沖,分別接到芯片的X1和X2引腳。單片機P0.5引腳接SCLK控制數據的輸入與輸出,可以通過單片機給SCLK引腳設置0和設置1來產生上升沿和下降沿控制DS1302的數據輸入和輸出。當RST被置為低電平時禁止數據傳輸,當RST被置于高電平時啟動數據傳輸。
采用光敏電阻來搭建開關電路,當外界光強降到某個特定值時,光敏電阻的阻值也增大到某個特定值使基極電壓達到開啟電壓,從而使三極管導通,驅動繼電器工作。同理,當外界光強增強時,由于光敏電阻的阻值降低而導致基極電壓低于開啟電壓,三極管不導通,從而使繼電器不工作,電路總開關斷開。
在軟件設計上主要采用Keil C51軟件包作為開發工具,系統設計思路是先進行初始化,具體過程是先對內部定時器T0和TI進行設置,然后利用時鐘芯片DS1302完成系統初始化函數,接下來進行外部信息采樣,分別開啟ADC0809芯片的0通道的采樣硅光電池電壓,開啟ADC0809芯片的1通道的采樣熱釋電的電壓,每個采樣環節都同時讀取時鐘芯片里面的時間,根據ADC0809采樣值和時間計算出LED燈珠的應該點亮的個數和判斷LED燈的開關。硅光電池與熱釋電傳感器采樣數據及LED燈控制完成一次后接著進行下一次相同操作過程。圖2所示是軟件設計流程圖。

圖2 智能路燈控制系統的軟件系統
本函數模塊作用主要是開啟ADC轉換電路,讀取轉換器接收到的模擬信號,并將之轉換成數字信號的。通過對ADC0809芯片的A、B和C三個引腳進行設置,選擇模擬輸入信號中的一路信號,通過對ST引腳進行0→1→0順序設置,開啟相應的模數轉換,用while循環語句等待該轉換的完成后可以將OE引腳設置成高電平進行相應的數字數據輸出,輸出的數字信號連接到單片機的端口,供單片機利用。
本模塊主要分為讀寫兩個子模塊,寫入DS1302初始時間值,讀出實時時間值。
(1)寫模塊
根據寫入命令字的不同對寄存器的不同位進行操作。對DS1302寫入80h時初始化實時時鐘的秒位,寫入82h時初始化實時時鐘的分位,寫入84h時初始化實時時鐘的小時位,寫入86h時初始化實時時鐘的日位,寫入88h時初始化實時時鐘的月位,寫入8Ah時初始化實時時鐘的周位,寫入8Ch初始化實時時鐘的年位。根據實際需求可對DS1302進行時間初始化。
(2)讀模塊
根據寫入不同的命令字可讀出不同時間位的值。向DS1302寫入81h時將讀取實時時鐘的秒位,向DS1302寫入83h時將讀取實時時鐘的分位,向DS1302寫入85h時將讀取實時時鐘的小時位,向DS1302寫入87h時將讀取實時時鐘的日位,向DS1302寫入89h時將讀取實時時鐘的月位,向DS1302寫入8Bh時將讀取實時時鐘的周位,向DS1302寫入8Dh時將讀取實時時鐘的年位。根據寫入不同的命令字可將時間所有的位依次讀出。
本模塊由LED數量控制、LED占空比控制和LED時控光控這三個子模塊組成。
(1)LED數量控制
將電壓分成若干個區間,根據硅光電池所采樣的電壓值用if else語句對應出相應的LED數量,外界光強越弱則對應LED所亮燈珠數越多。然后通過向74HC595寫入數量值控制相應數量的繼電器導通,從而控制相應數量的LED燈珠被點亮。
(2)LED占空比控制
根據硅光電池所采樣的電壓值用if else語句對應出相應的占空比。外界自然光強越弱的情況對應單顆LED燈珠亮度越強。
(3)LED時控光控
根據實際情況設定相應的亮燈區間到設定時間自動亮燈,到午夜模式時有人路過即亮燈。
我們將電路焊接好后檢查是否有錯焊以及虛焊,以及通電檢查電路中主要測試點的電壓是否正常,有無短路及斷路的情況,經過測試可以確認各個硬件已達到設計要求。我們在每一個子模塊的程序編寫完成后用編譯器進行了編譯,再將編譯無誤的程序下載到硬件芯片上進行驗證查看其運行效果,當每個子程序的運行效果都達到了預期目標后再將所有子程序組合在一塊進行驗證。系統測試結果表明,我們基于STC89C52單片機設計的時控與光控雙重作用的校園LED節能路燈達到了設計目標,其使用方便,節能效果良好。