- Materiale richiesto
- Schema elettrico
- LCD grafico 128 * 64
- Conversione dell'immagine in codice esadecimale:
- Codice Arduino e spiegazione del lavoro
Esistono molti tipi di LCD utilizzati nei progetti elettronici. Abbiamo già utilizzato LCD 16X2 in molti dei nostri progetti e anche LCD TFT con Arduino. Puoi trovare il nostro intero progetto relativo all'LCD 16X2 seguendo questo link, incluso l' interfacciamento con 8051, AVR, Arduino e molti altri.
L' LCD grafico ST9720 è totalmente diverso dagli LCD ordinari. Il normale display LCD può stampare solo testo semplice o numeri entro una dimensione fissa. Ma negli LCD grafici abbiamo 128 * 64 che è uguale a 8192 punti o 8192/8 = 1024 pixel, quindi a parte il carattere, possiamo visualizzare qualsiasi immagine grafica su questo GLCD.
Abbiamo già interfacciato GLCD con 8051, oggi interfacciamo LCD grafico con Arduino per visualizzare testo e immagini su di esso.
Materiale richiesto
- Arduino UNO
- LCD grafico 128 * 64 ST9720
- Potenziometro-10k
- Cavi di collegamento
- Breadboard
Schema elettrico
LCD grafico 128 * 64
Questo LCD grafico ha un basso consumo energetico ed è adatto anche per dispositivi portatili alimentati a batteria. Ha un ampio intervallo di tensione operativa da 2,2 V a 5,5 V e supporta la comunicazione seriale e parallela a 8/4 bit e viene fornito con IC controller / driver LCD ST7290. La modalità di comunicazione dell'interfaccia può essere commutata tra parallela e seriale utilizzando il PIN 15 della PSB. Questo LCD grafico ha una funzione di ripristino automatico dell'accensione e può essere facilmente controllato da MCU come 8051, AVR, ARM, Arduino e Raspberry Pi.
È possibile consultare la scheda tecnica per informazioni dettagliate sull'LCD grafico ST7290 128 * 64
Configurazione dei pin
N. pin |
Nome pin |
Descrizione |
1 |
Gnd |
Terminale di terra |
2 |
Vcc |
Tensione di alimentazione in ingresso (da 2,7 V a 5,5 V) |
3 |
Vo |
Contrasto LCD |
4 |
RS |
Registrati Seleziona RS = 0: registro delle istruzioni RS = 1: registro dati |
5 |
R / W |
Controllo di lettura / scrittura |
6 |
E |
Abilitare |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Pin dati (utilizzati in modalità di comunicazione parallela a 8/4 bit) |
15 |
PSB |
Selezione dell'interfaccia: Basso (0) per la modalità di comunicazione seriale Alto (1) per la modalità bus parallelo a 8/4 bit. |
16 |
NC |
Non collegata |
17 |
RST |
Ripristina PIN |
18 |
Vout |
Uscita del duplicatore di tensione LCD. VOUT ≦ 7V. |
19 |
BLA |
Alimentazione positiva della retroilluminazione |
20 |
BLK |
Retroilluminazione Alimentazione negativa |
Applicazioni
- Dispositivo industriale
- Sistemi integrati
- Sicurezza
- Medico
- Apparecchiature portatili
Conversione dell'immagine in codice esadecimale:
Per mostrare qualsiasi immagine sul display LCD grafico, abbiamo bisogno del codice HEX di quell'immagine, quindi ecco alcuni passaggi per convertire l'immagine in codice HEX. Prima di ciò devi assicurarti che la dimensione dell'immagine non debba superare 128 * 64.
Passaggio 1: Riduci le dimensioni dell'immagine normale a 128 * 64 o meno, cosa che puoi fare utilizzando qualsiasi software di modifica delle immagini come MS Paint.
Come mostrato nell'immagine sopra, stiamo impostando la larghezza e l'altezza dell'immagine su 128 * 64.
Passaggio 2: Quindi è necessario salvare l'immagine nel formato "nome_immagine .bmp ".
Seleziona il formato mostrato nell'immagine sopra e salva il file per un ulteriore processo.
Passaggio 3: Dopo averlo salvato in formato ".bmp", è necessario convertire l'immagine in codice esadecimale per la stampa. Per questo, sto usando il software chiamato GIMP 2, che converte il file BMP in codice esadecimale.
Come mostrato nell'immagine sopra, abbiamo aperto il file in formato ".bmp" nel software GIMP 2.
Passaggio 4: dopo aver scaricato il software, aprire il file immagine in formato BMP che si desidera stampare, quindi salvarlo in formato " .xbm " (X BitMap). Dopo averlo salvato, apri quel file usando Blocco note e otterrai il codice esadecimale dell'immagine.
Come mostrato nell'immagine sotto, scegli l'opzione Esporta per salvare il file nel formato xbm :
Seleziona il formato mostrato nell'immagine sottostante ed esporta il file immagine.
Dopo aver esportato il file, otterrai il file in formato ".xbm". Apri il file xbm usando Blocco note e otterrai il codice HEX come mostrato nell'immagine qui sotto.
Codice Arduino e spiegazione del lavoro
Per interfacciare l'LCD grafico con Arduino, dobbiamo prima definire la libreria utilizzata per l'LCD grafico. Arduino non ha questa libreria, devi scaricare e installare questa libreria da questo link. Quindi puoi includere la libreria come di seguito:
#include "U8glib.h"
Qui, ' u8g (10) ' definisce la connessione del pin RS (Register Select) dell'LCD grafico con il 10 ° pin di Arduino UNO. Pin RS utilizzato come "selezione chip" e "selezione registro" quando utilizzato rispettivamente in modalità seriale e parallela. Quindi, stiamo usando la modalità seriale e il pin RS impostato su Alto (1) per il chip abilitato e Basso (0) per il chip disabilitato.
U8GLIB_ST7920_128X64_4X u8g (10);
Ora, per stampare l'immagine dobbiamo inserire il codice esadecimale dell'immagine nel codice sottostante. Puoi stampare qualsiasi altra immagine, tutto ciò che devi fare è incollare il codice esadecimale dell'immagine.
const uint8_t rook_bitmap U8G_PROGMEM = { Incolla qui il codice Hex dell'immagine };
Controlla il codice Arduino completo alla fine di questo articolo.
La seguente funzione è usata per stampare l'immagine, il comando usato per la stampa è “u8g.drawXBMP (x, y, larghezza dell'immagine, altezza dell'immagine)” . Dove, X e Y sono la posizione iniziale dell'immagine sul display LCD e dobbiamo anche scrivere la dimensione dell'immagine che non deve superare i 128 * 64 e nell'argomento finale abbiamo chiamato funzione in cui abbiamo inserito il codice HEX dell'immagine.
void picture (void) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Abbiamo creato due funzioni chiamate “draw” e “next”, in cui il codice per stampare il contenuto è scritto usando il comando “u8g.drawStr (x, y,” abcd ”)”. Qui, xey sono la posizione nell'LCD dove il contenuto verrà stampato e " abcd " è il contenuto da stampare.
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, "Interfacciamento"); u8g.drawStr (0, 35, "LCD grafico"); u8g.drawStr (0, 55, "con Arduino"); }
La funzione clearLCD () serve per cancellare il display LCD semplicemente dando un valore nullo alla funzione.
void clearLCD () {u8g.firstPage (); do {} while (u8g.nextPage ()); }
Impostare pixel, colore e intensità utilizzando il codice sottostante
void setup (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // white} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // intensità massima} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // pixel on} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
Il ciclo void continua a stampare il testo e l'immagine dopo il ritardo specificato. In primo luogo, abbiamo stampato "Circuit Digest" utilizzando la funzione di disegno e dopo 2 secondi. di ritardo abbiamo cancellato lo schermo utilizzando la funzione clearLCD e quindi stampato " Interfacciamento LCD grafico utilizzando Arduino " utilizzando la funzione successiva . Quindi abbiamo stampato l'immagine usando la funzione picture () che rimarrà sullo schermo per 3 secondi. Questo continuerà fino a quando l'alimentazione non verrà attivata.
void loop (void) {u8g.firstPage (); do {draw (); } while (u8g.nextPage ()); ritardo (2000); clearLCD (); u8g.firstPage (); do {next (); } while (u8g.nextPage ()); ritardo (2000); clearLCD (); u8g.firstPage (); fare {immagine (); } while (u8g.nextPage ()); ritardo (3000); clearLCD (); ritardo (50); }
Dopo aver programmato Arduino utilizzando il codice fornito, collegare il display LCD grafico come da schema elettrico con Arduino e fornire Arduino tramite adattatore o USB. Otterrai il contenuto e l'immagine stampati sul display LCD grafico, come mostrato nel video riportato di seguito.
Controlla anche l'interfacciamento del display LCD grafico del Nokia 5110 con Arduino,