A működés lényege egyrészt ismét a szemünk hiányosságán, másrészt a polarizáció jelenségén alapul. Ha egy polárszűrőn kereszül vezetjük át a fényt, azon csak a szűrőre merőleges hullámok haladnak át. A fény transzverzlis elektromágneses hullám, melynek a két összetevője merőleges egymásra, így polarizációs tulajdonságokat mutat. Szemünk erre érzéketlen. 2 polárszűrőt egymáshoz képest 90 fokkal elforgatunk, a háttérből érkező fény nem hatol át rajta. Viszont, ha elektromos előtérrel 90 fokot forgatunk a fény szögén, az alsó polárszűrő már átengedi a fényt, a szemlélő fénypontot lát. Van tehát egy egyenletes háttérvilágítás, és előtte képpontont méretű polárszűrő páros, közte az elektromos vezérelhetőséget biztosító folyadékkristály. Jellemzően a vezérlés kis energiát, és kis mélységet igényel, miáltal lapos, kis fogyasztású kijelző hozható létre. Ezen elven működnek az egyéb kijelzők is (pl. tv, monitor, telefon...), persze ezeknél a színek miatt a cellák szűrővel bővülnek. A gyártási technológia olyan apró képpont cellákat képes létrehozni (20nm), hogy kis méretben is (pl. telefon kijelző) kiváló felbontás érhető ell, nagy tv-knél pedig megjelenhetett a szuper nagy 4K, 8K felbontás.
a használt LCD kijelző jellemzői és üzembehelyezése
A fejlesztőpanelra 2 soros, soronként 16 karakter megjelenítésére képes LCD kijelző került. A karakterek 5 x 8 pontos mátrixal ábrázolhatók, ami lényegesen jobb felbontást biztosít, mint azt láthattuk a 7 szegmenses kijelzőnél. Ezzel már -szinte- tetszöleges karakter ábrázolható, még ha szerényebb felbontású is. Kis számolással kiszámítható, 32 karakter x 40 képpont= 1280 képpont vezérlésére van szükség. Ez már nem bízhatő direkben a processzorra, hanem egy interface integtált áramkör (HD44780U) veszi le a vezérlés terhét a mikrovezérlőről, leegyszerűsítve annak programozását. Az interface IC-be -egyebek mellett- mintegy 240 karakter forma van eltárolva, leegyszerüsítve ezzel a karakterek megjelenítésének képpontonkénti vezérlési igényét.
Fontos! A fejlesztópanelon LCD-je működtetéséhez
a JP9 jumpert be kell dugni,
a 41-s portot LOW szintre kell állítani,
a 8-s porton engedélyezni (HIGH) kell az LCD-t, az adatokat a felső 4 bítre (D84-D87), a 26-29 portokta küldjük,
állítsuk be a kontrasztot az R2 potméterrel.
LCD panel kivezetései
Fejlesztőpanel LCD portjai
Fejlesztőpanel LCD kapcsolási vázlat
LCD kijelző programozása, könyvtárhasználat
Az LCD működését támogató beépített inrerface IC ellenére is nagyon összetett feladat a kijelző programozása. Ebben segít a könyvtár használata. A könyvtár hasonlít a korábban tanult funkcióhíváshoz, annyi különbséggel, a rutint a programozó ömaga készíti és illeszti a programja végére, addig a könytárakat bárki elkészítheti, közzéteszi, letölthetjük, és a "használati utasítás" szerint beépíthetjük programunkba.
Könyvtárak kezelése
Az Arduino IDE program a könyvtárakat az "Eszközök" menüsor "Könytárak kezelése" menüpontjából kezeli. Rákattintva az Arduino -külön ablakba- beolvassa a
github.com címen
tárolt könyvtárakat. A nagy számú elem miatt érdemes a keresőt használni, leginkább a könyvtár címében való kifejezésre keresni. Minden könyvtárelem, a beépülő programelemeken túl, általában részletes "használati utasítást" tartalmaz, sőt a liszecjogokat is részletezi. Az utóbbit is érdemes elolvasni, nehogy egy üzleti célra készülő program esetén, jogi korlátokba ütközzünk. Az a biztos, ha egy korlátozásmentes, szabad felhasználású könyvtárelemet választunk.
A kiválasztott programot, feltéve, ha az Arduinon keresztül töltjük le, közvetlenül az Ardiono telepítésekor választott programmappa könyvtár mappájába (libraries) telepíti. Programszerekesztéskor a program legeleéjén, az #include "könyvtárnév.h" utasítással hivhatjuk meg a könyvtár elemet.
A könyvtár meghívása után, gondoskodnunk kell a változó paraméterek (pl. porthasználati kapcsolat, bemenő változók értékei...) megadásáról. Ezekről tájékozódhatunk a könytár működésének ismertetőjéből.
A programunkhoz használható telepített könyvtárakról tájékozódhatunk a "Vázlat" menüsor "Könyvtár tartalmazza" menüpontban, ahol a megjelenő listában először az Ardiuno telepítésekor beépülő könyvtárak címei jelennek meg, a list alján pedig az utólag általunk telepített -ha van ilyen- könytárelemeket találjuk.
Nézzünk egy példát, az aktuális LCD-t vezérlő könyvtár használatára. A LquideCristal nevű könyvtárelem oly gyakori, hogy az, az Arduino program telepítésekor automatikusan megjelenik a könytárunkban.
lcd.setCursor(0, 1); //A kiiras helye: 0. oszlop, 2. sor
lcd.print(millis()/1000); //eltelt masodperc a bekapcsolas ota
}
LCD kijelző programozása
Könyvtárhívás
A mintapélda első sora mutatja a könyvtárhívás utasítása a #include "LiquidCrystal.h".Több könyvtárelem is meghívható egy programhoz, viszont minden elem meghívásához külön-külön használni kell a #include könyvtárnév.h utasítást!
Alapbeállítás
A könyvtárelemként meghívott lcd vezérlő alapbeállításához az LiquidCrystal lcd() utasítás szükséges. Itt lehet beállítani a kijelző üzemmódját. Többféle üzemmódban is lehetséges működtetni. A formátum beírásával az üzemmód automatikusan beáll.
Példáinkban a 2-ként szereplő un. 4 bites beállítást használjuk. Alapvetően használható a 4 bites, vagy a 8 bites beállítás. Előbbi kevesebb csatlakozási pontot igényel, az utóbbi viszont gyorsabb kiírást biztosít.
Megjegyzés, további 1 port csökkentését érhetünk el, ha a kijelző "rw" lábát földpontra kötjük, A fejlesztő panelon az "rw" láb a 41-s portra csatlakozik, így ha a legegyszerűbb 1-s üzemmódot választanának, úgy gondoskodnunk kell a 41-s port LOW szintre való beállításáról. Ha szeretnénk háttérvilágítást, azt a 8. port HIGH szintre állításával érhetjük el.
Az alapbeállításokat a void setup () utasítás elé kell írni!
Az lcd.begin(16, 2);utasítás is része az alapbeállításnak, a használt kijelző milyenségét deklarálja. Az argumentum első száma a kijelző oszlopainak-, a második szám a sorok számát jelenti. A fejlesztő panelon 2 soros, 16 karakteres LCD található! Az utasítás elhelyezése a void setup()-ba kerül!