- Potreban materijal
- Kružni dijagram
- 128 * 64 grafički LCD
- Pretvaranje slike u hex kod:
- Arduino kôd i radno objašnjenje
Mnogo je vrsta LCD-a koji se koriste u elektroničkim projektima. Već smo koristili LCD 16X2 u mnogim našim projektima, a koristili smo i TFT LCD s Arduinom. Naš cijeli projekt povezan s LCD-om 16X2 možete pronaći slijedeći ovu vezu, uključujući povezivanje s 8051, AVR, Arduino i mnogim drugima.
ST9720 Grafički LCD je potpuno drugačiji od običnih LCD-a. Obični LCD može ispisivati samo jednostavni tekst ili brojeve unutar fiksne veličine. Ali na grafičkim LCD-ima imamo 128 * 64 što je jednako 8192 točke ili 8192/8 = 1024 piksela, tako da osim znaka, možemo prikazati bilo koju grafičku sliku na ovom GLCD-u.
Već smo povezali GLCD s 8051, danas ćemo grafički LCD povezati s Arduinom za prikaz teksta i slika na njemu.
Potreban materijal
- Arduino UNO
- 128 * 64 grafički LCD ST9720
- Potenciometar-10k
- Spajanje žica
- Breadboard
Kružni dijagram


128 * 64 grafički LCD
Ovaj grafički LCD ima malu potrošnju energije i također je pogodan za prijenosni uređaj s baterijskim napajanjem. Ima širok raspon radnog napona od 2,2 do 5,5 v, podržava i serijsku i 8/4-bitnu paralelnu komunikaciju, a dolazi sa ST7290 LCD kontrolorom / upravljačkim programom. Način komunikacije sučeljem može se prebacivati između paralelnog i serijskog pomoću PSB PIN-a 15. Ovaj grafički LCD ima funkciju automatskog uključivanja reseta i može se lako kontrolirati pomoću MCU-a kao što su 8051, AVR, ARM, Arduino i Raspberry Pi.

Možete pregledati tablicu s detaljnim informacijama o grafičkom LCD-u ST7290 128 * 64
Konfiguracija pribadače
|
Pin br. |
Naziv pribadače |
Opis |
|
1 |
Gnd |
Prizemni terminal |
|
2 |
Vcc |
Ulazni napon napajanja (2,7 do 5,5 v) |
|
3 |
Vo |
LCD kontrast |
|
4 |
RS |
Registracija Odaberite RS = 0: Registar uputa RS = 1: Registar podataka |
|
5 |
R / W |
Kontrola čitanja / pisanja |
|
6 |
E |
Omogućiti |
|
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Data Pins (koriste se u paralelnom 8 / 4bitnom načinu komunikacije) |
|
15 |
PSB |
Izbor sučelja: Niska (0) za način serijske komunikacije Visoka (1) za 8/4-bitni način paralelne sabirnice. |
|
16 |
NC |
Nije povezano |
|
17 |
RST |
Poništi pin |
|
18 |
Vout |
Izlaz udvostručača LCD napona. GLAS ≦ 7V. |
|
19 |
BLA |
Pozitivna opskrba pozadinskim osvjetljenjem |
|
20 |
BLK |
Negativno pozadinsko osvjetljenje |
Prijave
- Industrijski uređaj
- Ugrađeni sustavi
- Sigurnost
- Medicinski
- Ručna oprema
Pretvaranje slike u hex kod:
Da bismo prikazali bilo koju sliku na grafičkom LCD-u, potreban nam je HEX kôd te slike, pa je ovdje nekoliko koraka za pretvaranje slike u HEX kôd. Prije toga morate paziti da veličina slike ne prelazi 128 * 64.
Korak 1: Smanjite veličinu normalne slike na 128 * 64 ili manje, što možete učiniti bilo kojim softverom za uređivanje slika, poput MS boje.

Kao što je prikazano na gornjoj slici, postavljamo širinu i visinu slike na 128 * 64.
Korak 2: Zatim trebate spremiti sliku u formatu "image_name .bmp ".

Odaberite format prikazan na gornjoj slici i spremite datoteku za daljnji postupak.
Korak 3: Nakon spremanja u ".bmp" format trebate pretvoriti sliku u heksadecimalni kod za ispis. Za to koristim softver nazvan GIMP 2, koji Bmp datoteku pretvara u heksadecimalni kod.

