久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 33291|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

教你使用一個單片機IO口控制RGB彩燈,單總線LED燈使用教程

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:241755 發(fā)表于 2019-5-22 16:57 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
相信大家學(xué)習(xí)單片機的第一課就是點亮第一盞LED燈了吧,初次點亮LED的時候的心情肯定是很激動的,可以操控眼前這個小小的芯片完成自己編寫的指令,頓時感覺到很奇妙。初次了解之后便會激發(fā)我們的探索精神,當學(xué)習(xí)了PWM之后,控制RGB彩燈隨意調(diào)出千變?nèi)f化的顏色肯定不再是難事,用在各種項目上,RGB燈會讓作品更加鮮艷動人。在這美麗的背后,其實隱藏了很多的科學(xué)道理,RGB燈的顏色能千變?nèi)f化的原因是因為其內(nèi)部集成了3個獨立的3原色燈珠,然后使用PWM波控制每個燈珠處在不同的亮度,便可以得到不同的色彩。但是一個RGB燈可能會占用多個端口,想控制很多個RGB燈便是有些難度,好在隨著集成工藝的發(fā)展,這一切不再是問題,如今的工藝促使了一種新型燈珠的出現(xiàn),那就是單總線LED。
簡單點來說就是這種類型的燈珠內(nèi)置了一個驅(qū)動電路,它控制著燈珠發(fā)出的顏色,并且有一個數(shù)據(jù)輸入口,意味著我們可以往在這個燈珠里面輸入數(shù)據(jù),然后燈珠內(nèi)部的電路就會驅(qū)動的燈珠發(fā)出我們想要的顏色。這個電路呢還有一個數(shù)據(jù)的輸出口,也就是說它可以將接受到的數(shù)據(jù)再次發(fā)送出去,送給下一個燈珠的輸入,所以這使得所有的燈珠都可以連在一起,只需要使用一個IO口控制,這就相比傳統(tǒng)的RGB燈節(jié)省了很多的端口。
這種類型的燈珠主要的核心就在它里面集成的那樣一個驅(qū)動電路,這種類型的驅(qū)動電路有很多種,例如常見的WS2811,2812,SK6812等等,所以用其制作完成的燈珠一般都使用驅(qū)動電路的名字來命名。對于燈珠的大小型號呢,則有很多種類,例如5050,3535以及2020等封裝,大家搜索的時候,搜索驅(qū)動電路的型號加上封裝型號就可以找到想要的單總線LED了。下面是WS2812采用5050封裝的圖片。

本文會就WS2812這款最常用的驅(qū)動芯片來講解其的控制方法以及在最后我會寫一些控制這類單總線LED的方法。



由于是單總線通訊,自然沒有時鐘信號線,所以通訊的時序變得非常重要,我找到一份WS2812的數(shù)據(jù)手冊,查看到了其中提到的輸入數(shù)據(jù)時序圖。


可以看到,2812芯片對著時序有著較為嚴格的需要,所以對于0碼和1碼,我們需要嚴格控制單片機延時的時間。并且這款芯片的時序大概都在納秒級的延時,所以對于單片機的要求還是比較高的,我采用的是增強型的51單片機,速度上足夠完成納秒級的延時。


下面看到的數(shù)據(jù)的輸入方法,可以看到每個數(shù)據(jù)包都是24bit長,也就是3個字節(jié),發(fā)送完第一個24bit數(shù)據(jù)包之后就是接著發(fā)送第二個,可以看到在D2線上,第一個24bit數(shù)據(jù)包自動被忽略了,這是由于WS2812的轉(zhuǎn)發(fā)機制,在其接受到第一個完整的24bit數(shù)據(jù)包之后,再接受到的數(shù)據(jù)包他會自動將其發(fā)送給下一個燈珠,這就是為什么可以一根線控制所有LED燈的秘密。并且WS2812芯片還有鎖存的功能,也就是說送一次數(shù)據(jù)后,在下一回改變顏色之前都不需要再送數(shù)據(jù)了,內(nèi)部的鎖存電路會自動記住當前的顏色值,并控制燈珠一直保持著色彩。


對于每一個24bit數(shù)據(jù)包,其格式如下:每一個字節(jié)都表示著顏色的亮度,從高位到低位分別是綠色(G),紅色(R),藍色(B),控制這三個顏色的亮度,我們就可以得到千變?nèi)f化的色彩。



了解到了數(shù)據(jù)包的格式,數(shù)據(jù)手冊里面還給了一張應(yīng)用電路的圖片,很好的說明了這種單總線LED的連接方法。


看完了數(shù)據(jù)手冊,下面就是對單片機編程,使其可以輸出對應(yīng)的波形了!



首先是對發(fā)送0碼和1碼的程序編寫,由于需要用到納秒級的延時,我使用空語句來進行軟件延時,下面是發(fā)送0碼和1碼的代碼截圖。我這里是使用的STC15系列單片機,使用內(nèi)部時鐘11.0592MHZ,如果有使用相同單片機的朋友請直接參考我的代碼,如果你的單片機類型不一樣或者時鐘頻率不一樣,最好使用示波器或者邏輯分析儀來得到精確的延時。


