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.

Bekötés

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:

I2C detect eredménye

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!