- Potřebný materiál
- Kruhový diagram
- 128 * 64 grafický LCD
- Převod obrazu na hexadecimální kód:
- Arduino kód a pracovní vysvětlení
V elektronických projektech se používá mnoho typů LCD. V mnoha našich projektech jsme již použili 16X2 LCD a také jsme použili TFT LCD s Arduino. Celý náš projekt LCD 16X2 LCD najdete kliknutím na tento odkaz, včetně propojení s 8051, AVR, Arduino a mnoha dalšími.
ST9720 grafický LCD je zcela odlišný od běžného LCD. Obyčejný LCD dokáže tisknout pouze jednoduchý text nebo čísla v pevné velikosti. Ale v grafických LCD máme 128 * 64, což se rovná 8192 bodům nebo 8192/8 = 1024 pixelů, takže kromě znaků můžeme na tomto GLCD zobrazit jakýkoli grafický obrázek.
Již jsme propojili GLCD s 8051, dnes budeme propojovat Grafický LCD s Arduino, abychom na něm zobrazovali text a obrázky.
Potřebný materiál
- Arduino UNO
- 128 * 64 grafický LCD ST9720
- Potenciometr - 10k
- Připojovací vodiče
- Nepájivá deska
Kruhový diagram
128 * 64 grafický LCD
Tento grafický LCD displej má nízkou spotřebu energie a je vhodný také pro přenosné zařízení napájené z baterie. Má široký rozsah provozního napětí 2,2 až 5,5 V a podporuje sériovou i 8 / 4bitovou paralelní komunikaci a je dodáván s integrovaným ovladačem / ovladačem IC ST7290. Komunikační režim rozhraní lze přepínat mezi paralelním a sériovým použitím PSB PIN 15. Tento grafický LCD displej má automatické zapnutí funkce Reset a lze jej snadno ovládat pomocí MCU, jako jsou 8051, AVR, ARM, Arduino a Raspberry Pi.
Podrobnější informace o grafickém displeji ST7290 128 * 64 najdete v datovém listu
Konfigurace kolíků
PIN č. |
Název PIN |
Popis |
1 |
Gnd |
Uzemňovací svorka |
2 |
Vcc |
Vstupní napájecí napětí (2,7 V až 5,5 V) |
3 |
Vo |
Kontrast LCD |
4 |
RS |
Registrovat Vybrat RS = 0: Registr instrukcí RS = 1: Datový registr |
5 |
R / W |
Ovládání čtení / zápisu |
6 |
E |
Umožnit |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Datové piny (používané v paralelním 8 / 4bitovém režimu komunikace) |
15 |
PSB |
Výběr rozhraní: Nízká (0) pro režim sériové komunikace Vysoká (1) pro režim 8/4 bitové paralelní sběrnice. |
16 |
NC |
Nepřipojený |
17 |
RST |
Resetovat PIN |
18 |
Vout |
Výstup zdvojovače napětí LCD. VOUT ≦ 7V. |
19 |
BLA |
Pozitivní podsvícení |
20 |
BLK |
Podsvícení Negativní napájení |
Aplikace
- Průmyslové zařízení
- Vestavěné systémy
- Bezpečnostní
- Lékařský
- Ruční vybavení
Převod obrazu na hexadecimální kód:
Pro zobrazení jakéhokoli obrázku na grafickém LCD displeji potřebujeme HEX kód tohoto obrázku, takže zde je několik kroků k převodu obrázku na HEX kód. Před tím se musíte ujistit, že velikost obrázku by neměla překročit 128 * 64.
Krok 1: Snižte velikost normálního obrazu na 128 * 64 nebo méně, což můžete udělat pomocí libovolného softwaru pro úpravu obrázků, jako je MS paint.
Jak je znázorněno na obrázku výše, nastavujeme šířku a výšku obrázku na 128 * 64.
Krok 2: Poté musíte obrázek uložit ve formátu „ image_name .bmp “.
Vyberte formát zobrazený na obrázku výše a uložte soubor pro další zpracování.
Krok 3: Po uložení do formátu „.bmp“ musíte obrázek převést do hexadecimálního kódu pro tisk. K tomu používám software s názvem GIMP 2, který převádí soubor Bmp na hexadecimální kód.
Jak je znázorněno na obrázku výše, v softwaru GIMP 2 jsme otevřeli soubor ve formátu „.bmp“.
Krok 4: Po stažení softwaru, otevření obrazovému formátu BMP, který chcete vytisknout, a pak uložit jako to v „ .xbm “ (X rastrový obrázek) formátu. Po uložení jej otevřete pomocí programu Poznámkový blok a získáte hexadecimální kód obrázku.
Jak je znázorněno na obrázku níže, vyberte možnost Export a uložte soubor ve formátu xbm :
Vyberte formát zobrazený na obrázku níže a exportujte soubor obrázku.
Po exportu souboru získáte soubor ve formátu „.xbm“. Otevřete soubor xbm pomocí programu Poznámkový blok a dostanete HEX kód, jak je znázorněno na obrázku níže.
Arduino kód a pracovní vysvětlení
Pro propojení grafického LCD s Arduinem musíme nejdříve definovat knihovnu používanou pro grafický LCD. Arduino tuto knihovnu nemá, musíte si tuto knihovnu stáhnout a nainstalovat z tohoto odkazu. Pak můžete zahrnout knihovnu jako níže:
#include "U8glib.h"
Zde ' u8g (10) ' definuje spojení pinu RS (Register Select) grafického LCD s 10. pinem Arduino UNO. Pin RS používaný jako 'chip select' a 'Register Select' při použití v sériovém a paralelním režimu. Takže používáme sériový režim a pin RS nastavený na High (1) pro čip povolený a Low (0) pro čip deaktivován.
U8GLIB_ST7920_128X64_4X u8g (10);
Nyní pro tisk obrázku musíme umístit hexadecimální kód obrázku do níže uvedeného kódu. Můžete vytisknout jakýkoli jiný obrázek, vše, co musíte udělat, je vložit hexadecimální kód obrázku.
const uint8_t rook_bitmap U8G_PROGMEM = {Sem vložte hexadecimální kód obrázku };
Zkontrolujte úplný kód Arduino na konci tohoto článku.
Pro tisk obrázku se používá níže uvedená funkce, pro tisk se používá příkaz „u8g.drawXBMP (x, y, šířka obrázku, výška obrázku)“ . Kde X a Y je výchozí poloha obrazu na LCD a musíme také napsat velikost obrázku, která by neměla překročit 128 * 64 a v závěrečném argumentu jsme zavolali funkci, do které jsme umístili HEX kód obrázku.
void picture (void) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Vytvořili jsme dvě funkce zvané „draw“ a „next“, ve kterých je kód pro tisk obsahu zapsán pomocí příkazu „u8g.drawStr (x, y,“ abcd ”)“. Zde jsou x a y pozice na LCD, kde bude vytištěn obsah, a „ abcd “ je obsah, který má být vytištěn.
void draw (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "CIRCUIT DIGEST"); } void next (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "Rozhraní"); u8g.drawStr (0, 35, "Grafický LCD"); u8g.drawStr (0, 55, „with Arduino“); }
Funkce clearLCD () je určena k vymazání LCD pouhým zadáním nulové hodnoty této funkci.
void clearLCD () {u8g.firstPage (); do {} while (u8g.nextPage ()); }
Nastavení pixelu, barvy a intenzity pomocí níže uvedeného kódu
void setup (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // bílá} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // maximální 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 smyčka pokračuje vytisknout text a obrázek po určité zpoždění. Nejprve jsme pomocí funkce Draw vytiskli „Circuit Digest“ a po 2 s. zpoždění jsme vyčistili obrazovku pomocí funkce clearLCD a poté pomocí další funkce vytiskli „ Interfacing Graphical LCD using Arduino “. Poté jsme obraz vytiskli pomocí funkce picture (), která zůstane na obrazovce po dobu 3 sekund. To bude pokračovat, dokud se nezapne napájení.
void loop (void) {u8g.firstPage (); do {draw (); } while (u8g.nextPage ()); zpoždění (2000); clearLCD (); u8g.firstPage (); do {next (); } while (u8g.nextPage ()); zpoždění (2000); clearLCD (); u8g.firstPage (); do {picture (); } while (u8g.nextPage ()); zpoždění (3000); clearLCD (); zpoždění (50); }
Po naprogramování Arduina pomocí zadaného kódu připojte grafický LCD podle schématu zapojení k Arduinu a napájejte Arduino pomocí adaptéru nebo USB. Získáte obsah a obrázek vytištěný na grafickém LCD displeji, jak je znázorněno na videu níže.
Zkontrolujte také propojení grafického LCD displeje Nokia 5110 s Arduino,