手機藍牙遙控大功率的調光調色的LED燈的設計
5.2 程序設計
主函數流程圖如圖2所示,定義完相關(guān)變量和相關(guān)函數聲明后,設計串口通信函數,設置定時(shí)器1中斷,中斷函數為占空比控制函數,然后設計數據接收函數,當串口服務(wù)函數接收到數據時(shí),將數據發(fā)送到數據接收函數,然后將接受到的字符數據通過(guò)字符轉型函數進(jìn)行字符的轉型,然后通過(guò)標志iCommdType判斷控制哪一路信號,當無(wú)標志信號來(lái)時(shí),一直循環(huán)檢查,檢查到相應的標志信號,然后執行占空比調節函數藍牙模塊與單片機之間的通信使用模擬串口實(shí)現的,串口為標準配置:波特率9600,編寫(xiě)一個(gè)串口初始化函數void UART_INIT(),初始化相關(guān)標志,和寄存器,然后編寫(xiě)中斷接收函數void tm0()interrupt 1 using 1,接收串口發(fā)來(lái)的數據。設定定時(shí)器1中斷并編寫(xiě)中斷服務(wù)函數void tm1()interrupt 3 using1,實(shí)現P W M的占空比控制。編寫(xiě)數據接收函數char GetUartData(),將中斷接收函數里接收到的數據發(fā)送這里,等待接收數據函數void WaitForChars(unsigned chariCount,char *Dest)通過(guò)調用數據接收函數char GetUartData(),將手機發(fā)送來(lái)的數據裝載到定義好的變量數組,然后通過(guò)字符轉型函數unsigned int GetCmdType(char*Commd),將字符型數據轉成數字,通過(guò)標志判斷,要控制哪一路PWM波,然后將相應的數據傳到控制占空比的中斷服務(wù)函數,改變其占空比的輸出。

6.結果展示
6.1 手機端界面
如圖3所示,其中W調節白光,從0到100R、B、G共有100萬(wàn)種組合,每一種組合對應一種顏色,通過(guò)改變RBG的組合,從而調節LED的顏色。

6.2 PWM波輸出效果
如圖4所示,這是其中一路PWM波的控制信號,通過(guò)手機端控制其占空比,用示波器測出其波形。

6.3 實(shí)際調光調色效果
選擇幾種組合調色效果如圖5所示。

評論