在arduino專題中也很常被拿來使用
!!!!!!!要注意的是!!!!!!!
七段顯示器有共陰極跟共陽極兩種
也就是說
接錯就不能使用了
甚至會有燒掉的可能
雖然TC上次接錯也沒發生甚麼事XD
要控制一顆七段顯示器
分別要控制他的8個腳位
其他兩隻接腳是插在正極或接地上
這要看你買的是哪一種的
至於分辨牠的方式
最好還是先看清楚他的型號
再者就是直接實驗看看啦
接下來就直接開始實做的部分
要先讓顯示器有顯示0-9的能力
!!可以直接複製最底下的程式!!
七段顯示器不管是共陽極還是共陰極
七段顯示器不管是共陽極還是共陰極
內部構造都是由 8 個 LED 發光二極體所組成
我們分別把它命名為a, b, c, d, e, f, g 以及小數點 dp
至於要產生數字
簡單來說就是點亮指定的 LED
例如要產生數字 1,便點亮 b, c兩顆LED即可
依此類推
我們今天以共陰極當例子
有以下表格可以對照
!!!!至於共陽極的顯示器!!!!!!
下面表格中所有的 1 跟 0對調就可以了
顯示數字
|
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
|
接線的部分:
顯示器上下皆有五個腳位
由上至下,由左至右
分別是1-10腳位
3, 8 腳位接到 GND
其他的腳位就依序接到arduino的2, 3, 4, 5, 6, 7, 8腳位即可
(如需長時間使用,建議每支接腳上串接一顆 220歐姆電阻)
程式
(如需長時間使用,建議每支接腳上串接一顆 220歐姆電阻)
程式
// 七段顯示器製作倒數功能
//TCweng
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
digitalWrite(9, 0); // 關閉小數點
}
void loop() {
// 顯示數字 '9'
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(1000);
// 顯示數字 '8'
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(1000);
// 顯示數字 '7'
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(1000);
// 顯示數字 '6'
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(1000);
// 顯示數字 '5'
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(1000);
// 顯示數字 '4'
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(1000);
// 顯示數字 '3'
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
delay(1000);
// 顯示數字 '2'
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 1);
delay(1000);
// 顯示數字 '1'
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(1000);
// 顯示數字 '0'
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 0);
// 暫停 4 秒鐘
delay(4000);
}
沒有留言:
張貼留言