Sokan találkoznak azzal a jelenséggel, hogy egy kijelzős projekt:
- fordul,
- feltöltődik,
- de futás közben furcsán viselkedik, lefagy, vagy egyszerűen nem jelenít meg semmit.
Ilyenkor gyakran a kijelzőt vagy a könyvtárat gyanúsítjuk, pedig a probléma gyökere sok esetben az SRAM elfogyása – különösen Arduino Uno esetén.
Mit jelent az SRAM az Uno-n?
Az Arduino Uno:
- 2 KB SRAM-mal rendelkezik, ebben kell elférnie:
- a futó változóknak,
- a stacknek,
- a heapnek,
- és sok könyvtár belső adatainak is.
Ez nagyon kevés – és kijelzőknél gyorsan elfogy.
Fontos különbség:
- Flash → programkód (32 KB)
- SRAM → futás közbeni memória (2 KB)
A kijelzők nem a Flash-t, hanem főként az SRAM-ot terhelik.
Miért SRAM-éhesek a kijelzők?
Grafikus kijelzőknél gyakori, hogy:
- frame buffer kerül a memóriába,
- vagy részbuffer a rajzoláshoz,
- plusz karakterkészletek, állapotok.
Példák:
- 128×64 OLED teljes frame buffer ≈ 1024 byte
- ez az Uno SRAM-jának felét elviszi
- erre jön még a program, változók, könyvtárak
Karakteres LCD-knél a helyzet jobb, de az I2C bővítős megoldások és könyvtárak ott is használnak SRAM-ot.
Tipikus tünetek, amikor elfogy az SRAM
Ha SRAM-problémába futsz, gyakran ezeket látod:
- a kijelző nem frissül,
- random karakterek jelennek meg,
- a program látszólag „elindul, majd megáll”,
- soros porton értelmetlen adatok jönnek.
Ezek nem kijelzőhibák, hanem memória-összeomlás jelei.
Miért „működik néha”?
Ez az egyik legveszélyesebb része az SRAM-problémának.
Ha a memória:
- épp határon van,
- a stack és heap összeér,
akkor a program:
- néha működik,
- néha nem,
- és kis módosításokra teljesen máshogy reagál.
Ezért tűnik sokszor „megmagyarázhatatlannak” a hiba.
Mit tehetsz Uno esetén?
Néhány bevált irány:
1️⃣ Kerüld a teljes frame bufferes megoldásokat – használj részleges frissítést, ha lehet.
2️⃣ Minimalizáld a szövegeket – hosszú stringek SRAM-ban laknak.
3️⃣ Használj karakteres LCD-t, ha elég – sokkal kevesebb memóriát igényel.
4️⃣ Gondolkodj platformváltásban – ha grafikus kijelző kell, az Uno lehet rossz választás.
Mikor nem az Uno a jó alap?
Ha:
- grafikus OLED-et használsz,
- több menüoldal van,
- ikonok, grafika, animáció kell,
akkor érdemes:
- nagyobb SRAM-mal rendelkező MCU-t választani,
- vagy ESP / ARM irányba menni.
Ez nem „túlzás”, hanem józan tervezés.
Szóval az UNO és a grafikus kijelző – időzített bombakénti párosítás?
Az Arduino Uno kiváló tanulóplatform, de kijelzőknél nagyon gyorsan eléri a határait.
Ha a kijelző:
- furcsán viselkedik,
- instabil,
- „magyarázat nélkül” hibázik,
akkor mindig gondolj az SRAM-ra.

