2011年1月1日 星期六

Arduino 筆記 – Lab13 使用 74HC595 與七段顯示器製作倒數功能

實驗目的

重新改寫「Lab7 使用七段顯示器製作倒數功能」,以 74HC595 移位暫存器控制一顆七段顯示器,在七段顯示器上依序顯示從 9 到 0 的數字,製作數字倒數的效果。

註:本實驗假設你做過「Lab7 使用七段顯示器製作倒數功能」和「Lab11 使用 74HC595 和三支腳位控制 8 顆 LED」,已經知道七段顯示器的原理與單獨一顆 74HC595 的使用辦法。

七段顯示器與 74HC595 腳位圖表

七段顯示器腳位圖表如下(下圖為共陰極七段顯示器):

image_thumb5

(圖片來源:.NET Micro Framework – More blinking LEDs)

0 到 9 這十個阿拉伯數字與各節段的對應表如下 (下表適用共陰極七顯示段器,如果使用的是共陽極,表格中所有的 1 都要換成 0, 所有的 0 都要換成 1):

顯示數字 dp a b c d e f g
0 0 1 1 1 1 1 1 0
1 0 0 1 1 0 0 0 0
2 0 1 1 0 1 1 0 1
3 0 1 1 1 1 0 0 1
4 0 0 1 1 0 0 1 1
5 0 1 0 1 1 0 1 1
6 0 1 0 1 1 1 1 1
7 0 1 1 1 0 0 0 0
8 0 1 1 1 1 1 1 1
9 0 1 1 1 1 0 1 1

74HC595 移位暫存器腳位圖表如下:

image_thumb41 

腳位編號 名稱 說明
1-7, 15 Q0 ~ Q7 輸出腳位
8 GND 接地
7 Q7’ 序列輸出 (Serial Out)
10 MR Master Reset, 清除所有資料, 低電位有效 (Active low)
11 SH_CP SHift register clock pin (Clock Pin)
12 ST_CP STorage register clock pin (Latch Pin)
13 OE Output Enable, 允許輸出,低電位有效 (Active low)
14 DS 序列資料輸入 (Serial data input)
16 Vcc 供應電壓
材料
  • 麵包板 x 1
  • Arduino 主板 x 1
  • 74HC595 x 1
  • 七段顯示器 (共陽極或共陰極皆可) x 1
  • 220 ohm 電阻 x 8
  • 單心線 x N
接線

下表為 74HC595 與七段顯示器的腳位對應表:

74HC595 腳位 七段示顯器腳位 (筆劃)
Q0 7 (A)
Q1 6 (B)
Q2 4 (C)
Q3 2 (D)
Q4 1 (E)
Q5 9 (F)
Q6 10 (G)
Q7 5 (DP)

步驟一:連接 74HC595

首先,接線連到電源與接地:

  • Vcc (pin 16) 與 MR (pin 10) 接 5V
  • GND (pin 8) 與 OE (pin 13) 接地

連接 DS, ST_CP 與 SH_CP 接腳:

  • DS (pin 14) 接 Arduino pin 11 (下圖藍線)
  • ST_CP (pin 12, latch pin) 接 Arduino pin 8 (下圖綠線)
  • SH_CP (pin 11, clock pin) 接 Arduino pin 12 (下圖黃線)

步驟二:接上七段顯示器

  • 將七段顯示器 3, 8 腳接到 GND (本例使用共陰極,若為共陽極請將 3, 8 腳接到 +5V)
  • 根據上表將 74HC595 的 Q0 ~ Q7 接到七段顯示器對應的腳位 (A ~ G 與 DP),並在每支接腳上串接一顆 220 ohm 電阻

image 

電路圖

image

程式碼

底下這支程式 (SevenSeg_74HC595.pde) 是「Lab7 使用七段顯示器製作倒數功能」的程式改版。原先控制一顆七段顯示器,需要用到 Arduino 八支接腳,現在只需要 Arduino 三支接腳加上一顆 74HC595 便可以控制一顆七段顯示器。

範例照片/影片
延伸閱讀

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。