手機藍牙遙控大功率的調(diào)光調(diào)色的LED燈的設(shè)計
5.2 程序設(shè)計
主函數(shù)流程圖如圖2所示,定義完相關(guān)變量和相關(guān)函數(shù)聲明后,設(shè)計串口通信函數(shù),設(shè)置定時器1中斷,中斷函數(shù)為占空比控制函數(shù),然后設(shè)計數(shù)據(jù)接收函數(shù),當(dāng)串口服務(wù)函數(shù)接收到數(shù)據(jù)時,將數(shù)據(jù)發(fā)送到數(shù)據(jù)接收函數(shù),然后將接受到的字符數(shù)據(jù)通過字符轉(zhuǎn)型函數(shù)進行字符的轉(zhuǎn)型,然后通過標(biāo)志iCommdType判斷控制哪一路信號,當(dāng)無標(biāo)志信號來時,一直循環(huán)檢查,檢查到相應(yīng)的標(biāo)志信號,然后執(zhí)行占空比調(diào)節(jié)函數(shù)藍牙模塊與單片機之間的通信使用模擬串口實現(xiàn)的,串口為標(biāo)準(zhǔn)配置:波特率9600,編寫一個串口初始化函數(shù)void UART_INIT(),初始化相關(guān)標(biāo)志,和寄存器,然后編寫中斷接收函數(shù)void tm0()interrupt 1 using 1,接收串口發(fā)來的數(shù)據(jù)。設(shè)定定時器1中斷并編寫中斷服務(wù)函數(shù)void tm1()interrupt 3 using1,實現(xiàn)P W M的占空比控制。編寫數(shù)據(jù)接收函數(shù)char GetUartData(),將中斷接收函數(shù)里接收到的數(shù)據(jù)發(fā)送這里,等待接收數(shù)據(jù)函數(shù)void WaitForChars(unsigned chariCount,char *Dest)通過調(diào)用數(shù)據(jù)接收函數(shù)char GetUartData(),將手機發(fā)送來的數(shù)據(jù)裝載到定義好的變量數(shù)組,然后通過字符轉(zhuǎn)型函數(shù)unsigned int GetCmdType(char*Commd),將字符型數(shù)據(jù)轉(zhuǎn)成數(shù)字,通過標(biāo)志判斷,要控制哪一路PWM波,然后將相應(yīng)的數(shù)據(jù)傳到控制占空比的中斷服務(wù)函數(shù),改變其占空比的輸出。
6.結(jié)果展示
6.1 手機端界面
如圖3所示,其中W調(diào)節(jié)白光,從0到100R、B、G共有100萬種組合,每一種組合對應(yīng)一種顏色,通過改變RBG的組合,從而調(diào)節(jié)LED的顏色。
6.2 PWM波輸出效果
如圖4所示,這是其中一路PWM波的控制信號,通過手機端控制其占空比,用示波器測出其波形。
6.3 實際調(diào)光調(diào)色效果
選擇幾種組合調(diào)色效果如圖5所示。
評論