首先來看看這種標準型的8x8點陣式LED(以下是由4個8x8點陣式LED所組成的):
雖然看起來有非常多的LED,但是其中大部份的工作都已被裡面的IC幫我們完成了,因此,其實它只有少少的5條線需要連接。背面看起來如下所示:
其中,VCC和GND不用說,當然就是分別接到5V電源和接地,我們直接把它們接到NodeMCU的控充板所提供的USB電源處。另外的三條線,DIN,CS,以及CLK,則分別接到D7,D8,和D5,如下所示:
這樣就連接好囉。在程式方面,它需要一個驅動程式max7219,這很容易,只要前往以下的網址,把這個檔案利用ampy上傳到板子上就可以了。
上傳完成之後,只要編寫以下的程式,就可以順利地在LED矩陣上顯示出文字或數字囉。
import max7219import timemessages = ['Nice', ' to ', 'meet', 'you!']from machine import Pin, SPIspi = SPI(1, baudrate=10000000, polarity=0, phase=0)disp = max7219.Matrix8x8(spi, Pin(15), 4)disp.brightness(0)while True:for item in messages:disp.fill(0)disp.text(item,0,0,1)disp.show()time.sleep(1)
以下是程式執行的示範影片:
結合了WiFi網路連線與NTP網路對時,以及溫濕度感測器的功能,以下的程式就可以製作一個溫濕度計時鐘了:
import max7219import timeimport dhtfrom ntptime import settimefrom machine import Pin, SPIsettime()d = dht.DHT11(Pin(16))spi = SPI(1, baudrate=10000000, polarity=0, phase=0)disp = max7219.Matrix8x8(spi, Pin(15), 4)disp.brightness(0)while True:messages = list()utc = time.mktime(time.localtime())year, month, day, hour, minute, second, week, days = time.localtime(utc+28800)messages.append(str(year))messages.append("{:2d}{:2d}".format(month, day))messages.append("{:2d}{:2d}".format(hour, minute))for item in messages:disp.fill(0)disp.text(item,0,0,1)disp.show()time.sleep(2)d.measure()disp.fill(0)disp.text('{}C'.format(d.temperature()), 0, 0, 1)disp.show()time.sleep(2)disp.fill(0)disp.text('{}%'.format(d.humidity()), 0, 0, 1)disp.show()time.sleep(2)
以下是執行的結果:
請注意,這個程式需要在boot.py建立了網路連線之後才能正常運作喔。