- Anyag szükséges
- Kördiagramm
- 128 * 64 grafikus LCD
- Kép konvertálása Hex kódgá:
- Arduino kód és működő magyarázat
Az elektronikus projektekben sokféle LCD-t használnak. Számos projektünkben már használtunk 16X2 LCD-t, és TFT LCD-t is használtunk az Arduino-val. Ezt a linket követve megtalálhatja a teljes 16X2 LCD-vel kapcsolatos projektünket, beleértve a 8051, AVR, Arduino és még sok más interfészt.
Az ST9720 grafikus LCD teljesen különbözik a szokásos LCD-től. A szokásos LCD-vel csak egyszerű szöveget vagy számokat lehet rögzített méretben nyomtatni. De a grafikus LCD-ekben 128 * 64 van, amely egyenlő 8192 ponttal vagy 8192/8 = 1024 pixellel, így a karakterektől eltekintve bármilyen grafikus képet megjeleníthetünk ezen a GLCD-n.
A GLCD-t már összekötöttük a 8051-gyel, ma a grafikus LCD-t az Arduinóval fogjuk összekapcsolni, hogy rajta szöveget és képeket jelenítsünk meg.
Anyag szükséges
- Arduino UNO
- 128 * 64 grafikus LCD ST9720
- Potenciométer-10k
- Csatlakozó vezetékek
- Kenyérlemez
Kördiagramm
128 * 64 grafikus LCD
Ez a grafikus LCD alacsony energiafogyasztással rendelkezik, és hordozható akkumulátoros készülékekhez is alkalmas. Széles üzemi feszültségtartománya van a 2,2 - 5,5 V között, támogatja a soros és a 8/4-bites párhuzamos kommunikációt, és ST7290 LCD vezérlővel / meghajtó IC-vel rendelkezik. Az interfész kommunikációs módja párhuzamos és soros között kapcsolható a PSB PIN 15 kóddal. Ez a grafikus LCD automatikus bekapcsolási visszaállítási funkcióval rendelkezik, és könnyen vezérelhető olyan MCU-val, mint a 8051, AVR, ARM, Arduino és a Raspberry Pi.
Az adatlapon részletes információkat talál az ST7290 128 * 64 grafikus LCD-ről
PIN-konfiguráció
PIN-kód |
PIN neve |
Leírás |
1 |
Gnd |
Földi terminál |
2 |
Vcc |
Bemeneti tápfeszültség (2,7–5,5 V) |
3 |
Vo |
LCD kontraszt |
4 |
RS |
Regisztráció Válassza ki RS = 0: Utasítási nyilvántartás RS = 1: Adatnyilvántartás |
5. |
R / W |
Olvasás / írás vezérlés |
6. |
E |
Engedélyezze |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Data Pins (párhuzamos 8 / 4bit kommunikációs módban használják) |
15 |
PSB |
Interfész kiválasztása: Alacsony (0) soros kommunikációs módhoz Magas (1) 8/4-bites párhuzamos busz módhoz. |
16. |
NC |
Nem kapcsolódik |
17. |
RST |
PIN visszaállítása |
18. |
Vout |
LCD feszültség duplázó kimenet. VOUT ≦ 7V. |
19. |
BLA |
Háttérvilágítás pozitív ellátás |
20 |
BLK |
Háttérvilágítás Negatív táp |
Alkalmazások
- Ipari eszköz
- Beágyazott rendszerek
- Biztonság
- Orvosi
- Kézi berendezések
Kép konvertálása Hex kódgá:
Bármely kép grafikus LCD-n való megjelenítéséhez szükségünk van a kép HEX-kódjára, ezért íme néhány lépés a Kép HEX-kóddá alakításához. Előtte meg kell győződnie arról, hogy a kép mérete nem haladhatja meg a 128 * 64-et.
1. lépés: Csökkentse a normál kép méretét 128 * 64-re vagy annál kevesebbre, amelyet bármilyen képszerkesztő szoftverrel, például az MS paint segítségével megtehet.
Amint a fenti képen látható, a kép szélességét és magasságát 128 * 64-re állítjuk.
2. lépés: Ezután el kell mentenie a képet „image_name .bmp ” formátumban.
Válassza ki a fenti képen látható formátumot, és mentse a fájlt a további folyamathoz.
3. lépés: Miután „.bmp” formátumba mentette, a képet hexakóddá kell konvertálni nyomtatáshoz. Ehhez a GIMP 2 nevű szoftvert használom, amely a Bmp fájlt hex kóddá alakítja.
Amint a fenti képen látható, megnyitottuk a „.bmp” formátumú fájlt a GIMP 2 szoftverben.
Step 4: Letöltés után a szoftver, nyissa meg a BMP formátumú képet kívánt fájlt nyomtatni, majd mentés másként azt „ .xbm ” (X BitMap) formátumban. Mentése után nyissa meg azt a fájlt a Jegyzettömb segítségével, és megkapja a kép Hex kódját.
Az alábbi képen látható módon válassza a Exportálás lehetőséget a fájl xbm formátumban történő mentéséhez:
Válassza ki az alábbi képen látható formátumot, és exportálja a képfájlt.
A fájl exportálása után megkapja a fájlt.xbm formátumban. Nyissa meg az xbm fájlt a Jegyzettömb segítségével, és megkapja a HEX kódot, amint az az alábbi képen látható.
Arduino kód és működő magyarázat
A grafikus LCD és az Arduino összekapcsolásához először meg kell határoznunk a Graphical LCD-hez használt könyvtárat. Az Arduino nem rendelkezik ezzel a könyvtárral, le kell töltenie és telepítenie kell ezt a könyvtárat erről a linkről. Ezután felveheti a könyvtárat az alábbiak szerint:
#include "U8glib.h"
Itt az ' u8g (10) ' határozza meg a grafikus LCD RS (Register Select) tűjének összekapcsolását az Arduino UNO 10. tűjével. Soros és párhuzamos üzemmódban a „chip kiválasztásként” és „Regisztrálás kiválasztásként” használt RS-pin. Tehát a soros módot és az RS-típust magasra (1) állítjuk a chip engedélyezéséhez és az alacsony (0) értéket a chip engedélyezéséhez.
U8GLIB_ST7920_128X64_4X u8g (10);
A kép kinyomtatásához be kell helyeznünk a kép Hex kódját az alábbi kódba. Bármely más képet kinyomtathat, mindössze annyit kell tennie, hogy beilleszti a kép hexakódját.
const uint8_t rook_bitmap U8G_PROGMEM = {Ide illessze be a kép Hex kódját };
Ellenőrizze a teljes Arduino kódot a cikk végén.
Az alábbi funkció a kép nyomtatására szolgál, a nyomtatáshoz használt parancs az „u8g.drawXBMP (x, y, a kép szélessége, a kép magassága)” . Ahol X és Y a kép kiindulási helye az LCD-n, és meg kell írnunk a kép méretét is, amely nem haladhatja meg a 128 * 64 értéket, és végső argumentumként függvényt hívtunk meg, amelyben a kép HEX kódját elhelyeztük.
void picture (void) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Két olyan funkciót készítettünk, amelyeket „draw” és „next” nevezünk , amelyekbe a tartalom nyomtatásához szükséges kódot az „u8g.drawStr (x, y,„ abcd ”) paranccsal írjuk. Itt x és y az a hely az LCD-n, ahol a tartalmat kinyomtatják, az ' abcd ' pedig a nyomtatandó tartalom.
void draw (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "ÁRAM ÁTALAKÍTÁSA"); } void next (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "Interfacing"); u8g.drawStr (0, 35, "Grafikus LCD"); u8g.drawStr (0, 55, "Arduinóval"); }
A clearLCD () funkció az LCD törlésére szolgál, csak null értéket adva a függvénynek.
void clearLCD () {u8g.firstPage (); do {} while (u8g.nextPage ()); }
A pixel, a szín és az intenzitás beállítása az alábbi kód használatával
void setup (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // white} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // max intenzitás} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // pixel on} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
Az érvénytelen hurok a megadott késedelem után folytatja a szöveg és a kép nyomtatását. Először kinyomtattuk a „Circuit Digest” -t a rajzolás funkcióval és 2 másodperc után. késéssel kitisztítottuk a képernyőt a clearLCD funkcióval, majd a következő funkció használatával kinyomtattuk az „ Interfacing Graphical LCD with Arduino using ” nyomtatást. Ezután kinyomtattuk a képet a picture () funkció használatával, amely 3 másodpercig a képernyőn marad. Ez addig folytatódik, amíg az áramellátás be nem kapcsol.
void loop (void) {u8g.firstPage (); csinálni {rajzolni (); } while (u8g.nextPage ()); késés (2000); clearLCD (); u8g.firstPage (); do {következő (); } while (u8g.nextPage ()); késés (2000); clearLCD (); u8g.firstPage (); do {kép (); } while (u8g.nextPage ()); késés (3000); clearLCD (); késés (50); }
Miután az Arduino-t a megadott kód segítségével programozta, csatlakoztassa a grafikus LCD-t a kapcsolási rajz szerint az Arduino-hoz, és szállítsa az Arduino-t adapter vagy USB segítségével. Ön tartalmat és képet nyomtat a grafikus LCD-re, az alábbi videó szerint.
Ellenőrizze a Nokia 5110 grafikus LCD és az Arduino interfészét is,