摘 要: 為了節能和智能控制燈光,構建了一個以STC12C5410AD單片機為核心的LED照明閉環控制系統,實現了對白光LED照明的閉環控制功能。該系統利用光敏電阻實時采集環境光線強度,自動調節白光LED亮度;采用A/D轉換將光線強度的模擬量轉化為數字量;采用I/O口實現對LED的PWM功率控制;采用電流驅動,電流步距可調的方式來調節白光LED。通過測試表明,該系統提高了照明環境的品質,具有電路簡單、可靠性強的優點。
關鍵詞: STC12C5410AD;白光LED;A/D轉換;PWM;電流驅動
0 引言
白光LED由于其獨特的發光原理使其具有節約能源、環保、壽命長、發光效率高、成本低、減少維護費用、提供更好的燈光品質等優點[1],而成為人們關注的焦點。近年來在各行業的應用得以快速發展,包括在景觀、沿途公路、隧道等場所都有一定的應用。目前國內外己經開始實行對燈光的智能控制,但國內對樓宇燈光的智能控制還很簡單且不完善,大多依然是傳統式的人工管理,造成了電能浪費和經濟損失,而且過強或過弱的光照條件會帶給人不適感覺。因此本文設計了LED照明閉環控制系統,采用PWM調光技術,采集環境光線強度,自動調節3 mm LED亮度,達到經濟、節能的目的。
LED照明閉環控制系統由12個3 mm白光LED組成,采取軟硬件設計相結合的方式,以STC12C5410AD單片機[2]為核心來實現總體方案的設計,從而完成該閉環控制系統的功能。
1 總體思路的設計
系統的硬件電路框架如圖1所示,主要由STC12C5410AD主控制模塊、數據采集模塊、脈沖電流驅動模塊、通信模塊、人機界面模塊5個模塊組成。其中,主控制模塊以STC12C5410AD為核心由電源模塊、時鐘模塊、復位模塊構成。數據采集模塊利用感光元件光敏電阻采集環境光線強度,再利用STC12C5410AD的ADC轉換器把光線強度值的模擬量轉化為數字量。脈沖電流驅動模塊主要由S8050和白光LED構成,通過脈寬調制PWM產生的脈沖電流來驅動LED,改變脈沖電流的占空比來調節LED的亮度。人機界面模塊包括鍵盤處理模塊、LED顯示模塊和數碼管顯示模塊。鍵盤處理模塊用來調節LED亮度變化的步長,而且當前步長通過數碼管顯示模塊的七段數碼管來顯示。串口通信模塊用于硬件電路與PC的通信,傳輸數據。
該系統的軟件設計采用功能模塊化編程思想實現,不同的模塊完成相應的功能,并有程序上的中斷、循環等。
2 硬件電路的設計
2.1 系統主控制模塊
系統主控制模塊是由STC12C5410AD單片機、電源模塊、時鐘模塊、復位模塊等構成,是整個硬件電路的核心,處理各種輸入信號,發出指令控制各個器件工作,主控制電路如圖2所示。
電源模塊為單片機及其他元器件提供5 V及3.3 V直流電壓。時鐘模塊為單片機提供標準時鐘和運算速度。復位模塊用于硬件電路的穩定性和可靠性。
2.2 數據采集模塊
STC12C5410AD單片機帶有8路10位的高速A/D轉換器,速度可達到100 kHz。隨著光照的變化,感光元件光敏電阻從亮阻到暗阻的變化值在1 k級別到幾百k之間。設計中采用光敏電阻與一個100 k電阻串聯分壓的辦法來將光敏電阻阻值的變化轉化為可以采集的電壓變化。
數據采集模塊主要由光敏電阻[3]及100 k電阻構成。該閉環控制系統采用P1.7作為A/D轉換口。采集環境中,根據光線強度的變化,光敏電阻的阻值隨著改變,通過轉化為電壓的變化,將電壓的模擬量轉化為其數字量,然后根據電壓的大小來調節單片機輸出的脈沖電流占空比,從而調節脈沖電流的大小,進而自動調節LED亮度的大小。
2.3 脈沖電流驅動模塊
該系統中運用脈寬調制PWM技術[4]來驅動12個白光LED。脈沖電流驅動模塊用脈寬調制PWM技術產生的脈沖電流驅動LED,具有亮度高、散熱性能好、驅動效率高等優點。通過STC12C5410AD,PWM信號頻率通常會超過100 Hz,以確保這個脈沖電流不會被肉眼察覺。
脈沖電流驅動模塊由S8050和白光LED組成,硬件電路如3圖所示。其中S8050是最大集存器電流為0.5 A的NPN型晶體三極管,用在各種放大電路中。用三極管S8050驅動12個并聯排列白光LED,單片機通過PWM控制工作在飽和區的S8050,使其飽和導通或者截止,從而實現對LED燈亮度的控制。S8050飽和導通時,其集電極電流可以達到500 mA,可以提供12個LED所需的工作電流。
2.4 人機界面模塊
該人機界面模塊包括LED顯示模塊、數碼顯示模塊和鍵盤處理模塊。LED顯示模塊用來顯示12個LED。鍵盤處理模塊用來調節LED亮度變化的步長。調節LED亮度變化的步長時,數碼管顯示模塊用來顯示當前步長的值。當LED亮度小時,增加步長,使LED的亮度增強;當LED亮度大時,減少步長,使LED的亮度減弱。
2.5 通信模塊
由于上位機帶有RS232接口,利用上位機的串行口與下位機進行RS232通信,傳輸數據。通信模塊電路采用了PC的RS232標準串口設計的單電源電平轉換驅動芯片MAX232,進行串行通信。利用STC12C5410AD的串口(P3.0/P3.1)直接下載用戶程序,數秒即可完成一片,整個接口電路簡單,可靠性高。
3 軟件框架的設計
軟件設計框架以STC12C5410AD單片機為核心,以Keil uVision3為編程平臺,采用C51編程,實現系統的功能。采用功能模塊化編程,不同的模塊完成相應的功能,并有程序上的中斷、循環等。該系統的軟件設計框架包括主程序、中斷服務程序和子程序構成,如圖4所示。其中,子程序包含A/D轉換、PWM[5]驅動、串口通信、鍵盤處理、LED顯示、數碼管顯示等程序。
3.1 主程序設計
主程序由初始化程序和功能程序設計構成。初始化程序包括串口初始化、A/D轉換初始化、脈沖調制PWM初始化、外部中斷初始化,功能程序設計用來完成系統的整個運行程序。主程序設計的工作流程圖如圖5所示。
3.2 中斷服務程序設計
中斷服務程序包括外部中斷0和外部中斷1服務程序,用于控制PWM脈沖電流的占空比的大小調節。其中,外部中斷0服務程序用于按鍵Key1處理,當按鍵Key1按下時,增加電流步距,電流占空比減少;外部中斷1服務程序用于按鍵Key2處理,當按鍵Key2按下時,減少電流步距,電流占空比增加。
3.3 子程序設計
3.3.1 延時程序設計
延時程序設計采用for循環的方法來延時,主要用于按鍵消抖。
3.3.2 A/D轉換程序設計
利用感光元件光敏電阻來采集光照強度,然后將采樣值通過I/O口送給A/D轉換器。A/D[6]轉換程序的設計將采樣值模擬量轉化為數字量,以查詢方式來讀取A/D轉換的結果。設計中采取A/D轉換的10位結果,并將取特殊功能寄存器ADCDATA的前5位和ADCLOW2的前2位作為A/D轉換的結果。A/D轉換流程圖如圖6所示。
3.3.3 PWM驅動程序設計
PWM驅動程序利用單片機內部PCA模塊工作在8位PWM模式。采用矩形波電流脈沖來驅動LED。LED的平均電流是最大峰值電流與占空比的乘積。當最大峰值電流一定時,輸出的亮度取決于驅動脈沖電流的占空比。向PCA捕捉寄存器/比較寄存器CCAP0L和CCAP0H賦值,控制輸出信號的占空比。通過寄存器CCAP0H值,裝載到CCAP0L值。
3.3.4 串口通信程序設計
串口通信程序用于通過PC把程序下載到單片機中。其設計采用定時器1的8 bit自動重裝模式設計波特率,使用中斷的方式來發送數據。
4 測試與調試
在測試過程中,采用模塊化思想測試各個功能。首先,串口通信程序是否能夠發送數據,通過串口調試助手進行檢驗。在串口調試助手的窗口觀察是否有數據顯示,若出現“1”,則程序正確,否則錯誤。其次,測試中斷程序,主要是檢測按鍵的消抖。最后,測試A/D轉換程序,主要是查看A/D轉換的結果及其變化。
根據測試的程序,調試好各個功能模塊的程序,然后綜合調試系統的整個功能。通過在不同的環境下光線的強弱來控制光敏電阻的阻值,從而控制12個白光LED的亮度。當光線較強時,光敏電阻的阻值變小,A/D采樣的結果變大,PWM脈沖電流的占空比減小,LED的亮度變??;當光線較弱時,光敏電阻的阻值變大,A/D采樣的結果變小,PWM脈沖電流的占空比增大,LED的亮度變大,從而實現了系統功能。
5 結論
本文設計的LED閉環控制系統可以節約電能,減少經濟損失,克服了人工管理的缺點,能實時采集環境光線強度,自動調節LED亮度,實現了對LED照明的閉環控制功能,提高了照明環境的品質,給人一種舒適的生活工作環境,具有電路簡單、可靠性強等優點。
參考文獻
[1] 樊岳標,劉麗蘭,韓鎏.LED照明控制與仿真一體化系統設計[J].機械制造,2013,51(592):24-27.
[2] 胡禮廣,王剛.基于STC12C5410AD單片機的鑲嵌控制系統設計與實現[J].微型機與應用,2011,30(8):73-75.
[3] 徐梅.基于AT89C51的室內照明控制系統的設計[J].自動化與儀器儀表,2011(5):43-44,47.
[4] 張興,秦會斌,郭石磊.基于UCC3818A的600W APFC電源設計[J].微型機與應用,2015,34(6):23-25,28.
[5] 郭鳳儀,赫廣杰,劉丹,等.基于單片機的光伏路燈照明系統的設計與實現[J].計算機測量與控制,2013,21(6):1615-1617,1627.
[6] 戴明,王琪,吳萬慶,等.一種便攜式多體征參數監護系統的設計及實現[J].電子技術應用,2015,41(2):78-81.