Arduino基礎入門篇14—跳動的數碼管

本篇介紹數碼管顯示器件,通過控制一位共陰極數碼管動態顯示數字0到9來了解數碼管的使用。

1. 數碼管介紹

數碼管,又稱LED數碼管,是常見的用來顯示數字的電子器件。通常由八段發光二極管封裝在一起組成“8”字形狀,外加一個小數點。數碼管每一段都是一個獨立的LED,通過控制相應段LED的亮滅使其組成相應數字形狀來顯示數字。

數碼管的8個LED並聯在一起,根據公共管腳的不同,分爲共陽極數碼管和共陰極數碼管兩種。其區別就是公共管腳是LED燈的正極還是負極。

數碼管內部結構

如上圖,數碼管8個段分別命名爲A,B,C,D,E,F,G,DP,其封裝共10個引腳,其中上下方正中間的是公共極,其他引腳分別對應8個LED的另一端。

2. 實驗材料

  • Uno R3開發板
  • 配套USB數據線
  • 麪包板及配套連接線
  • 共陰極數碼管
  • 1個220Ω限流電阻
數碼管顯示

那麼如何讓數碼管來顯示數字呢?比如顯示數字0,我們只需要點亮A,B,C,D,E,F段LED,熄滅G,DP段LED即可。

3. 實驗步驟

1. 根據原理圖搭建電路。

數碼管的A,B,C,D,E,F,G,DP引腳分別接入開發板的數字管腳7,6,5,10,11,8,9,4。數碼管公共端接限流電阻,電阻另一端接GND。

實驗原理圖如下圖所示:

實驗原理圖g

實物連接圖如下圖所示:

實物連接圖

2. 新建sketch,拷貝如下代碼替換自動生成的代碼並進行保存。

/*
NixieTube
控制共陰極數碼管顯示數字0到9
*/

//設置控制各段的數字IO腳,具體幾號引腳對應哪一段,來源爲數碼管官方引腳圖。
int pin_a = 7;
int pin_b = 6;
int pin_c = 5;
int pin_d = 10;
int pin_e = 11;
int pin_f = 8;
int pin_g = 9;
int pin_p = 4;
        
//根據共陰極數碼管段碼錶定義0~9顯示的各段開關狀態
int numTable[10][8] = {
//1爲點亮,0爲關閉
//a  b  c  d  e  f  g  dp
{1, 1, 1, 1, 1, 1, 0, 0},     //0
{0, 1, 1, 0, 0, 0, 0, 0},     //1
{1, 1, 0, 1, 1, 0, 1, 0},     //2
{1, 1, 1, 1, 0, 0, 1, 0},     //3
{0, 1, 1, 0, 0, 1, 1, 0},     //4
{1, 0, 1, 1, 0, 1, 1, 0},     //5
{1, 0, 1, 1, 1, 1, 1, 0},     //6
{1, 1, 1, 0, 0, 0, 0, 0},     //7
{1, 1, 1, 1, 1, 1, 1, 0},     //8
{1, 1, 1, 1, 0, 1, 1, 0},     //9
};


void setup()
{
for (int i = 4; i <= 11; i++)
{
pinMode(i, OUTPUT); //設置4~11引腳爲輸出模式
}
}

void loop()
{
for (int i = 0; i < 10; i++)//以此顯示數字0到9
{
digitalWrite(pin_a, numTable[i][0]); //設置a 引腳的電平
digitalWrite(pin_b, numTable[i][1]); //設置b 引腳的電平
digitalWrite(pin_c, numTable[i][2]); //設置c 引腳的電平
digitalWrite(pin_d, numTable[i][3]); //設置d 引腳的電平
digitalWrite(pin_e, numTable[i][4]); //設置e 引腳的電平
digitalWrite(pin_f, numTable[i][5]); //設置f 引腳的電平
digitalWrite(pin_g, numTable[i][6]); //設置g 引腳的電平
digitalWrite(pin_p, numTable[i][7]); //設置dp引腳的電平
delay(200);
}

}

3. 連接開發板,設置好對應端口號和開發板類型,進行程序下載。

程序下載

3. 實驗現象

數碼管循環顯示數字0到9。

實驗現象

4. 實驗分析

程序中定義了一個二位數組用來存儲0到9的段碼顯示。然後在loop中通過for()循環遍歷顯示0到9,每個數字分別讀取對應的段碼錶來控制相應段LED的亮滅。

根據使用場所和需求的不同,LED被封裝成不同類型的數碼管,但其基本原理都是相同的,都需要控制每一個LED的亮滅最終拼湊成需要顯示的數字、字母甚至是漢字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章