通過藍牙控製RGB LED顏色
發布時間:2022-01-29 來源:Dialog 責任編輯:wenwei
【導讀】智能燈越來越受歡迎,並且正在穩步成為智能家居的關鍵部分。智能燈使用戶能夠通過智能手機上的應用程序控製燈光,可以在APP界麵打開和關閉燈,也可以調節顏色。在本文中,我們將介紹一個如何實現智能燈控製器的項目,可以手動按鈕或用移動APP通過藍牙進行控製。為了給這個項目增加一些特色,我們添加了一些功能,允許用戶從APP界麵中包含的顏色列表中選擇照明顏色。還可以激活“自動混合”以產生彩色效果,也可以每半秒改變一次燈光。用戶可以使用PWM功能創建自己的顏色混合,該功能也可以用作三種基本顏色(紅色、綠色、藍色)的調光器。我們還在電路中添加了外部按鈕,以便用戶可以切換到手動模式並通過外部按鈕調換燈光顏色。
本文由兩部分組成:GreenPAK™設計和安卓應用程序設計。GreenPAK設計基於使用UART接口進行通信。選擇UART是因為大多數藍牙模塊以及大多數其他外設(例如Wi-Fi模塊)都支持它。 因此,GreenPAK設計可用於多種連接類型。
為了創建這個項目,我們將使用SLG46620 GreenPAK IC、一個藍牙模塊和一個RGB LED。
GreenPAK IC將是該項目的控製核心:它從藍牙模塊和/或外部按鈕接收數據,然後開始所需的程序來顯示正確的照明。它還生成PWM信號並將其輸出到LED。下麵的圖1展示了功能框圖。
圖1:框圖
該項目中使用的GreenPAK器件在單顆IC中包含了一個SPI連接接口、PWM功能塊、FSM和許多其他有用的附加功能塊。它還具有體積小、能耗低的特點。這使得製造商能用單個IC構建小型實用電路,從而降低生產成本。
在這個項目中,我們將控製一個RGB LED。為了使該項目具有商用可行性,係統可能需要通過並聯多個LED並使用適當的晶體管來提高亮度等級;電源電路也需要考慮。我們對該項目完成了實現和檢驗。
GreenPAK設計
在GreenPAK Designer軟件中實現的設計由UART接收器、PWM單元和控製單元組成(完整的設計文件可從以下鏈接下載)。
https://www.dialog-semiconductor.com/sites/default/files/an-cm-273_gp.zip
a) UART接收器
首先,我們需要設置藍牙模塊。大多數藍牙IC支持UART協議進行通信。UART是(shi)通(tong)用(yong)異(yi)步(bu)收(shou)發(fa)傳(chuan)輸(shu)器(qi),可(ke)以(yi)將(jiang)數(shu)據(ju)在(zai)並(bing)行(xing)和(he)串(chuan)行(xing)格(ge)式(shi)之(zhi)間(jian)相(xiang)互(hu)轉(zhuan)換(huan)。它(ta)包(bao)括(kuo)一(yi)個(ge)串(chuan)行(xing)到(dao)並(bing)行(xing)接(jie)收(shou)器(qi),和(he)一(yi)個(ge)並(bing)行(xing)到(dao)串(chuan)行(xing)轉(zhuan)換(huan)器(qi),它(ta)們(men)都(dou)單(dan)獨(du)計(ji)時(shi)。
藍牙模塊中接收到的數據將傳輸到GreenPAK器件。Pin10的空閑狀態為高(HIGH)。發送的每個字符都以邏輯“低起始位(Low Start bit)”開頭,然後是可配置數量的數據位(bit)和一個或多個邏輯“高停止位(High Stop bit)”。
UART發送器發送1個低起始位(Low Start bit)、8個數據位(bit)和1個高停止位(High Stop bit)。通常,藍牙模塊的UART默認波特率為9600。我們將從藍牙IC發送數據字節到GreenPAK。
由於GreenPAK SPI功能塊沒有低起始位(Low Start bit)或高停止位(High Stop bit)控製,我們將使用這些位(bit)來啟用和禁用SPI時鍾信號(SCLK)。當Pin10變低(LOW)時,我們知道我們收到了一個低起始位(Low Start bit),因此我們使用GreenPAK 內部的PDLY配置為下降沿檢測器來識別通信的開始。該下降沿檢測器為GreenPAK 內部的DFF0提供觸發時鍾,從而啟用SCLK信號為GreenPAK SPI功能塊提供時鍾。
我們將波特率設定為每秒9600 bit/s,對應SCLK周期為1/9600 = 104 µs。因此我們將OSC頻率設置為2MHz,並使用GreenPAK內部的CNT0配置為分頻器。為了使接收到的時鍾周期是104 µs,需要將CNT0計數值設定為2818。
參照圖2中GreenPAK內部的可配置單元圖示,為了確保不丟失任何數據,我們需要將SPI時鍾延遲半個時鍾周期,以便SPI功能塊在正確的時間被計時。我們通過使用CNT6、2-bit LUT1和OSC功能塊的外部時鍾來實現這一點。CNT6的輸出直到DFF0被計時後52 µs才會變高,是該SPI的SCLK周期104 µs的一半。當CNT6為高(HIGH)的時侯,配置為與門的2-bit LUT1允許時鍾信號(CLK Begin)進入OSC 的EXT. CLK0輸入,其輸出時鍾信號連接到CNT0的CLK端子。
圖2:係統電路框圖
b) PWM功能單元
參照圖3中GreenPAK內部的可配置單元圖示,PWM信號是使用PWM0和相應時鍾脈衝發生器(CNT8/DLY8)生成的。由於脈衝寬度是用戶可控的,我們使用FSM0(可以連接到PWM0)來統計用戶數據。
在SLG46620中,8-bit FSM1可以與PWM1和PWM2結合使用。需要連接藍牙模塊,即必須使用SPI並行輸出模塊。SPI並行輸出模塊的bit 0~7與DCMP1、DMCP2和LF OSC CLK的OUT1和OUT0組合。PWM0從16-bit FSM0獲得其輸出。如果不改變,這會導致脈衝寬度過載。為了將計數器值限製在8位(bits),我們添加了另一個FSM:FSM1用作提示計數器達到0或255的提示器。FSM0用於生成 PWM脈衝,因此FSM0和FSM1必須同步。由於兩個FSM都有預設的時鍾選項,因此CNT1和CNT3用作將CLK傳遞給兩個FSM的中間分頻媒介。這兩個計數器設置為相同的值,在本文中為25。我們可以通過改變這些計數器值來改變PWM值的變化率。
FSM的值由來自SPI並行輸出模塊的信號“+”和“-”來增加和減少。
圖3:PWM單元設計
c) 控製單元
參照圖4中GreenPAK內部的可配置單元圖示,在控製單元內,接收到的字節是從藍牙模塊獲取到SPI並行輸出,然後傳遞給相關的功能模塊。首先,將檢查PWM CS1和PWM CS2輸出,查看PWM模式是否被激活。如果它被激活,它將決定通過LUT4、LUT6和LUT7中的哪個通道輸出PWM。
LUT9、LUT11和LUT14負責檢查其他兩個LED的狀態。LUT10、LUT12和LUT13檢查手動按鈕是否被激活。如果手動模式處於開啟狀態,則RGB將根據D0、D1、D2輸出狀態運行,每次按下顏色按鈕時,這些輸出狀態會改變。它隨著來自CNT7的上升沿而變化,CNT7用作上升沿信號的去抖動功能。
Pin 20配置為輸入,用於在手動控製模式和藍牙控製模式之間切換。
如果禁用手動模式並開啟自動混合模式,則顏色每500毫秒改變一次,上升沿來自CNT7。4-bit LUT1 用於防止D0 D1 D2處於“000”狀態,因為該狀態會導致燈在自動混合模式時關閉。
如果手動模式、PWM模式和自動混合模式未啟用,則紅色、綠色和藍色SPI命令流向引腳12、13和14,這些引腳配置為輸出,並連接到外部RGB LED。
圖4:係統電路框圖
DFF6、DFF7和DFF8用於構建3-bit二進製計數器。計數器值隨著CNT7脈衝增加,並在MUXs' (GreenPAK邏輯單元LUT10、LUT12、LUT13)的輸入端產生不同的D0,D1,D2邏輯組合。
安卓應用程序
在本節中,我們將創建一個安卓應用程序,它將監測和顯示用戶的控件選擇。界麵由兩部分組成:第一部分包含一組具有預定義顏色的按鈕,因此當按下這些按鈕中的任意一個時,相應顏色的LED會亮起。第二部分(MIX方塊)為用戶創建混合顏色。
在第一部分,用戶選擇他們希望PWM信號通過的LED引腳;PWM信號一次隻能傳遞到一個引腳。下麵的列表在PWM模式期間邏輯地控製其他兩種顏色的開/關。
自動混合按鈕負責運行自動換燈光模式,每半秒換一次燈光。MIX部分包含兩個複選框列表,用戶可以決定將哪兩種顏色混合在一起。
我們使用MIT App Inventor網站創建了該應用程序。該網站允許用戶在沒有任何軟件經驗的情況下,使用圖形軟件塊創建安卓應用程序。
我們最初設計的圖形界麵添加了一組負責顯示預定義顏色的按鈕,我們還添加了兩個複選框列表,每個列表有3個元素;每個元素都在其單獨的框中顯示,如圖5所示。
圖5:App界麵
用戶界麵中的按鈕與軟件命令相關聯:應用程序通過藍牙發送的所有命令都是以字節格式,每一個bit負責特定的功能。
表1顯示了發送到GreenPAK的命令幀的形式。
表1:bit幀表示
前三個bit:B0、B1和B2將通過預定義顏色的按鈕在直接控製模式下保持RGB LED的狀態。因此,當單擊其中任意一個按鈕時,將發送該按鈕的相應值,如表2所示。
表2:命令bit表示
B3和B4 bit控製“+”和“-”命令,它們負責增加和減少脈衝寬度。按下按鈕時bit值為1,鬆開按鈕時bit值為0。
B5和B6 bit負責選擇PWM信號將通過的引腳(顏色):這些bit的顏色指定如表3所示。最後一個bit B7負責激活自動混合功能。
表3:PWM通道選擇bit
圖6和圖7展示了將按鈕與負責發送以上值的編程塊鏈接的過程。
圖6:按鈕的編程塊
圖7:發送“+”和“-”命令幀
下方圖8為頂層電路圖。
圖8:電路圖
控製器已測試成功,顏色混合以及其他功能均顯示正常工作。
結論
在本文中,我們創建了一個由安卓應用程序進行無線控製的智能燈電路。該項目中使用的GreenPAK IC有助於將幾個用於控製燈光的基本組件集成到一個小型IC中。
推薦閱讀:
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall


