2014.06.22.
17:18

Írta: harsanyireka

14. /1) Könyvtárak hasznos eszközökhöz: háttértár, kijelző

Lektorált tananyag, ami a BKF Digitális és Kollaboratív Művészet (DIKOM) pályázatnak keretén belül valósult meg.

Szerző: Harsányi Réka, Társszerző: Juhász Márton András, Lektor: Fernezelyi Márton 

 

EEPROM könyvtár

Az Arduino három különböző típusú memóriával rendelkezik, az egyes típusok kapacitása a mikrokontroller fajtájától függ:

  • Flash: Többszörösen újraírható memória, tartalma az eszköz kikapcsolását követően is megmarad. A fejlesztőkörnyezet által lefordított kódunk itt tárolódik gépi utasítások formájában.
  • RAM: Gyors hozzáférésű memória s programunk futtatása közben ideiglenesen tárolt adatok számára. Tartalma kikapcsoláskor elvész.
  • EEPROM: Flashnél régebbi technológia a kikapcsolást követően is megőrzendő adatok, konfigurációs beállítások, kezdeti állapotok, hosszabb szövegek eltárolásához. Nagyságrendileg 100.000 törlés az életideje.

Az EEPROM könyvtár azokat a funkciókat fogja össze, amikkel bájtonként tudjuk írni és olvasni a beépített memória ezen típusát. Az Arduino Mega kontrollerének (ATmega1280 és ATmega2560) 4096, az UNO és Duemilanove (ATmega328) 1024, a Diecimila, NG (ATmega168) és Digital (ATmega8) 512 bájt a kapacitása.

 

A könyvtár függvényei:

-       read()

-       write()

 

EEPROM.read() 

Visszaadja az EEPROM adott címén található bájt értékét.

Szintaxisa:

EEPROM.read(address).

Paraméterei:

address: a memóriacím, ahonnan az olvasás kezdődik (0-tól számozva).

 

Arduino kód: 69eepromread

 

EEPROM.write()

Beállítja az EEPROM adott címén a megadott bájt értékét. Egy bájt kiírása 3,3 ms-ot vesz igénybe, ami a többi memóriatípus sebességét tekintve igen lassú folyamatnak számít, használata kihathat a teljes kódunk futására. Ne felejtsük el, hogy az EEPROM 100.000 írás után használhatatlanná válik!

Szintaxisa:

EEPROM.write(address, value). 

Paraméterei:

address: a memóriacím, ahonnan az olvasás kezdődik (0-tól számozva),

value: a bájt értéke, amit szeretnénk beírni.

 

Arduino kód: 70eepromwrite

 

LiquidCrystal könyvtár

A Hitachi HD44780 folyadékkristályos kijelző meghajtó IC hosszú időn keresztül uralta a piacot, mint a rendkívül populáris, kizárólag monokróm szöveg megjelenítésére alkalmas faxok, telefonok, lézernyomtatók, fénymásoló gépek kijelzőjének vezérlője. Mostanra hobbisták és gyors prototipizálók közkedvelt megoldásává vált a mikrokontrollerek alfanumerikus üzeneteinek megjelenítésére. Az IC által meghajtott kijelzők pár általános szabálynak felelnek meg. Egy karakter mindig 5 vízszintes és 8 függőleges pixelből áll. A leggyakoribb típus egy sorban 8 karakter megjelenítésére alkalmas (8 x 1), de létezik 16 x 2, 20 x 2 és 20 x 4-es is. A kijelzők készülhetnek LED-es, fluoreszcens, elektrolumineszcens háttérvilágítással, vagy anélkül. Az IC maga is egy mikrokontroller, ROM-jában 208 karakter térképét tárolja – japán verziója a kana, európai verziója nyugati és cirill ABC betűiből áll. A LiquidCrystal könyvtár a vezérlő IC instrukciós kódjait és kommunikációs protokollját implementálta pár könnyen használható függvény formájában.

 14.1 †bra 16 x 2-es alfanumerikus LCD HD44780-as vezÇrlãvel.png

6 x 2-es alfanumerikus LCD HD44780-as vezérlővel

A kijelző csatolófelülete (interface), amihez kapcsolódhatunk, egy párhuzamos interfész – a 8 bitnyi adatot minden órajelre egyszerre kell megadni (D0-D7 lábak). Szerencsére szöveges üzenetekhez 4 bites üzemmódot is választhatunk, ami szabadon hagy 4 Arduino csatornát más célokra. Az RS (Register Select) láb logikai alacsonyra vagy magasra állításával választhatjuk meg, hogy az adatvonalak a kijelző mely memóriaterületére írjanak. Az írást az EN (Enable) lábbal engedélyezhetjük. Az adatregiszter tárolja az ASCII kódolású bájtokat, amik karakterként kerülnek megjelenítésre, az instrukciós regiszterben pedig utasítások tárolódnak a meghajtó számára. Ezek az utasítások a kijelző törlésére, a kurzor mozgatására és egyéb funkciókra vonatkoznak. A regiszterek állapotát vissza is olvashatjuk – az RW láb állapotának változtatásával megfordítható a D0-D7 adatvonalak iránya. A kijelző kontrasztját analóg módon a tápfeszültség leosztásával Vo lábon tudjuk beállítani (vagy digitális potméterrel). A háttérvilágítást annak típusától függően a kontraszthoz hasonló módon kezelhetjük. Megfelelő illesztéssel LED-es háttérvilágítást az Arduino egy PWM képes kimenetére is köthetjük, így programozhatóvá válik a fényerő állítása is.

 

Amire szükség lesz:

-       Arduino,

-       LCD kijelző HD44780-as meghajtóval,

-       10 kiloohmos potméter,

-       próbapanel,

-       vezetékek.

 

Kapcsolás:

Kössük az LCD RS lábát az Arduino digitális 12-es csatornájára, az EN lábát pedig a digitális 11-re. Az LCD 4-es, 5-ös, 6-os, 7-es adatvonalait pedig rendre a digitális 5, 4, 3, 2 csatornákra. A 10 kiloohmos potméterrel készítsünk feszültségosztót az 5 V-os tápvezetékről és kössük be a potméter közepét az LCD kontrasztját szabályozó Vo lábra. Az LCD 5 V-os tápfeszültségről működik (GND, Vcc). RW-t kössük a földre!

 14.2. †bra LCD kijelzã Arduinohoz kapcsol†sa.png

LCD kijelző Arduinohoz kapcsolása

 

Arduino kód: 71LCD

 

LiquidCrystal()

Létrehozza a kijelző egy példányát, ami 4 vagy 8 bites módban fog működni, attól függően, hogy a híváskor hány adatvonalat adunk meg. 

Szintaxisa:

LiquidCrystal(RS, EN, D4, D5, D6, D7),

LiquidCrystal(RS, RW, EN, D4, D5, D6, D7),

LiquidCrystal(RS, EN, D0, D1, D2, D3, D4, D5, D6, D7),

LiquidCrystal(RS, RW, EN, D0, D1, D2, D3, D4, D5, D6, D7).

Paraméterei:

RS: Annak a digitális csatornának a száma, amihez a REGISTER SELECT van kötve.

EN: Annak a digitális csatornának a száma, amihez az ENABLE van kötve.

RW: Annak a digitális csatornának a száma, amihez a READ/WRITE van kötve.

D0-D7: Azok a digitális csatornák, amikhez az adatvonalak kapcsolódnak.

 

begin()

A kijelző méreteit, sorok és oszlopok számát határozza meg a könyvtár számára.

Szintaxisa:

lcd.begin(cols, rows).

Paraméterei:

lcd: a LiquidCrystal példány neve,

cols: a kijelző oszlopainak száma,

rows: a kijelző sorainak száma.

 

clear()

Üresre törli az megjelenítendő karaktereket tartalmazó adatregisztert és a kijelzőt.

