7段顯示器(Seven-segment display),是學習Arduino非常入門的範例,但其實傑森很不愛,哈哈,因為要接一堆線,才得到一個很簡單的數字^^"。不過這算是Arduino入門的基礎,大家都要找時間試試哦!

7段顯示器,為什麼叫7段,主要就是藉由七個發光二極體LED(三橫四縱)以不同組合來顯示十進位0至9的數字外加小數點,也可以顯示英文字母,包括十六進位中的英文 A 至 F(b、d 為小寫,其他為大寫)。

因為是LED,所以不可避免的,每一顆LED都要加上電阻才行,用220歐姆就OK了,不然以Arduino供電是一定會燒掉的。

這個範例中,七段LED用到的Arduino pin腳是: 6,7,8,9,10,11,12,右下角的點用pin 5。

送上7段顯示器的範例,程式部份大致上就是從網路上流通的版本去修改的,就是數字從9開始倒數顯示,每個數字間隔1秒。

在程式一開始直接用陣列定義了0~9各LED的顯示情況,以便之後取用。

byte seven_seg_digits[10][7] = { { 1,1,1,1,1,1,0 },  // = 0
                               { 0,1,1,0,0,0,0 },  // = 1
                               { 1,1,0,1,1,0,1 },  // = 2
                               { 1,1,1,1,0,0,1 },  // = 3
                               { 0,1,1,0,0,1,1 },  // = 4
                               { 1,0,1,1,0,1,1 },  // = 5
                               { 1,0,1,1,1,1,1 },  // = 6
                               { 1,1,1,0,0,0,0 },  // = 7
                               { 1,1,1,1,1,1,1 },  // = 8
                               { 1,1,1,0,0,1,1 }   // = 9
                               };

有一點要說明的,七段顯示器分為共陽極共陰極,本例預設是用共陰的顯示器,若用的是共陽,除了要把接地改成接到5V,另外在每個數字的表現方法,也要把0和1反過來。

sevenSegWrite(byte digit)是顯示特定數字的副程式,因為我們接線是從6到12,連續的,所以副程式可以簡單的判斷。

程式本身不難,大家花幾分鐘就能看懂,但線就可能就要接一會了,大家加油^^