農林漁牧網

您現在的位置是:首頁 > 畜牧業

知識小科普,怎麼用微控制器控制N個LED點陣,有更好的方法評論區見

2022-05-19由 林老師授微控制器 發表于 畜牧業

口的結構是什麼

走在大街上,這種LED點陣屏隨處可見,這東西本質上就是一個個的LED燈在發光,一塊LED點陣屏少說也得有幾千個LED燈。然後我就很疑惑,它是如何控制這麼多LED燈呢?

知識小科普,怎麼用微控制器控制N個LED點陣,有更好的方法評論區見

為了消除我的疑惑,我親自拆了一塊廣告屏,廣告屏是由很多個重複的單元構成的,所以我們弄懂了這一個單元,就知道它整個廣告屏是怎麼控制的了。這些晶片都是74HC595,為什麼需要這麼多595呢?

比如我們要控制一個LED燈,只需要一個微控制器的引腳就可以了,要控制8個LED燈,需要8個微控制器引腳,但是為控制器引腳很寶貴,八個引腳都拿去控制LED燈太浪費資源了,所以這時候595我就派上了用場了,在微控制器和LED燈之間加一個595,這樣只需要控制器的3個引角就可以了。

知識小科普,怎麼用微控制器控制N個LED點陣,有更好的方法評論區見

595本質上就是移位暫存器,它屬於數位電路的範疇,這是它的內部原理,非常簡單,在這裡不再講述,我們只需要知道怎麼用它就好了。有了它只需要3個微控制器的資料引腳就可以了。

文章相對比較長,字數比較多,大家可以先開啟頭像關注我,之後慢慢看,///插播一條:我自己在今年年初錄製了一套還比較系統的入門微控制器教程,想要的同學找我拿就行了免費的,私信我就可以哦~點我頭像左下角黑色字型加我也能領取哦。最近比較閒,帶做畢設,帶學生參加省級或以上比賽///

知識小科普,怎麼用微控制器控制N個LED點陣,有更好的方法評論區見

比如我們給它傳送一串資料,它就能讓這一串資料並行輸出給它,輸入的前四個是高電平,後四個是低電平,則它輸出的狀態它的作用就是串進並出,關於595,我們需要知道這些引腳的作用,傳送給595的這八個序列資料也是有講究的,首先需要給SCK引腳低電平,然後給SER輸出我們要傳送的資料。

比如發低電平,最後再給SCK高電平,在SCK由低變高的一瞬間,也就是在時鐘的上升沿,我們的資料就能傳送給595,其餘的7個數據也是這麼發出去的,雖然我們傳送了八個資料,但它的輸出還沒有變化,這時候RCK就派上用場了。

知識小科普,怎麼用微控制器控制N個LED點陣,有更好的方法評論區見

最開始RCK也是低電平,當我們把這8個數據傳送完成之後,需要給RCK高電平,這樣595晶片就會把8個序列資料並行輸出,如果我們想控制前四個引腳高電平,後四個低電平,就需要按照時序給它的資料的前四個高電平,後四個低電平,它就能控制這八個引腳的輸出狀態。

那如果是控制16個燈呢?很簡單,兩個595就可以。那是不是得需要六個微控制器引腳呢?六個引腳肯定可以,但還是浪費引腳。所以我們可以這麼做,把595的兩個時鐘都連在一塊兒,再接到微控制器上,讓微控制器同時控制這兩個595。

此時只需要四個引腳,QH是它的序列輸出引腳,比如我們傳送八個序列資料,QH是沒有輸出的,當我們傳送第9個數據的時候,QH就會輸出之前的第1個數據,此後我們再多傳送一個QH裡面就會被擠出來一個,它是按傳送的先後順序被擠出來的。把第一個595的QH接到第2個序列輸入引腳,這樣我們只需要3個引腳就可以了。

這樣我們一次性給它傳送16個數據,前8個數據被擠到第1個595裡面,後8個數據在這個595裡面,然後給RCK高電平,這兩個晶片就能把16個數據並行輸出。如果是64個LED燈,那得需要8個595,此時需要給這個595連續傳送64個數據,但這樣有點浪費595晶片。

知識小科普,怎麼用微控制器控制N個LED點陣,有更好的方法評論區見

所以可以使用LED點陣,你看它內部是這樣連線的,每一行的LED燈陰極連在一塊兒,每一列的LED陽極連在一塊兒,這種LED點陣式逐行掃描來點亮的,不能同時控制,比如要控制第一行的第八個LED,那就需要給它的陰極低電平,給其它行的陰極高電平,然後我們想讓這一行裡面的哪個亮,就需要給它這一列高電平。

第一行完成之後,再操作第二行,一行一行地點亮,雖然是逐行點亮的,但是由於人眼的視覺暫留,對人的眼睛而言,就好像這些LED是在一起發光,雖然人眼看不出破綻,但如果用手機拍攝就能看出破綻,這樣只需要兩塊595和3個引腳就能控制64個LED燈。

知識小科普,怎麼用微控制器控制N個LED點陣,有更好的方法評論區見

4個這樣的點陣屏就是256個LED燈,此時也才需要4塊595,16個點陣屏是1024個LED燈,此時需要8塊595就可以,那是不是可以無限的增加LED點陣屏的數量呢?當然不行,因為是逐行掃描的,行數不能太多,32行就差不多了,行數再多的話,人也會看出頻閃。

正當我滿心歡喜的以為我搞懂廣告屏的時候,新的疑惑又來了,因為我拆的這個點陣屏是512個LED燈構成的,可以看作是8個LED點陣屏,按照之前的推理,它應該需要6塊595就夠了,但是它裡面有16塊595,這又是怎麼一回事呢?

為了搞清楚這個問題,我親自測試了它的LED燈的連線方式,發現每4個LED燈陽極都是連在一塊兒的,它們的陰極都連在一塊兒。595和LED燈是這樣連線的,每一塊595控制32個LED燈珠,不需要動態掃描,所以晚上我們拍廣告屏可以拍到全部,而如果是動態掃描的話,我們只能拍到一半或者更少。

知識小科普,怎麼用微控制器控制N個LED點陣,有更好的方法評論區見

它可以控制的最少畫素就是4個LED燈,所以控制這32個LED燈和我們之前控制了8個LED是沒有什麼區別的,只是它的每四個LED是並聯的,雖然是數量多,但是控制方式是一模一樣的。為什麼它的最小控制單位是4個LED燈呢?

我想應該是這種廣告牌顯示的比較簡單,不需要顯示覆雜的圖案,一般都是文字什麼的,文字筆畫的寬度就是四個LED燈一塊兒亮,而不需要精準到每一個LED燈,再說一下我拆的這一塊屏,我們可以把它劃分為16個區域,每一個區域都是一塊595在控制,因為不需要動態掃描,所以沒有頻閃,顯示的效果也會更穩定。當然在控制上只需要3個微控制引腳就可以,這就是LED點陣屏的顯示原理。

知識小科普,怎麼用微控制器控制N個LED點陣,有更好的方法評論區見

對微控制器感興趣的朋友可以找我,我錄製了一些關於微控制器的入門教程,有需要的童鞋找我拿就行,免費的,私信我“林老師”就可以拿~點選開啟我的頭像就能領取