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,連續的,所以副程式可以簡單的判斷。
程式本身不難,大家花幾分鐘就能看懂,但線就可能就要接一會了,大家加油^^