Hirdetés

Nem létező 128x64-es LCD meghajtása Arduinoval

Na jó, a LCD fizikailag létezik. Egy Atmega328 alapú minden-teszteren (tranzisztor, LCR, stb.) kaptam egy rokontól, ami megdöglött. Persze megjavítani én sem tudtam, szóval sorsára várt vagy egy éve. Korábban már nézegettem a LCD-t, de nagyon bonyolultnak tűnt az áramkör, ami köré volt építve, és nem is találtam nyomát keresőkkel, szóval ez is egy olyan cucc, ami nem létezik. Aztán egyszer, hónapok után, eleresztettem egy keresést, és az végre talált olyat, ami az LX-12864-B5 kijelzőre vonatkozott.

Hirdetés

Ez amúgy valami ilyesmi :


(Forrás : ebay.com)

Mivel kiderült, hogy kb. 2db 100nF kondenzátor, meg 4db 3,3k (azaz 2,7k, csak azt nem találtam :D ) ellenállás kell a dologhoz (ha 3,3V-ról hajtjuk), gondoltam ki is próbálom. Azt is meredek volt kitúrni, hogy végülis milyen Arduino library kezeli, mert ezeket a COG (Chip On Glass) LCD-ket aztán húszféle vezérlő IC-vel gyártják, de végül meglett : az U8G2 library
U8G2_ST7567_ENH_DG128064_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 8, /* data=*/ 9, /* cs=*/ 10, /* dc=*/ 7, /* reset=*/ 6);
konstruktora kell hozzá, szóval a LCD ST7567 chipes, és SPI protokollon megy (ha nem derült volna ki a lábak neveiből :D )
Programot nem is teszek, mert ezt az egy sort kellett kommentmentesíteni, beírni a megfelelő kimeneteket, amire bedrótoztam, és már ment is a GraphicsTest.ino tesztprogrammal a kijelzőre rajzolás.

Az arduino.ru -n talált bekötés :

És végülis működött!

Sajnos több képet nem csináltam, nem gondoltam, hogy írok róla, így maradt ez a túlexponált darab. Kellett egy u8g2.setContrast(255); és egy
u8g2.setFlipMode(1); , mert halvány volt a kép, és tükrözve mutatta, de ezen kívül semmi baja nem volt.

Végül hőmérő készült belőle, egy családtag fogja megkapni.


Hőmérő lett belőle

Ezt egy elfüstölt tápegység dobozába építettem bele, nem lett túl szép (nem mutatom a belsejét inkább :DDD
elég sok benne a szigetelőszalag...), de működik. A hőmérő a szokásos DS18B20. Éppenhogy meg lehetett oldani, mert az Atmega328 flash-e elég szűk az u8g2-nek, alig fért mellé a Onewire library. Kapott egy gombot, amivel a világítást lehet kapcsolni, meg egy trimmerpotit, aminek az állásától függően kicsit hozzáad/levon a hőmérsékletből - a DS18B20 hajlamos pontatlanságra, a meglevő gyári hőmérőimhez lövöm ezeket hozzá.

Igazából onnan kezdve, hogy meglett a bekötés és a driver, már nem volt nehéz, csak össze kellett rakni, és minden ment a maga útján.

(Update : van még két HFG12864-408 kis 0,96" LCD-m (nem OLED), 30 pin-es, amiből az első és az utolsó 3 nincs bekötve... ha valaki segít beazonosítani, adatlapot találni, arról is írok :D )

Tovább a fórumba.