Raspberry Pi Pico筆記(6):使用七段顯示器計數

七段顯示器在微控制的實作中常被當作顯示數字或簡單的英文字母使用,可分成兩種:一是共陽極(Common Anode),各段 LED 的陽極互相連通,另一是共陰極(Common Cathode),各段 LED 的陰極互相連通。
七段顯示器的內部構造是由 8 個 LED 發光二極體組成七個筆劃加上小數點,如下圖所示,依順時針方向分別為 A, B, C, D, E, F, G 以及小數點 DP(decimal point):
七段顯示如何工作呢?要顯示的十進制數字,特定的一組LED被點亮。要打開和關閉顯示器的特定部分,請將相應的引腳設置為HIGH或LOW,就像使用常規LED一樣。例如,要顯示數字 4,我們將需要點亮對應於B, C, F和G的四個LED段。因此,可以使用如上圖所示的七段顯示來顯示從 0 到 9 的各種數字和從 A 到 F 的字元。本實作要來瞭解一下如何使用 MicroPython 撰寫 Pi Pico 的程式控制七段顯示器。

[材料]

  • Raspberry Pi Pico x1
  • 七段 LED 顯示器 x1
  • 電阻 220歐姆 x1
  • 麵包板 x1
  • 排線 n 條

[接線圖]

Pi Pico Pin 與七段顯示器的接腳對應關係:
Pi Pico接腳七段顯示器
Pin 2(GPIO1) A
Pin 4(GPIO2) B
Pin 5(GPIO3) C
Pin 6(GPIO4) D
Pin 7(GPIO5) E
Pin 9(GPIO6) F
Pin 10(GPIO7) G
Pin 36(3V3)接 220歐姆電阻一端,電阻另一端 COM


[程式]

我的七段顯示器是共陰極,COM 接 3.3V,要讓 LED 顯示時,需要低電位才會亮。例如要顯示 0,根據上圖,G 位置的 LED要熄滅,因此 chars 陣列中第七位(G)需設為 1,LED 才不會亮,其他六個 LED 均為 0。
from machine import Pin
import utime

pins = [
   Pin(1, Pin.OUT), #A
   Pin(2, Pin.OUT), #B
   Pin(3, Pin.OUT), #C
   Pin(4, Pin.OUT), #D
   Pin(5, Pin.OUT), #E
   Pin(6, Pin.OUT), #F
   Pin(7, Pin.OUT)  #G
   ]

chars = [
   [0,0,0,0,0,0,1], #0
   [1,0,0,1,1,1,1], #1
   [0,0,1,0,0,1,0], #2
   [0,0,0,0,1,1,0], #3
   [1,0,0,1,1,0,0], #4
   [0,1,0,0,1,0,0], #5
   [1,1,0,0,0,0,0], #6
   [0,0,0,1,1,1,1], #7
   [0,0,0,0,0,0,0], #8
   [0,0,0,1,1,0,0]  #9
   ]
 
def clear():
    for i in pins:
        i.value(1)

while True:
   for i in range(len(chars)):
      for j in range(len(pins)):
         pins[j].value(chars[i][j])
      utime.sleep(1)  #暫停1秒 

[實作結果]


[參考資料]

Post a Comment

較新的 較舊