完成了發(fā)送0碼和1碼之后,接著就是發(fā)送一個字節(jié)了,核心思路就是每次判斷字節(jié)高位的值來決定發(fā)送0還是1


經(jīng)過簡單的編程,所有代碼就完成了,簡單的寫了一個程序,讓前三個燈亮起,呈紅色:


其實WS2812的編程較為容易,下面就來說一些我的改進地方。
我編寫了一個使用串口控制RGB燈的程序,就是我可以在串口上發(fā)送數(shù)據(jù),實時的控制每個LED燈的顏色,這樣會方便后期一些動畫效果的控制。我定義了一個數(shù)據(jù)格式,一個數(shù)據(jù)包含有5個字節(jié),分別是幀頭,LED燈的編號,紅色(R)亮度值,綠色(G)亮度值以及藍色(B)亮度值。例如我想要控制第五個燈變成最亮的白色,我就發(fā)送
FFH 05H FFH FFH FFH 就可以了,下面是使用這個程序調(diào)出來的顏色:


其思路就是當串口收到幀頭之后,就開始讀取燈的編號以及各個顏色的亮度值,然后再發(fā)送給LED燈珠即可。

這些就是單總線LED燈珠的使用方法了,其實編寫程序較為簡單,主要難點就是大家的時序一定要準確,這樣才可以確保燈珠正常的點亮。



評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏26 分享淘帖 頂4 踩1
回復(fù)

使用道具 舉報

沙發(fā)
ID:357396 發(fā)表于 2019-9-15 15:50 | 只看該作者
多謝樓主,學(xué)習(xí)了
回復(fù)

使用道具 舉報

板凳
ID:470939 發(fā)表于 2019-9-24 20:42 | 只看該作者
很有用
回復(fù)

使用道具 舉報

地板
ID:385637 發(fā)表于 2019-9-25 09:00 | 只看該作者
非常實用,請問有后面控制多個燈的原代碼嗎?
回復(fù)

使用道具 舉報

5#
ID:190075 發(fā)表于 2019-11-11 19:56 | 只看該作者
樓主,有資料程序可以下載嗎
回復(fù)

使用道具 舉報

6#
ID:156220 發(fā)表于 2019-11-12 09:19 | 只看該作者
謝謝樓主的講解,學(xué)習(xí)了
回復(fù)

使用道具 舉報

7#
ID:243394 發(fā)表于 2019-11-12 18:30 | 只看該作者
謝謝樓主的講解
回復(fù)

使用道具 舉報

8#
ID:475845 發(fā)表于 2020-4-1 16:40 | 只看該作者
51黑,有你更精彩
回復(fù)

使用道具 舉報

9#
ID:344220 發(fā)表于 2020-5-12 10:19 來自手機 | 只看該作者
很方便,感謝樓主
回復(fù)

使用道具 舉報

10#
ID:369321 發(fā)表于 2020-5-12 22:49 | 只看該作者
很有用
回復(fù)

使用道具 舉報

11#
ID:86450 發(fā)表于 2020-9-22 16:21 | 只看該作者

謝謝樓主的講解,學(xué)習(xí)了
回復(fù)

使用道具 舉報

12#
ID:15745 發(fā)表于 2022-12-14 15:46 | 只看該作者
剛好要用到這種單總線的燈,學(xué)習(xí)了
回復(fù)

使用道具 舉報

13#
ID:727062 發(fā)表于 2024-2-23 20:10 | 只看該作者
厲害
回復(fù)

使用道具 舉報

14#
ID:433219 發(fā)表于 2024-3-8 08:42 | 只看該作者
初學(xué)詳解系列   d^_^b
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜视频在线观看网站 | 国产在线小视频 | 国产成人短视频在线观看 | 亚洲日本激情 | 91精品国产91久久久久久密臀 | 久久99精品久久久久久琪琪 | 亚洲一区导航 | 免费国产成人av | 一区二区三区四区在线视频 | 天天干干 | 欧美激情视频一区二区三区免费 | 国产网站在线播放 | 自拍偷拍中文字幕 | 香蕉久久久久久 | 欧美日韩一区不卡 | 久久久精品久久久 | 亚洲精品国产综合区久久久久久久 | 亚洲精品免费视频 | 国产一区在线免费 | 日韩视频在线免费观看 | 日韩一级免费看 | 日韩视频中文字幕 | 亚洲一区二区三区免费 | 欧美三区在线观看 | 色网站在线 | 欧美日韩在线综合 | 久久新 | 雨宫琴音一区二区在线 | 91视频一区二区三区 | 欧美一区精品 | 理论片免费在线观看 | 91精品91久久久 | 91网视频 | 一级视频黄色 | 99视频入口 | 日本电影免费完整观看 | 亚洲精品美女在线观看 | 成人1区 | 久久久久久国产精品免费免费狐狸 | www日本在线 | 欧美日韩高清 |