當我們需要顯示數字時,LED 7段顯示器就是一個相當實用的元件。
它是由7段LED所組成,外加一個小數點,可以顯示出0~9的數字。
它具有10根針腳,購買時要注意一下是共陰極還是共陽極,接線時
會有所不同。共陰極的共同針腳要接地,控制LED的針腳輸出高電
位時,LED便會亮起。反之,共陽極接電源,控制LED的針腳輸出
低電位才會亮。
這次要做的是倒數計時器,從9倒數至0。
腳位編號:
電路接線圖:
程式碼:
//Arduino七段顯示器範例程式
//此為共陰極設定,若是共陽極,0與1互換即可
//1 = 開啟,0 = 關閉LED
//Arduino 腳位; 2,3,4,5,6,7,8
//二維陣列,儲存每個數字的LED電壓狀態
byte seven_seg_digits[10][7] = {
{1,1,1,1,0,1,1}, // = 0
{0,0,1,1,0,0,0}, // = 1
{1,1,0,1,1,0,1}, // = 2
{0,1,1,1,1,0,1}, // = 3
{0,0,1,1,1,1,0}, // = 4
{0,1,1,0,1,1,1}, // = 5
{1,1,1,0,1,1,1}, // = 6
{0,0,1,1,0,1,1}, // = 7
{1,1,1,1,1,1,1}, // = 8
{0,1,1,1,1,1,1} // = 9
};
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);
writeDot(0); //程式開始時,小數點熄滅
}
//自訂函式,控制小數點亮滅狀態
void writeDot(byte dot) {
digitalWrite(9, dot);
}
//自訂函式,控制3個變數值,讓數字倒數
void sevenSegWrite(byte digit) {
byte pin = 2;
for (byte segCount = 0; segCount < 7; ++segCount) {
digitalWrite(pin, seven_seg_digits[digit][segCount]);
++pin;
}
}
void loop() {
for (byte count = 10; count > 0; --count) {
delay(1000);
sevenSegWrite(count - 1);
}
delay(4000);
}
完成相片:
沒有留言:
張貼留言