1 主程序設計
圖5為主程序流程圖。主程序的作用是選擇是否改變PWM頻率及照度上限、無人模式和有人調光模式。恒照度算法在定時中斷處理程序中實現(xiàn)。
2 調光算法設計
調光算法主要實現(xiàn)光照度信號的采集、數(shù)據(jù)處理運算并通過相應的算法實現(xiàn)實時跟蹤補償照度,從而實現(xiàn)平滑調光。TSL2561光照度傳感器數(shù)字輸出符合I2C總線標準協(xié)議,實現(xiàn)光照度采集必須實現(xiàn)TSL2561通信。I2C總線標準協(xié)議的讀寫方法主要有硬件實現(xiàn)和軟件模擬,由于PIC16F690控制器沒有自帶的I2C總線接口,故本文采用軟件模擬實現(xiàn)的方法。
采集進來的數(shù)據(jù)經過TSL2561標準規(guī)定的數(shù)據(jù)計算后獲得光照度,將采集進來的室內光照度與設定的標準值比較,計算出LED需要補償?shù)恼斩戎?,并轉化為處理器內PWM寄存器的值,記為當前PWM值。將前PWM寄存器值記為PWM原值。將PWM原值與當前PWM值不斷比較遞增或遞減,使PWM輸出以極小的步長跟蹤當前PWM值,從而實現(xiàn)平滑調光。此算法還能解決啟動跳變問題,使系統(tǒng)啟動時PWM由零慢慢變化到當前PWM值。調光算法程序流程圖如圖6所示。
3 運動控制和按鍵輸入程序設計
運動控制采用紅外熱電釋人體運動傳感器,能夠檢測室內是否有人,通過判斷人體的活動情況選擇相應的照明模式。若有人則選擇調光模式,若無人則關閉LED燈,進一步節(jié)能。
按鍵輸入主要有模式切換鍵及增減鍵,模式切換鍵主要用于切換改變頻率或者改變光照度的最大設定值。考慮到單片機的硬件資源和合理的調光需求,時鐘預分頻比設定為4,頻率變化范圍為10~100 kHz,光照度最大設定值根據(jù)多次測量各時間段的光照度選取合適的調節(jié)范圍,故光照度最大設定值范圍為350~500。





