2016年8月20日 星期六

Arduino專案_LED 7段顯示器

當我們需要顯示數字時,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);
}

完成相片:




沒有留言:

張貼留言