Amikor a Raspberry Pi-t asztali számítógépként használjuk, az elsődleges megjelenítő eszköz a hagyományos monitor. Azonban elképzelhető sok olyan alkalmazás, amikor a Pi valamilyen vezérlési, mérési feladatot lát el, az alkalmazott program automatikusan indul a gép bekapcsolásakor, és az adatok hálózaton keresztül érhetőek el. Az ilyen esetekben a Pi-re nem kapcsolunk hagyományos monitort, de nagyon hasznos lehet egy kisméretű, helyi kijelző, amin alap adatok jeleníthetők meg szervízcélból (pl. IP cím, CPU hőfok, memória használat, rendszeridő, stb.)
A fent vázolt feladatok megoldására kiválóan megfelelnek a kisméretű, I2C buszon kommunikáló kijelzők, mint pl. a miniatűr 128×32, vagy 128×64 pixeles 0.98”-os OLED, vagy a „hagyományos” 16×2-es karakteres LCD kijelzők. Ez utóbbi alapból nem ismeri az I2C kommunikációt, így a Pi-hez való illesztését egy MCP23017-es buszbővítőn keresztül tudjuk megoldani. Mindkét kijelzőnél mindössze négy vezetékre lesz szükségünk a csatlakoztatáshoz, ebből kettő a tápfeszültséget szolgáltatja, kettő pedig az adatátvitelt biztosítja.
16×2-es LCD kijelző
A kijelző bekötését célszerű jumper kábelek segítségével megoldani, mert a GPIO portra történő közvetlen illesztés a 3B+ illetve a 4-es típusoknál melegedési problémákat okozhat, illetve így sokkal rugalmasabbak a beszerelési lehetőségek is.
Ha fizikailag össze van kötve a kijelző a Raspberry Pi GPIO portja, akkor ellenőrizzük, hogy az I2C busz engedélyezve van-e. Ezt grafikus felületen a Beállítások ->Raspberry Pi Configuration menüben tehetjük meg, vagy terminál ablakban adjuk ki a
sudo raspi-config
parancsot, majd lépjünk az Interfacing Options menübe, és engedélyezzük az I2C buszt!
Az i2cdetect –y 1 paranccsal ellenőrizhetjük, hogy a Pi érzékeli-e az LCD kijelzőt:
Az i2cdetect –y 1 Ha a kijelzőnk megjelenik a táblázatban, következhet az Adafruit CircuitPython CharLCD library telepítése a:
sudo pip3 install adafruit-circuitpython-charlcd
paranccsal.
A telepítés után tesztelhető a kijelző! A helyes működéshez szükséges a megfelelő library-k importálása, az I2C busz inicializálása, illetve az LCD osztály megfelelő példánynak definiálása:
import board import busio import adafruit_character_lcd.character_lcd_rgb_i2c as character_lcd lcd_columns = 16 lcd_rows = 2 i2c = busio.I2C(board.SCL, board.SDA) lcd = character_lcd.Character_LCD_RGB_I2C(i2c, lcd_columns, lcd_rows)
A „kötelező” sorok után következhet a saját alkalmazásunk! Példaképpen, illetve a legfontosabb parancsok kipróbálására próbáljuk ki az alábbi programot:
"""16x2 LCD panel teszt""" import time import board import busio import adafruit_character_lcd.character_lcd_rgb_i2c as character_lcd # Az alkalmazott kijelzőhöz módosítandó!! lcd_columns = 16 lcd_rows = 2 # I2C busz inicializálása i2c = busio.I2C(board.SCL, board.SDA) # LCD osztály inicializálása lcd = character_lcd.Character_LCD_RGB_I2C(i2c, lcd_columns, lcd_rows) lcd.clear() # LCD háttérvilágítás bekapcsolása lcd.color = [255, 255, 255] time.sleep(1) # Kétsoros üzenet kiírása lcd.message = "Hello\nWorld" # vár 1s-ot time.sleep(1) # kiírás jobbról balra lcd.text_direction = lcd.RIGHT_TO_LEFT lcd.message = "Hello\nWorld" # vár 5s-ot time.sleep(5) # kiírás balról jobbra lcd.text_direction = lcd.LEFT_TO_RIGHT lcd.clear() time.sleep(1) lcd.message = "Megyek aludni!\nCya later!" time.sleep(5) # Háttérvilágítás kikapcsolása, kijelző törlése lcd.color = [0, 0, 0] lcd.clear()
A forráskód letölthető:
Különféle LCD kijelzők megvásárolhatóak a MálnaPC Webshopjában!