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