1.引言
隨著(zhù),2012年10月30日飛利浦在A(yíng)ppleStore出售最新的高科技Hue系列LED燈,并且只會(huì )交由蘋(píng)果出售。Hue系列將是完全可有自定義的,并且通過(guò)一個(gè)燈泡內紅藍綠三原色的LED可以混合出1600萬(wàn)種顏色的燈光。整個(gè)過(guò)程完全由iPhone上的App來(lái)進(jìn)行控制。從而引發(fā)了智能燈控發(fā)展的新思考,國內相關(guān)人士也紛紛進(jìn)行研究?紤]到Hue是采用WiFi無(wú)線(xiàn)控制,而國內WiFi并未普及,本研究采用更普遍的藍牙技術(shù),采用手機藍牙與單片機通信產(chǎn)生可調占空比PWM波信號控制LED驅動(dòng)電路實(shí)現LED的調光和DIY調色。
2.脈沖寬制(PWM)調光技術(shù)
PWM調光是一種利用簡(jiǎn)單的數字脈沖,反復開(kāi)關(guān)LED驅動(dòng)器的調光技術(shù)。應用者的系統只需要提供寬、窄不同的數字式脈沖,即可簡(jiǎn)單地實(shí)現改變輸出電流,從而調節LED的亮度。PWM調光的優(yōu)點(diǎn)在于調光范圍大,只要帶寬足夠,任何模擬值都可以使用PWM進(jìn)行編碼,PWM調光可以在精確控制LED的亮度的同時(shí),也保證LED發(fā)光的色度。
2.1 脈沖寬制(PWM)調光原理
利用人眼睛視覺(jué)惰性,按固定頻率操作占空比實(shí)現LED亮度調節,只要調光比即PWM波頻率大于200Hz人眼就不會(huì )感覺(jué)到LED的閃爍。具體調光實(shí)現,通過(guò)控制LED的亮滅時(shí)間,從而控制LED亮度,從電力學(xué)來(lái)看就是控制一定周期內電流的有效值。這種方法在改變電流有效值大小的同時(shí)不改變電壓和電流的大小,這樣就保證了LED的發(fā)光色度,這是模擬調光和可控硅調光無(wú)法實(shí)現的。
2.2 占空比
占空比是指高電平在一個(gè)周期之內所占的時(shí)間比率。方波的占空比為50%,占空比為0.5,說(shuō)明正電平所占時(shí)間為0.5個(gè)周期。
Ts為脈沖周期,Tw為脈沖寬度
占空比τ=Tw/Ts×100.
占空比的解釋可以歸納為如下幾種:
1)在一串理想的脈沖序列中(如方波),正脈沖的持續時(shí)間與脈沖總周期的比值。
2)在一段連續工作時(shí)間內脈沖占用的時(shí)間與總時(shí)間的比值。
3)在周期型的現象中,現象發(fā)生的時(shí)間與總時(shí)間的比。
也就是電路釋放能量的有效時(shí)間與總釋放時(shí)間的比。
2.3 調光比
調光比則是按下面的方法計算:
Foper=工作頻率,Fpwm=調光頻率,調光比率=Foper/Fpwm
其實(shí)也就是調光的最低有效占空比,比如Foper=100khz;Fpwm=200Hz,則調光比為:100k/200=500.
3.藍牙模塊組成
3.1 藍牙技術(shù)基礎
藍牙的創(chuàng )始人是瑞典愛(ài)立信公司,藍牙技術(shù)是一種無(wú)線(xiàn)數據與語(yǔ)音通信的開(kāi)放性全球規范,它以低成本的近距離無(wú)線(xiàn)連接為基礎,為固定與移動(dòng)設備通信環(huán)境建立一個(gè)特別連接。手機之間通過(guò)藍牙實(shí)現數據共享已成為常理,將手機變身為遙控器為人們的生活帶來(lái)無(wú)限方便。[1]
藍牙技術(shù)由三部分組成,包括藍牙無(wú)線(xiàn)電技術(shù)、藍牙協(xié)議棧和藍牙互操作性。
3.1.1 藍牙無(wú)線(xiàn)電技術(shù)
藍牙無(wú)線(xiàn)電工作在全球通用的2 。 4 G H zISM(即工業(yè)、科學(xué)、醫學(xué))頻段,支持全雙工傳輸,使用IEEE802.15協(xié)議。藍牙設備即連即用,抗干擾能力強、使用方便[2]
3.1.2 藍牙協(xié)議棧
藍牙協(xié)議棧包含一個(gè)軟件棧和一個(gè)硬件棧。藍牙硬件協(xié)議棧由藍牙硬件提供,藍牙軟件協(xié)議棧由軟件實(shí)現。藍牙軟件協(xié)議棧提供Java藍牙API給程序開(kāi)放人員使用。
3.1.3 藍牙互操作性
藍牙互操作性包括三方面內容:①通用訪(fǎng)問(wèn)Profile定義了設備管理功能性;②服務(wù)發(fā)現應用Profiles定義了服務(wù)發(fā)現方面的內容;③串口Profiles定義了互操作設備和模擬串口電纜的能力3.2 HC-O6藍牙模塊
BC04外置8M Flash,帶EDR模塊HC-06為民用級,兼容HC-04工業(yè)級。其中,HC-06模塊的TX管腳跟STC15F204EA單片機的P3.0管腳相接,RX管腳跟P3.1接。HC-06模塊接收手機端發(fā)來(lái)的數據,然后在通過(guò)串口TR,TX管腳與單片機通信。
藍牙2.0帶EDR,2Mbps-3Mbps調制度,內置2.4GHz天線(xiàn),外置8Mbit FLASH,低電壓3.3V工作(3.1V~4.2V)配對時(shí)30~40MA波動(dòng),配對完畢通信8MA,可選PIO控制標準HCI端口(UART or USB),數字2.4GHz無(wú)線(xiàn)收發(fā)射,CSR BC04藍牙芯片技術(shù),自適應跳頻技術(shù),藍牙Class 2功率級別,工作溫度為-25至+75,協(xié)波干擾為2.4MHz,發(fā)射功率3dBm,有效控制距離為10m.
4.手機APP設計
4.1 藍牙連接相關(guān)程序設計
首先,初始化本地藍牙設備,建立LocalDevice類(lèi),包括取得本地設備實(shí)例、藍牙名稱(chēng)、設置發(fā)現模式、獲得發(fā)現代理。創(chuàng )建public int BTS_Init()類(lèi)函數,實(shí)現藍牙初始化判斷,尋找默認藍牙設備,打開(kāi)藍牙。
啟動(dòng)藍牙設備搜索,創(chuàng )建public voidBTS_StartScan()類(lèi)函數,開(kāi)始尋找從機藍牙設備,注冊搜尋函數,創(chuàng )建public int BTS_ConnectToDevice(String DeviceAddress)類(lèi)函數,實(shí)現連接到一個(gè)指定的藍牙設備。
創(chuàng )建public int BTS_SendDates(Stringbuffer)類(lèi)函數實(shí)現字符串發(fā)送到已連接好的藍牙設備上,創(chuàng )建public int BTS_Finish()類(lèi)函數結束藍牙通信,最后創(chuàng )建接收ACTION_FOUND廣播的BroadcastReceiver privatefinal BroadcastReceiver mReceiver=newBroadcastReceiver()。
4.2 控制信號相關(guān)程序設計
首先創(chuàng )建一個(gè)用于控制信號的類(lèi)publicclass PwmcontrolActivity extends Activity{},里面包含創(chuàng )建界面的類(lèi)函數public voidonCreate(BundlesavedIn stan ceState){},發(fā)送控制信號類(lèi)函數public void onStop TrackingTouch(SeekBar seekBar){}。
創(chuàng )建類(lèi)class InitThread extends Thread{},實(shí)現資源加載線(xiàn)程,里面創(chuàng )建用于四路信號之間轉換的public InitThread(PwmcontrolActivity act){}類(lèi)函數,實(shí)現與藍牙程序接口的public void run()線(xiàn)程體,用于軟件退出的類(lèi)函數public booleanonKeyDown(int keyCo de,KeyEvent event)。
5.單片機控制信號設計
5.1 硬件電路設計
系統框圖如圖1所示,本硬件電路采用STC15F204EA單片機為主控器,CH-06藍牙模塊的TXD與單片機11管腳P3.0連接,RXD與P3.1相連,實(shí)現藍牙串口通信連接,從P1.0,P1.1,P1.2,P1.3四個(gè)口輸出四路可調占空比的PWM信號,采用一個(gè)L298芯片將單片機控制信號和LED電源驅動(dòng)隔離,避免了單片機帶負載能力弱的缺點(diǎn),以實(shí)現驅動(dòng)大功率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所示。
 |