TM1638七節LED顯示器

要把樹莓派感測的資料值顯示出來,便宜省錢的方案就是使用七節LED顯示器或是矩陣LED顯示器,這次先介紹TM1638七節LED顯示器,它有八個七節LED、八個LED以及八個按鈕,是很實用的零組件。

要使用它首先就要安裝它的Python Package rpi-TM1638,我fork原作者的程式並修改了一些小BUG及改用Python3的類別寫法,網站:https://github.com/sunnyrainwss/rpi-TM1638

安裝方式先遠端登入到樹莓派(或是使用realvnc直接使用遠端桌面),並使用底下的指令

sudo pip3 install git+https://github.com/sunnyrainwss/rpi-TM1638.git

from time import sleep
from rpi_TM1638 import TMBoards

# my GPIO settings (connected on GPIO19 and GPIO13 for DataIO and Clock; and on GPIO6 for the STB)
DIO = 19
CLK = 13
STB = 6,

# instanciante my TMboards
TM = TMBoards(DIO, CLK, STB, 0)

TM.clearDisplay()

# 逐一顯示上方八個LED燈
for i in range(8):
    TM.leds[i] = True  # turn on led 0 (1st led of the 1st board)
    sleep(0.5)
    TM.leds[i] = False

TM.segments[0] = '12.3'  # 從第0個開始顯示資料值
TM.segments[4] = '56.78'  # 從第4個開始顯示資料值

# 第3個7節LED逐一顯示
for i in range(8):
    TM.segments[3, i] = True
    sleep(0.5)
    TM.segments[3, i] = False

TM.clearDisplay()
TM.segments[0] = '00000000'

# 依照按鈕按下位址顯示1,沒按下顯示0
while True:
    a = TM.getData(0)
    print(a)
    seg = 0
    disp = ''
    for x in a:
        if x == 1 or x == 16:
            if x == 16:
                seg = 4
            disp += '1'
        else:
            disp += '0'
    TM.segments[seg] = disp
    sleep(0.5)
    TM.segments[seg] = '0000'

Last updated