Leírás
Amikor egy Arduino-projekt már kinőtte azt a korszakot, hogy két LED villogása elmondjon mindent, előbb-utóbb kell rá egy kijelző. Nem feltétlenül nagy, nem feltétlenül színes – csak mutassa rendesen, mi történik. Erre való ez a 0,96″ OLED 128×64 I2C kijelző – fehér, SSD1306. Kis helyet foglal, mégis elfér rajta egy mérési érték, néhány sor szöveg, ikon, állapotjelzés vagy akár egy egyszerű grafikon.
A 128×64 pixel elsőre csak egy számnak tűnik, de a gyakorlatban ez már egész jól használható munkafelület. Egy hőmérőnél például kiírhatjuk nagy számmal az aktuális értéket, alá a minimumot és maximumot, mellé pedig egy kis állapotikont. Ugyanez egy tápfigyelőnél lehet feszültség, töltöttség és figyelmeztetés. Vagyis nem karakterhelyekben kell gondolkodni, hanem képpontokban – oda rajzolunk, ahová akarunk.
A modul I2C buszon kommunikál, ezért a bekötése sem nő kábelrengeteggé. A tápellátás mellett két jelvezeték dolgozik: SDA és SCL. Ez különösen akkor kellemes, amikor a mikrokontroller lábaiból már nincs sok szabadon, vagy ugyanarra az I2C buszra több érzékelőt is szeretnénk felültetni.
Van viszont egy részlet, amit érdemes még a programírás előtt fejben helyretenni. Egy teljes 128×64 pixeles, egybites képernyőkép 1024 bájt memóriát jelent. Egy nagyobb memóriájú vezérlő ezt észre sem veszi, egy ATmega328P-alapú Arduino UNO vagy Nano viszont már igen. Itt nem maga a kijelző a probléma, hanem az, hogyan dolgozik vele a választott programkönyvtár.
Mire való, és miért hasznos?
Képzeljünk el egy egyszerű szakköri feladatot: van egy hőmérséklet-érzékelőnk, az Arduino szépen méri az adatot, a soros monitoron minden rendben. Csakhogy amint lehúzzuk a gépről, már nincs mit nézni. Ilyenkor kerül képbe a kijelző.
A 0,96″ OLED 128×64 I2C kijelző – fehér, SSD1306 közvetlenül a mikrokontrolleres rendszer helyi visszajelzője lehet. Nem kell hozzá külön számítógép, nem kell telefonos alkalmazás, az eszköz önállóan meg tudja mutatni a fontos adatokat.
Az OLED technológia egyik kézzelfogható előnye, hogy nincs külön háttérvilágítás. A világító képpont maga állítja elő a fényt. Emiatt a fehér karakterek és rajzok sötét háttéren jól elkülönülnek, és egy kis műszerdobozban vagy asztali elektronikában kifejezetten jól olvasható kijelző készíthető vele.
Így épül be az áramkörbe
A bekötés logikája egyszerű. Kell táp, föld, SDA és SCL. Ennyi a kijelző oldaláról az alapkapcsolat.
Az I2C busz azért jó barát egy ilyen kis modulnál, mert ugyanazt a két adatvezetéket több eszköz is használhatja. Ha például van egy I2C-s szenzorunk és mellette ez a kijelző, nem feltétlenül kell újabb és újabb mikrokontroller-lábakat feláldozni. A buszon az eszközöket a címük különbözteti meg.
Itt jön az első tipikus műhelyhiba: a program elindul, hibaüzenet nincs, a kijelző mégis fekete marad. Ilyenkor nem rögtön a forrasztópákát kell elővenni. Először azt érdemes végiggondolni, hogy jó I2C címet használ-e a program, valóban a megfelelő SDA/SCL lábakra kötöttük-e a modult, és 128×64-es kijelzőre van-e beállítva a könyvtár.
A vezérlést az SSD1306 IC végzi. Ez a kijelző szempontjából lényeges adat, mert a programkönyvtár kiválasztásakor nem elég annyit tudni, hogy “OLED”. SSD1306-hoz való meghajtást kell használni, mégpedig 128×64-es konfigurációval.
Hol jön jól?
- Szenzoros mérőműszerben, ahol a pillanatnyi érték mellett minimum, maximum vagy mértékegység is megjelenik.
- Tápegység- vagy akkumulátorfigyelőben, ahol egyszerre szeretnénk látni a feszültséget és az állapotot.
- Arduino vagy ESP8266 alapú órában, időzítőben és számlálóban.
- Kis menürendszernél, ahol nyomógombbal vagy forgójeladóval állítunk paramétereket.
- Adatgyűjtőnél, ahol egy rövid grafikon többet mond, mint tíz egymás után kiírt szám.
- IoT-eszközön helyi állapotkijelzésre, például kapcsolat, érzékelőérték vagy üzemmód visszajelzésére.
- Oktatási feladatnál, ahol az I2C busz működését és a grafikus kijelzőkezelést egyszerre szeretnénk megérteni.
Mire kell figyelni beüzemeléskor?
| Mire figyelj? | Mit okoz? |
|---|---|
| I2C-s kijelző kell a kapcsolásodhoz? | Ez a változat SDA és SCL vezetékkel kommunikál. Ha SPI-s kapcsolást építesz, másik kijelzőváltozat kell. |
| Megfelelő a tápfeszültség? | A modul 3,3-5 V tápellátással használható. |
| A megfelelő SDA és SCL lábakra kötötted? | Rossz buszcsatlakozásnál a program nem tud kommunikálni a kijelzővel. |
| Jó kijelzőméretet állítottál be a könyvtárban? | A 128×32-es és a 128×64-es konfiguráció nem felcserélhető. |
| Helyes I2C címet használ a program? | Rossz címnél a kijelző nem válaszol. A konkrét modul rögzített címe jelenleg: 0x3C |
| Marad elegendő RAM a programnak? | Teljes képernyőpuffer esetén 1024 bájt memóriával kell számolni. |
Ezt nézd meg, mielőtt döntesz
Az első kérdés ne az legyen, hogy “0,96 col jó lesz-e”, hanem az, hogy milyen interfész kell. Ugyanebben a méretben léteznek I2C-s és SPI-s kijelzők is. Ha már kész programod vagy NYÁK-od van, ez rögtön eldöntheti, melyik változat használható.
Utána jön a vezérlő IC. Ez a modul SSD1306-at használ. Ha olyan programot találsz, amely SH1106-os kijelzőhöz készült, attól még a felbontás lehet ugyanúgy 128×64, de a két vezérlőt nem jó ötlet egy kalap alá venni.
Kisebb Arduino esetén a RAM-ot sem érdemes a végére hagyni. Egy UNO összes SRAM-ja 2 kB, ebből egy teljes képernyőpuffer önmagában 1024 bájtot elfoglalhat. Ha közben több szenzoradatot, hosszabb szövegeket vagy kommunikációs puffert is tárolunk, hamar szűk lesz a hely.
Amikor más kijelzőt érdemes választani
- Ha színes ikonokra, képekre vagy grafikus kezelőfelületre van szükség, TFT kijelző célszerűbb.
- Ha több méterről kell leolvasni az adatot, a 0,96″-os méret kicsi lesz.
- Ha sok sor szöveget kell egyszerre megjeleníteni, érdemes nagyobb kijelzőben gondolkodni.
- Ha nagyon gyors, folyamatos teljes képernyős frissítés kell, az SPI-s változat előnyösebb lehet.
- Ha a mikrokontroller memóriája erősen korlátozott, a választott grafikus könyvtár memóriaigényét is bele kell számolni a tervezésbe.
- Ha érintésérzékelés kell, ez a modul önmagában nem oldja meg.
Egy részlet, amin sok múlhat
Egy ilyen kijelzőnél könnyű csak a négy vezetéket nézni, mert a hardver valóban egyszerűnek látszik. A érdekes rész gyakran a programban kezdődik. Egy Arduino UNO-n például nem mindegy, hogy a könyvtár az egész képernyőt RAM-ban tartja-e.
Ez jó példa arra, hogy egy alkatrészt nem mindig a lábszám alapján kell “nagynak” vagy “kicsinek” gondolni. Hardveresen alig kér valamit, közben a grafikus megjelenítés a programmemóriát és az SRAM-ot is rendesen meg tudja dolgoztatni.
Műszaki jellemzők
| Jellemző | Érték |
|---|---|
| Kijelző típusa: | OLED, monokróm grafikus |
| Képátló: | 0,96″ |
| Felbontás: | 128×64 pixel |
| Kijelzés színe: | fehér |
| Vezérlő IC: | SSD1306 |
| Kommunikáció: | I2C / IIC |
| Adatvezetékek: | SDA, SCL |
| Csatlakozók száma: | 4 |
| Tápfeszültség: | 3,3-5 V |
| Megadott maximális áramfelvétel: | 8 mA |
| Adatvonal: | 5 V tolerant I/O |
| Megadott betekintési szög: | 160° |
| Aktív kijelzőterület: | kb. 22×11 mm |
| Teljes képernyőpuffer mérete: | 1024 bájt, 1 bites 128×64 képnél |
| Működési hőmérséklet: | -30…+80 °C |
| I2C cím: | 0x3C |
| Pontos érintkezősorrend: | szitázva a panelen |
| Közvetlenül megadott vezérlőtámogatás: | Arduino UNO, Mega, Leonardo, Due, ESP8266/ESP32 |
Dokumentáció
Csomag
- 1 db 0,96″ OLED 128×64 I2C kijelző – fehér, SSD1306
















Értékelések
Még nincsenek értékelések.