Kao što je prikazano na gornjoj slici, otvorili smo datoteku formata ".bmp" u softveru GIMP 2.
Korak 4: Nakon preuzimanja softvera otvorite datoteku slike BMP formata koju želite ispisati, a zatim spremite u obliku " .xbm " (X BitMap). Nakon spremanja otvorite tu datoteku pomoću programa Notepad i dobit ćete Hex kod slike.
Kao što je prikazano na donjoj slici, odaberite opciju Izvoz da biste datoteku spremili u xbm formatu:

Odaberite format prikazan na donjoj slici i izvezite datoteku slike.

Nakon izvoza datoteke dobit ćete datoteku u ".xbm" formatu. Otvorite xbm datoteku pomoću Notepada i dobit ćete HEX kôd kao što je prikazano na donjoj slici.

Arduino kôd i radno objašnjenje
Da bismo povezali grafički LCD s Arduinom, prvo moramo definirati knjižnicu koja se koristi za grafički LCD. Arduino nema ovu knjižnicu, morate je preuzeti i instalirati s ove veze. Tada možete uključiti knjižnicu kao u nastavku:
#include "U8glib.h"
Ovdje ' u8g (10) ' definira vezu RS-a (registarskog odabira) pina grafičkog LCD-a s 10. pinom Arduina UNO. RS pin koristi se kao 'chip chip' i 'Register Select' kada se koristi u serijskom i paralelnom načinu rada. Dakle, koristimo serijski način rada i RS pin postavljen na High (1) za omogućeni čip i Low (0) za onemogućeni čip.
U8GLIB_ST7920_128X64_4X u8g (10);
Sada, za ispis slike moramo smjestiti Hex kod slike u donji kod. Možete ispisati bilo koju drugu sliku, a sve što trebate je zalijepiti hex kod slike.
const uint8_t rook_bitmap U8G_PROGMEM = {Ovdje zalijepite Hex kod slike };
Provjerite puni Arduino kod na kraju ovog članka.
Sljedeća funkcija koristi se za ispis slike, naredba koja se koristi za ispis je "u8g.drawXBMP (x, y, širina slike, visina slike)" . Gdje su X i Y početni položaj slike na LCD-u, a također trebamo napisati veličinu slike koja ne smije biti veća od 128 * 64, a u završnom smo argumentu pozvali funkciju u koju smo smjestili HEX kod slike.
prazna slika (void) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Napravili smo dvije funkcije nazvane "draw" i "next", u kojima se kod za ispis sadržaja zapisuje pomoću naredbe "u8g.drawStr (x, y," abcd ")". Ovdje su x i y položaj na LCD-u na kojem će se ispisati sadržaj, a ' abcd ' je sadržaj koji se ispisuje.
void draw (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "DIGEST CIRCUIT"); } void next (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "Sučeljavanje"); u8g.drawStr (0, 35, "Grafički LCD"); u8g.drawStr (0, 55, "s Arduinom"); }
funkcija clearLCD () napravljena je za brisanje LCD-a tako što samo daje nulu vrijednost funkciji.
void clearLCD () {u8g.firstPage (); učiniti {} while (u8g.nextPage ()); }
Postavljanje piksela, boje i intenziteta pomoću donjeg koda
void postavljanje (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // bijelo} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // maksimalan intenzitet} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // piksel na} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
Praznina petlje i dalje ispisivati tekst i slike nakon određenog kašnjenja. Prvo smo ispisali "Circuit Digest" pomoću funkcije crtanja i nakon 2 sek. kašnjenja smo očistili zaslon pomoću funkcije clearLCD, a zatim ispisali " Interfacing Graphical LCD using Arduino " pomoću sljedeće funkcije. Zatim smo sliku ispisali pomoću funkcije picture () koja će ostati na zaslonu 3 sekunde. To će se nastaviti sve dok se napajanje ne uključi.
petlja void (void) {u8g.firstPage (); do {draw (); } while (u8g.nextPage ()); kašnjenje (2000); clearLCD (); u8g.firstPage (); učiniti {next (); } while (u8g.nextPage ()); kašnjenje (2000); clearLCD (); u8g.firstPage (); do {slika (); } while (u8g.nextPage ()); kašnjenje (3000); clearLCD (); kašnjenje (50); }
Nakon programiranja Arduina pomoću datog koda, spojite grafički LCD prema shemi sklopa s Arduinom i isporučite Arduino pomoću adaptera ili USB-a. Sadržaj i slika dobit ćete ispisani na grafičkom LCD-u, kao što je prikazano u donjem videu.
Provjerite i povezivanje grafičkog LCD-a Nokia 5110 s Arduinom,
