Hétszegmenses számkijelző vezérlése MAX7219 IC-vel

A max7219_showbcddigits.py mintaprogram bemutatása (kis kiegészítéssel)

Az E-bay kínálatában kapható számkijelző modul két darab 3641AH típusú kijelzőjét egy MAX7219 típusú IC hajtja meg, ami az SPI buszon kerestül írható. A modul nyolc számjegyet tud megjeleníteni, melyekhez egy-egy tizedespont is tartozik.

Az IC tárolja a LED-ek állapotát és automatikusan frissíti a kijelzést, korlátoza a LED-ek áramát és digitálisan szabályozza a LED-ek fényerejét (PWM) 15 fokozatban.

7segment.png

Szoftveres meghajtó: Adafruit CircuitPython MAX7129 programkönyvtár

A programkönyvtárhoz mintapéldákat is mellékeltek. Most a max7219_showbcddigits.py programot mutatjuk be, ami egy 8 számjegyű, hétszegmenses kijelzőt vezérel.

Mielőtt tovább lépnénk, ellenőrizük, hogy csatlakoztatva van-e a CircuitPython kártyánk!

Az stm32f411ce-blackpill-with-flash kártya esetén az SPI2 csatornát fogjuk használni (az SPI1 csatorna foglalt a flash memória kezelésére). A CE kiválasztó jel elvileg bármelyik digitális kimeneten kiadható, de itt a szokásos módon az SPI2 csatorna NSS2 kivezetését használjuk fel (B12 tüske).

Inicializálásnál először az SPI csatornát konfiguráljuk, majd ezt kigészítjük egy CE vezrlő digitális kimenettel, s ezeken keresztül vezéreljük a Matrix8x8 objektumot.

A MAX7219 IC inicializálása a _bcddigits.py állományban található:

def init_display(self) -> None:
    for cmd, data in (
        (_SHUTDOWN, 0),                        # Kijelzés letiltása
        (_DISPLAYTEST, 0),                     # Normál mód beállítása
        (_SCANLIMIT, 7),                       # Minden számjegy kijelzése
        (_DECODEMODE, (2**self._ndigits) - 1), # Minden számjegy dekódolva
        (_SHUTDOWN, 1),                        # Kijelzés engedélyezése
    ):
        self.write_cmd(cmd, data)

max7219_registers.png

Az alábbi parancsokkal bármikor újrainicializálhatjuk a MAX7219 IC-t és a kijelzőt:

Minimálisra állítjuk a fényerőt és lekapcsoljuk az összes LED-et.

Megjelenítünk egy nyolcjegyű számot (jobbra igazítva), ami egyelőre halványan látszik.

Fokozatosan növeljük a fényerőt

Kiíratjuk a -HELP-90 szöveget

Sorban felvillantjuk a tizedespontokat

Kiírunk két tiedest is tartalmazó számot

Kiírunk egy négyjegyű számot, a baloldali "térfélen"