通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色, 理論幾乎包括了人類視力所能感知的所有顏色。 我們的手機、電腦、電視,等顯示器 ,一個像素就是通過對RGB三個顏色不同占比的控制實現顯示不同顏色。
突發聯想,做個大功率的RGB調光如何?可以做夜燈,做裝飾 ,照明 ,加上手機控制,晚上很少開燈。本制作有所不足,希望各位大佬能進行完善,或者添加新的玩法~
用到的元器件:
RGB LED 3W*4
15W404AS 單片機
4.7R 1W電阻*3
NMOS管*3
100Ω 1/4 W電阻*3
1-10K 1/4 W電阻*3
6*8cm 洞洞板*1
藍牙模塊 *1
先發個演示視頻吧~
原理:利用藍牙串口助手發送數據,藍牙模塊接收后,經過單片機處理,處理當前的三路PWM值輸出到IO口,通過MOS管驅動LED。
藍牙APP 的配置:(如果想深入了解可以在app菜單點擊程序幫助)
藍牙串口助手發送界面
可以通過這個APP拖動上面的滑塊,或者點擊下面的按鍵配置RGB 的占比 ,當單片機接收到有效數據幀的時候 ,單片機會將數據原樣返回到APP 這樣做的目的是為了使按鍵按下后上面的滑塊也能同步當前的三路PWM值。從而用戶可再次對當前模式進行微調
具體配置:(點擊APP右上方三個小點-地面站設置)
具體配置
詳細數據說明:
* 滑塊發送數據一次為7位數據
* 例如 A5 5A 05 F1 80 76 AA
* A5 5A 為幀頭
* 05為除去幀頭的長度
* F1為哪一個滑塊
* 80為具體數值
* 76為byte 2到4位數據的和 (低字節)
* AA為幀尾
本制作實際使用中,接收做了兩次幀頭核對(接受時判斷第0位A5,處理時判斷第一位,5A)保證數據正確完整 。
沒有使用效驗。 但是在往APP返回數據時候需要嚴格按照APP標準執行。
具體的發送和接收處理過程在程序中有所體現,也做了充分的注釋、
電路:
電路很簡單,只是介紹MOS部分的接法:
MOS管接法
我使用的是PWM模塊拆解的MOS管,其中兩個MOS管是并連關系,為了驅動大功率的,但是在這里有點浪費,體積較大。
拆解后將引腳掰直
背面焊一個引腳出來,貼片變直插 ~~
其中PWM端接單片機io口
R1接RGB LED的其中一個顏色,4個LED的正極 R端G端B端口采用并聯方式連接。
需要注意是需要對RGB三個顏色的功率進行匹配,也就是說當PWM為最大255時,保證每一個LED的每一個顏色不會過載。
我用的是下面這一款LED
紅色電壓2.2v
藍綠色電壓 3.3v
電流 350ma (實際100ma就發燙)
LED電阻的適配:
5V電源電壓下 紅:(5-2.2)/0.35 = 8Ω 電阻功率2.8*0.35 = 0.98w(電阻發燒嚴重)
藍綠:(5-3.3)/0.35 = 4.85Ω 1.7*0.35 = 0.59w
3.3v 電源電壓 紅: (3.3-2.2)/0.35 = 3.14Ω 電阻功率 1.1*0.35 = 0.38w(不發燒)
藍綠: 不用電阻
通過上面的數據和實際測試發現電源電壓使用3.3v最為合適,并且還省去的藍綠色的電阻(G/B直接接MOS管的D極,R通過3.1Ω電阻接D)。所以選擇了使用5V 2A適配器+DCDC調壓供電,此時需要考慮你的單片機工作電壓和藍牙模塊工作電壓是否合適。
說了這么久PWM,簡談一下PWM:
即在頻率不變的情況下改變高低電平的占比。

程序中off_all 和on_all需要注意的是并沒有對PWM值進行操作,而是直接關閉了io口的輸出。因為這樣可以徹底關閉LED不至于PWN=0時侯微亮狀態。
其次程序中并沒有對PWM=0進行發送 ,因為不知道為什么,PWM =0 app會接受失敗,所以最低發送了PWM=1,然后讓io口關閉實現LED完全熄滅。
有一個想法:當發送的為模式數據時,APP也能進行面板刷新,但是實際測試中 ,當模式執行時遇到發送數據就會停止當前模式(卡住),不知如何解決~ 望支招
實際使用:
使用前先確認藍牙模塊波特率為9600bps ,弱不是,請進入藍牙模塊AT模式進行配置 ,藍牙連接成功后點擊app上的藍牙標志選擇連接 ,提示連接成功后按如上的APP配置即可使用,接下來是主程序部分。
單片機程序源碼如下:
其它子程序和分文件Keil工程,app 均在附件之中 歡迎下載~
最后希望感興趣的朋友們順利制作成功~~
全部資料51hei下載地址:
RGB 藍牙滑塊調光.zip
(2.84 MB, 下載次數: 287)
2018-8-13 13:07 上傳
點擊文件名下載附件
|