- Potrebný materiál
- Schéma zapojenia
- 128 * 64 grafický LCD
- Prevod obrazu na hexadecimálny kód:
- Arduino kód a pracovné vysvetlenie
V elektronických projektoch sa používa veľa typov displejov LCD. V mnohých našich projektoch sme už použili displej 16X2 LCD a tiež sme použili TFT LCD s Arduino. Celý náš projekt LCD 16X2 LCD nájdete kliknutím na tento odkaz, vrátane prepojenia s 8051, AVR, Arduino a mnohými ďalšími.
ST9720 grafický LCD je úplne odlišný od bežného LCD. Bežný displej LCD dokáže tlačiť iba jednoduchý text alebo čísla v stanovenej veľkosti. Ale v Grafických LCD máme 128 * 64, čo sa rovná 8192 bodom alebo 8192/8 = 1024 pixelov, takže okrem znakov môžeme na tomto GLCD zobraziť akýkoľvek grafický obrázok.
Už sme prepojili GLCD s 8051, dnes prepojíme Graphical LCD s Arduino, aby sme na ňom mohli zobrazovať text a obrázky.
Potrebný materiál
- Arduino UNO
- 128 * 64 grafický LCD ST9720
- Potenciometer - 10k
- Pripojovacie vodiče
- Nepál
Schéma zapojenia
128 * 64 grafický LCD
Tento grafický displej LCD má nízku spotrebu energie a je vhodný aj pre prenosné zariadenie napájané z batérie. Má široký rozsah prevádzkového napätia od 2,2 do 5,5 V a podporuje sériovú aj 8/4-bitovú paralelnú komunikáciu a dodáva sa s integrovaným radičom / ovládačom IC ST7290. Komunikačný režim rozhrania je možné prepínať medzi paralelným a sériovým použitím PSB PIN 15. Tento grafický displej LCD má automatické zapnutie funkcie Reset a je možné ho ľahko ovládať pomocou MCU, ako sú 8051, AVR, ARM, Arduino a Raspberry Pi.
Podrobnejšie informácie o grafickom displeji LCD ST7290 128 * 64 nájdete v údajovom liste
Konfigurácia špendlíka
PIN č. |
Názov špendlíka |
Popis |
1 |
Gnd |
Uzemňovací terminál |
2 |
Vcc |
Vstupné napájacie napätie (2,7 V až 5,5 V) |
3 |
Vo |
Kontrast LCD |
4 |
RS |
Registrovať Vyberte RS = 0: Register pokynov RS = 1: Register údajov |
5 |
R / W |
Ovládanie čítania a zápisu |
6 |
E |
Povoliť |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Dátové kolíky (používané v paralelnom 8 / 4bitovom komunikačnom režime) |
15 |
PSB |
Výber rozhrania: Nízka (0) pre režim sériovej komunikácie Vysoká (1) pre režim 8/4 bitovej paralelnej zbernice. |
16 |
NC |
Nepripojený |
17 |
RST |
Resetovať PIN |
18 |
Vout |
Výstup zdvojovača napätia LCD. VOUT ≦ 7V. |
19 |
BLA |
Pozitívne podsvietenie |
20 |
BLK |
Podsvietenie Negatívne napájanie |
Aplikácie
- Priemyselné zariadenie
- Vložené systémy
- Bezpečnosť
- Lekárske
- Ručné vybavenie
Prevod obrazu na hexadecimálny kód:
Na zobrazenie ľubovoľného obrázka na grafickom displeji LCD potrebujeme HEX kód tohto obrázka, takže tu je niekoľko krokov na prevedenie obrázka do HEX kódu. Predtým sa musíte ubezpečiť, že veľkosť obrázka by nemala presiahnuť 128 * 64.
Krok 1: Znížte veľkosť normálneho obrázka na 128 * 64 alebo menej, čo môžete urobiť pomocou ľubovoľného softvéru na úpravu obrázkov, ako je napríklad MS paint.
Ako je znázornené na obrázku vyššie, nastavujeme šírku a výšku obrázka na 128 * 64.
Krok 2: Potom musíte obrázok uložiť vo formáte „image_name .bmp “.
Vyberte formát zobrazený na obrázku vyššie a uložte súbor na ďalšie spracovanie.
Krok 3: Po uložení do formátu „.bmp“ musíte obrázok previesť na hexadecimálny kód na tlač. Na tento účel používam softvér s názvom GIMP 2, ktorý prevádza súbory Bmp na hexadecimálny kód.
Ako je znázornené na obrázku vyššie, v softvéri GIMP 2 sme otvorili súbor vo formáte „.bmp“.
Krok 4: Po stiahnutí softvéru, otvorenie obrazovému formátu BMP, ktorý chcete vytlačiť, a potom uložiť ako to v " .xbm " (X rastrový obrázok) formátu. Po uložení ho otvorte pomocou programu Poznámkový blok a získate hexadecimálny kód obrázka.
Ako je znázornené na obrázku nižšie, vyberte možnosť Export a uložte súbor vo formáte xbm :
Vyberte formát zobrazený na obrázku nižšie a exportujte súbor s obrázkom.
Po exportovaní súboru získate súbor vo formáte „.xbm“. Otvorte súbor xbm pomocou programu Poznámkový blok a dostanete hexadecimálny kód, ako je znázornené na obrázku nižšie.
Arduino kód a pracovné vysvetlenie
Pre prepojenie grafického LCD s Arduinom je potrebné najskôr definovať knižnicu použitú pre grafický LCD. Arduino túto knižnicu nemá, musíte si túto knižnicu stiahnuť a nainštalovať z tohto odkazu. Potom môžete zahrnúť knižnicu, ako je uvedené nižšie:
#include "U8glib.h"
„ U8g (10) “ tu definuje spojenie kolíka RS (Register Select) grafického LCD s 10. kolíkom Arduino UNO. Pin RS používaný ako „výber čipu“ a „výber registra“, ak sa používa v sériovom a paralelnom režime. Používame teda sériový režim a pin RS nastavený na High (1) pre čip povolený a Low (0) pre čip deaktivovaný.
U8GLIB_ST7920_128X64_4X u8g (10);
Teraz, pre tlač obrázka, musíme umiestniť Hex kód obrázka do nižšie uvedeného kódu. Môžete vytlačiť akýkoľvek iný obrázok, všetko, čo musíte urobiť, je vložiť hexadecimálny kód obrázka.
const uint8_t rook_bitmap U8G_PROGMEM = {Sem vložte hexadecimálny kód obrázka };
Skontrolujte úplný kód Arduino na konci tohto článku.
Na tlač obrázka sa používa funkcia uvedená nižšie, na tlač sa používa príkaz „u8g.drawXBMP (x, y, šírka obrázka, výška obrázka)“ . Kde, X a Y je začiatočná pozícia obrázka na LCD a taktiež musíme napísať veľkosť obrázka, ktorá by nemala presiahnuť 128 * 64 a v záverečnom argumente sme nazvali funkciu, do ktorej sme umiestnili HEX kód obrázka.
void picture (void) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Vytvorili sme dve funkcie zvané „draw“ a „next“, v ktorých sa kód na tlač obsahu píše pomocou príkazu „u8g.drawStr (x, y,“ abcd ”)“. Tu sú x a y polohy na LCD, kde sa bude tlačiť obsah, a „ abcd “ je obsah, ktorý sa má tlačiť.
void draw (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "OKRUH DIGEST"); } void next (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, „prepojenie“); u8g.drawStr (0, 35, „Grafický LCD“); u8g.drawStr (0, 55, „s Arduino“); }
Funkcia clearLCD () slúži na vyčistenie LCD obrazovky iba tak, že sa jej dá nulová hodnota.
void clearLCD () {u8g.firstPage (); do {} while (u8g.nextPage ()); }
Nastavenie pixelov, farieb a intenzity pomocou kódu uvedeného nižšie
void setup (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // biela} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // maximálna intenzita} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // pixel on} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255 255 255); }}
Void slučka pokračuje vytlačiť text a obrázok po určitej meškanie. Najskôr sme pomocou funkcie kreslenia vytlačili „Circuit Digest“ a po 2 sekundách. zdržanie sme vyčistili obrazovku pomocou ClearLCD funkciu a potom vytlačiť " Prepojenie grafický LCD pomocou Arduino " pomocou ďalšie funkcie. Potom sme obrázok vytlačili pomocou funkcie picture (), ktorá zostane na obrazovke 3 sekundy. Toto bude pokračovať, kým sa nezapne napájanie.
void loop (void) {u8g.firstPage (); do {draw (); } while (u8g.nextPage ()); meškanie (2000); clearLCD (); u8g.firstPage (); do {next (); } while (u8g.nextPage ()); meškanie (2000); clearLCD (); u8g.firstPage (); do {picture (); } while (u8g.nextPage ()); oneskorenie (3 000); clearLCD (); oneskorenie (50); }
Po naprogramovaní Arduina pomocou uvedeného kódu pripojte grafický LCD displej podľa schémy zapojenia k Arduinu a napájajte Arduino pomocou adaptéra alebo USB. Získate obsah a obrázok vytlačený na grafickom displeji LCD, ako je znázornené na videu uvedenom nižšie.
Skontrolujte tiež prepojenie grafického LCD displeja Nokia 5110 s programom Arduino,