實驗目的
控制一顆七段顯示器,在七段顯示器上依序顯示從 9 到 0 的數字,製作數字倒數的效果。
七段顯示器簡介
七段顯示器是用來顯示數字的常用電子元件,在很多地方都可以看到它的身影,例如電子時鐘、溫度顯示器和各種儀表。它外型如下圖,背面一共有10 支接腳:
(圖片來源: 露天拍賣)
七段顯示器分成共陽極和共陰極兩種,不管是哪一種,內部構造都是由 8 個 LED 發光二極體所組成,其中七個是筆劃,另外一個是小數點,如下圖所示,依順時針方向分別為 a, b, c, d, e, f, g 以及小數點 dp (decimal point):
要產生數字,方法是點亮指定的 LED。例如要產生數字 0,便點亮 a, b, c, d, e, f 等節段;要產生數字 1,便點亮 b, c 等節段;要產生數字 2,便點亮 a, b, d, e, g 等節段,依此類推。以共陰極而言,0 到 9 這十個阿拉伯數字與各節段的對應表如下:
顯示數字 | dp | a | b | c | d | e | f | g |
0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
2 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
3 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |
4 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
5 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
6 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 |
7 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
8 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
9 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
如果使用的是共陽極的七段顯示器,上面表格中所有的 1 都要換成 0, 所有的 0 都要換成 1。8 個 LED 連接到背面的接腳,我們為背面 10 接腳作個編號比較好記憶,a, b, c, d, e, f, g, dp 與 10 支接腳的關係圖如下:
(圖片來源:.NET Micro Framework – More blinking LEDs)
上圖是共陰極型的七段顯示器,3, 8 接腳要接到 GND,如果是共陽極則 3, 8 接腳要接到 +5V。
材料
- 麵包板 x 1
- Arduino 主板 x 1
- 七段顯示器(共陽極或共陰極皆可) x 1
- 220 ohm 電阻 x 8
- 單心線 x N
接線
- 將七段顯示器 3, 8 腳接到 GND (本例使用共陰極,若為共陽極請將 3, 8 腳接到 +5V)
- 查表將 Arduino 2, 3, 4, 5, 6, 7, 8 接到七段顯示器對應的腳位,並在每支接腳上串接一顆 220 ohm 電阻
下表為 Arduino 與七段顯示器的腳位對應表:
Arduino 腳位 | 七段示顯器腳位 (筆劃) |
2 | 7 (A) |
3 | 6 (B) |
4 | 4 (C) |
5 | 2 (D) |
6 | 1 (E) |
7 | 9 (F) |
8 | 10 (G) |
9 | 5 (DP) |
電路圖
程式碼
版本一: 程式比較長,但比較容易懂(_7Segment.pde)
版本二:簡化程式的寫法(_7SegmentV2.pde)
範例照片/影片
動動腦
接上一顆可變電阻,利用可變電阻來控制七段顯示器上的數字。提醒:使用 analogRead() 讀進來的可變電阻數值介於 0 到 1023,可以利用 map() 函式將 0 到 1023 的數值對應為 0 到 9 之間的數值,然後再將數字顯示在七段顯示器上。
您好 請問板大有接觸過MSP430這顆MCU嗎?
回覆刪除Hi, MSP430 我接觸的經驗不多,之前 Robofun 機器人論壇有在比較 MSP430 LaunchPad 跟 Arduino 的差別,那時有稍微看了一下 MSP430 LaunchPad 的資料。
回覆刪除我覺得 MSP430 LaunchPad 很不錯,而且 TI 賣得很便宜,相當適合學生族群,是學習單晶片很好的一個管道。
你正在玩 MSP430 Launchpad 嗎?
BTW, TI 的 MSP430 是一系列的 16-bit MCU,不是指某顆 MCU 喔。
我想請問動動腦 有解答嗎?
回覆刪除有啊,解不出來嗎?
回覆刪除作者已經移除這則留言。
回覆刪除請問可以幫忙解答一個題目嗎
回覆刪除七段顯示器+兩個按紐
初始值七段顯示0
按第一個按紐按一下 +1 最高為9 在案無反應
按第二個按紐按一下 -1 最低為0 在案無反應