七段顯示器是一種很方便顯示 0 至 9 數字 及 A 至 F 字母 (b 及 d 會使用小寫,避免 B 與 8 相似 及 D 與 0 相似)
能顯示 0 至 F 即是可以表達十六進制資料
軟件編寫程式顯示 0 至 F 就很簡單,但控制硬件顯示 0 至 F 是否簡單?
七段顯示器 的外觀
七段顯示器 共有 10支引腳
電子迴路元件圖示
編寫 Arduino 程式前先了解 七段顯示器 的引腳編排及用途
引腳編排及用途
後 | 引腳10 | 引腳9 | 引腳8 | 引腳7 | 引腳6 |
---|---|---|---|---|---|
用途 | 中 | 左上 | 電源 | 上 | 右上 |
左下 | 下 | 電源 | 右下 | 點 | |
正(有字印刷) | 引腳1 | 引腳2 | 引腳3 | 引腳4 | 引腳5 |
引腳編號 | 用途 |
---|---|
1 | 左下 LED 接地線 |
2 | 下 LED 接地線 |
3 | 電源線 |
4 | 右下 LED 接地線D |
5 | 點 LED 接地線 |
6 | 右上 LED 接地線 |
7 | 上 LED 接地線 |
8 | 電源線 |
9 | 左上 LED 接地線 |
10 | 中 LED 接地線 |
LED 位置 (模擬及示範效果)
接通線路前必須先接駁合適電阻,否則 LED 會燒毀
只有一個 LED 正極接駁或負極接駁並沒有分別,但超過一個 LED 便會有分別
正極接駁
只需要在電源輸出接駁一個電阻便可以避免燒毀所有 LED ,成本較低,但每個 LED 亮度會因為著亮的 LED 越多而越暗
負極接駁
每個 LED 的負極都接駁一個電阻來避免燒毀對應的 LED ,成本較高,但每個 LED 亮度都會一致
在下的接駁方式
七段顯示器 的正面
跳線 接駁至 Arduino 2號 至 10號 引腳
在下為了方便設置,在下使用 麵包板 (Breadboard) 接駁
測試
const byte powerPin = 10; const byte ledPins[8] = {9, 8, 7, 6, 2, 3, 4, 5}; const byte LENGTH = sizeof(ledPins) / sizeof(byte); byte i = 0; void setup(){ pinMode(powerPin, OUTPUT); digitalWrite(powerPin, LOW); for (byte ledPin : ledPins){ pinMode(ledPin, OUTPUT); digitalWrite(ledPin, HIGH); } } void loop(){ i %= LENGTH * 2; digitalWrite(ledPins[i % LENGTH], i < LENGTH ? LOW : HIGH); i++; delay(1000 / LENGTH); }
正極引腳 pinMode 設定為 OUTPUT , digitalWrite 設定為 HIGH ,讓電源接通
負極引腳 pinMode 設定為 OUTPUT , digitalWrite 設定為 LOW 時,成為接地點,電路便會接通
電源線引腳設定為 LOW 或 接地線引腳設定 HIGH 便不是完整電路,LED 便會熄滅
實際效果
有外光效果
無外光效果
十六進制編排
使用 七段顯示器 亮著對應 LED 顯示 十六進制數字及字母十六進制數值 | 引腳A | 引腳B | 引腳C | 引腳D | 引腳E | 引腳F | 引腳G | 引腳H | 結果 |
---|---|---|---|---|---|---|---|---|---|
十六進制數值 | 引腳A | 引腳B | 引腳C | 引腳D | 引腳E | 引腳F | 引腳G | 引腳H | 結果 |
0 | X | O | O | O | X | O | O | O | |
1 | X | X | X | O | X | O | X | X | |
2 | O | X | O | O | X | X | O | O | |
3 | O | X | O | O | X | O | O | X | |
4 | O | O | X | O | X | O | X | X | |
5 | O | O | O | X | X | O | O | X | |
6 | O | O | O | X | X | O | O | O | |
7 | X | X | O | O | X | O | X | X | |
8 | O | O | O | O | X | O | O | O | |
9 | O | O | O | O | X | O | O | X | |
A | O | O | O | O | X | O | X | O | |
b | O | O | X | X | X | O | O | O | |
C | X | O | O | X | X | X | O | O | |
d | O | X | X | O | X | O | O | O | |
E | O | O | O | X | X | X | O | O | |
F | O | O | O | X | X | X | X | O |
編寫不同的組合便可以顯示不同的數字及字母
十六進制效果
每次著亮對應 LED 前都先將所有 LED 先熄滅,編程大致與在上方的例子相似
總結
初初試玩 七段顯示器 因為太期待,忘記接駁電阻,只是輕輕接通電源,便立即燒毀幾個 LED ,因此在下再次強調一定要接駁電阻購買另一個,在香港可以到 深水埗鴨寮街 的電子零件店購買,在下是以 港幣$5 購入
不過購入另一個後發現,新舊模組有分別
新的模組,引腳A 及 引腳B 是電源線,其他 LED 引腳 是接地線,稱為 共陽 (Common Anode)
舊的模組,引腳A 及 引腳B 是接地線,其他 LED 引腳 是電源線,稱為 共陰 (Common Cathode)
因此接駁正負極時會有分別
編寫程式時,亦要將 電源線引腳 及 接地線引腳 的設定互換位置
另外
如果是 共陽 的 七段顯示器,若不需要控制電源,不一定使用 數碼引腳 或 類比引腳 ,可以直接使用 Arduino 的 電源引腳
如果是 共陰 的 七段顯示器,亦可以直接使用 Arduino 的 接地引腳
沒有留言 :
張貼留言