Contents ...
udn網路城邦
[Arduino 筆記] 利用 74HC595 控制 24 顆 LED 輸出
2015/08/02 21:46
瀏覽20,638
迴響0
推薦0
引用0

碎碎念:

話說之前高職暑假的時候都在狂打 LOL ...
現在暑假不僅把 LOL 戒掉了,同時也花了不少時間參加各種社群活動
在社群活動中邊做邊學真的很不錯,同時也交了不少朋友,挺快樂的XD


正文:

如果想用 Arduino UNO 來控制很多個 LED 的話該怎麼辦呢?
其實大家應該都很清楚知道 Arduino UNO 最多也只有 20 支腳位可以輸出數位訊號

假如說要控制 24 顆 LED 的話 Arduino UNO 上的 20 支腳位顯然是不夠的
難道就沒有辦法可以克服嘛??
其實 74HC595 就能擴充 Arduino UNO 的腳位唷,而且價格便宜,一顆大約新台幣 4 元 (小叮嚀:一顆 74HC595 只能輸出 8 bit 的數位訊號,如果是要輸出類比訊號的話就不適用了)

首先是電路圖,原本習慣用 Eagle 來畫電路圖但這次改用 Fritzing 來畫哈哈 (點圖可以放大)

電路中除了 Arduino UNO 外會用到的電子零件有:
 
*74HC595---共 3 顆
*LED ---共 24 顆
  
*排組 10 歐姆 B 型---共 6 個 (做限流電阻,避免 LED 燒掉) *後來改用 220 歐姆
*陶瓷電容 0.1uF---共 3 顆
*可變電阻 100k---共 1 個 (做 LED 速度控制用的)

74HC595 是一顆 8 位元位移暫存器 IC ,我們只需要用一條資料線來傳送串列資料到 74HC595 上,然後 74HC595 就能將串列訊號轉成並列訊號,最後輸出結果到每顆 LED 上。
這是 74HC595 的腳位資訊:

(圖片取自 http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf)

這次用到的 24 顆 LED 其實是拿學校之前用過的,因為不知道 LED 是否可以正常發光,所以特地拿了三用電表一顆一顆測量看看有沒有燒掉...
 
測量方式非常簡單,把三用電表切換到歐姆檔 x10(hFE&LED) 的位置,然後利用右邊的孔將 LED 插到有標示 LED 的地方,這邊特別要注意 LED 的正負極,如果插反是絕對不會亮的喔! (左邊沒有差錯正常發光,右邊插反就不會亮了)

東西都準備齊了就來接電路吧!
這是接好的電路:

Arduino UNO 接上電源後有大概測量一下耗功大約為 0.5W 左右

以下是 Demo 影片:

Arduino 程式碼下載: (附上電路圖 PDF)
https://drive.google.com/folderview?id=0Bx_TPvI_fqqcflZzRmlhN2wxVUR5d3V5ZmQ1amtwdUpCRnhFLVAxR2RUZTNzclNZd3JzRkU&usp=sharing 

其實除了 24 顆 LED 之外也能依照需求自行擴充,擴充方法就跟上面的電路圖一樣,只要把前一個 74HC595 的 Q7' 接到下一個 74HC595 的 DS 即可,而在程式的方面如果多 1 個 74HC595 就再多傳送 1 個位元組的資料就可以了,如果多 2 個 74HC595 就多傳送 2 個位元組的資料... 以此類推

你可能會有興趣的文章:

限會員,要發表迴響,請先登入