Szintaxisa:

lcd.clear().

Paramétere:

lcd: a LiquidCrystal példány neve.

 

home()

A kurzort az első sor első karakterére – kijelző bal felső sarkába – mozgatja. 

Szintaxisa:

lcd.home(). 

Paramétere:

lcd: a LiquidCrystal példány neve.

 

setCursor()

A kurzort a megadott helyre mozgatja.

Szintaxisa:

lcd.setCursor(cols,rows). 

Paraméterei:

lcd: a LiquidCrystal példány neve,

cols: az oszlop, ahová a kurzort mozgatjuk,

rows: a sor, ahová a kurzort mozgatjuk.

 

write()

Egy bájtot, vagyis karaktert ír ki a kijelzőre. 

Szintaxisa:

lcd.write(data).

Paraméterei:

lcd: a LiquidCrystal példány neve,

data: a megjelenítendő karakter ASCII-kódja.

Példakód:

void loop() {
  if (Serial.available()) {
    lcd.write(Serial.read());
  }
}

 

print()

Szöveget jelenít meg a kijelzőn.

Szintaxisa:

lcd.print(data),

lcd.print(data, BASE).

Paraméterei:

lcd: a LiquidCrystal példány neve,

data: char, byte, long, int, string – amit megjelenítünk,

BASE: számrendszer alapja (opcionális) BIN, HEX, OCT, DEC.

 

cursor()

Hívását követően egy alulvonásként megjeleníti a kurzort.

 

noCursor()

Hívását követően kikapcsolja a kurzor megjelenítését.

 

blink()

Ha a kurzor látható, akkor bekapcsolja a villogtatását.

 

noBlink()

Ha a kurzor látható, akkor kikapcsolja a villogtatását.

 

noDisplay()

Kikapcsolja a kijelzőt.

 

display()

Visszakapcsolja a kijelzőt, ha előtte a noDisplay() hívással ki volt kapcsolva, és újra megjeleníti a szöveget, ami a kikapcsolás pillanatában volt látható.

 

scrollDisplayLeft()

Hívásakor egy karakterrel eltolja a kijelző teljes tartalmát balra.

 

scrollDisplayRight()

Hívásakor egy karakterrel eltolja a kijelző teljes tartalmát jobbra.

 

Arduino kód: 72LCDscroll

 

autoScroll()

Bekapcsolja a karakterek automatikus eltolását. Amikor egy új karaktert jelenítünk meg, a beállított iránynak megfelelően a már meglévő szöveget egy pozícióval elmozgatja.

 

Arduino kód: 73LCDauto

 

noAutoscroll()

Kikapcsolja a karakterek automatikus eltolását.

 

leftToRight()

Az automatikus karaktereltolás irányának beállítása balról jobbra.

 

rightToLeft()

Az automatikus karaktereltolás irányának beállítása jobbról balra.

 

createChar()

Segítségével létrehozhatunk olyan karaktereket, amit nem tartalmaz a ROM. Ezeket az 5 x 8 pontból álló jeleket glyph-nek is szokás nevezni. A vezérlő 8 különféle glyph-et tud eltárolni a létrehozása után.

Szintaxisa:

lcd.createChar(num, data).

Paraméterei:

lcd: a LiquidCrystal példány neve,

num: 0–7 a glyph száma, amelyik pozíción tárolni szeretnénk,

data: a karakter pixeleit tartalmazó tömb.

 

Arduino kód: 74create

14.3. †bra Smiley glyph.png

Smiley glyph

 

- - - - - - - - -

forrás: http://arduino.cc/en/Tutorial/HomePagehttp://arduino.cc/en/Tutorial/LiquidCrystalhttp://arduino.cc/en/Reference/EEPROM

 



 

Szólj hozzá!

Címkék: leckék könyvtárak LCD Liquid Crystal EEPROM lektorált

A bejegyzés trackback címe:

https://harsanyireka.blog.hu/api/trackback/id/tr216399031

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása