- Material requerit
- Esquema de connexions
- LCD gràfic de 128 * 64
- Conversió de la imatge en codi hexadecimal:
- Codi Arduino i explicació de treball
Hi ha molts tipus de pantalles LCD que s’utilitzen en projectes electrònics. Ja hem utilitzat LCD 16X2 en molts dels nostres projectes i també hem utilitzat LCD TFT amb Arduino. Podeu trobar tot el nostre projecte relacionat amb LCD 16X2 seguint aquest enllaç, inclosa la interfície amb 8051, AVR, Arduino i molts altres.
La pantalla LCD gràfica ST9720 és totalment diferent de la pantalla LCD ordinària. La pantalla LCD ordinària només pot imprimir text o números senzills amb una mida fixa. Però a les pantalles LCD gràfiques tenim 128 * 64, que és igual a 8192 punts o 8192/8 = 1024 píxels, de manera que, a part del caràcter, podem mostrar qualsevol imatge gràfica en aquest GLCD.
Ja hem interfaçat GLCD amb 8051, avui farem una interfície gràfica LCD amb Arduino per mostrar-hi text i imatges.
Material requerit
- Arduino UNO
- LCD gràfic ST9720 de 128 * 64
- Potenciòmetre-10k
- Connexió de cables
- Taula de pa
Esquema de connexions


LCD gràfic de 128 * 64
Aquest LCD gràfic té un baix consum d’energia i també és adequat per a dispositius portàtils amb bateria. Té un ampli rang de voltatge de funcionament de 2,2 v a 5,5 v i admet comunicacions en sèrie i paral·leles de 8/4 bits i ve amb un controlador / controlador LCD ST7290. El mode de comunicació de la interfície es pot canviar entre paral·lel i serial mitjançant el PIN de PSB 15. Aquest LCD gràfic té una funció de reinici automàtic d’energia i es pot controlar fàcilment mitjançant MCU com 8051, AVR, ARM, Arduino i Raspberry Pi.

Podeu consultar el full de dades per obtenir informació detallada sobre la pantalla LCD gràfica ST7290 128 * 64
Configuració del pin
|
Pin núm. |
Nom del pin |
Descripció |
|
1 |
Gnd |
Terminal de terra |
|
2 |
Vcc |
Tensió d'alimentació d'entrada (2,7 V a 5,5 V) |
|
3 |
Vo |
Contrast LCD |
|
4 |
RS |
Selecciona el registre RS = 0: registre d'instruccions RS = 1: registre de dades |
|
5 |
R / N |
Control de lectura / escriptura |
|
6 |
E |
Activa |
|
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Pins de dades (s'utilitzen en mode de comunicació paral·lel de 8 / 4bit) |
|
15 |
PSB |
Selecció de la interfície: Baix (0) per al mode de comunicació en sèrie Alta (1) per al mode de bus paral·lel de 8/4 bits. |
|
16 |
NC |
No connectat |
|
17 |
RST |
Restableix el pin |
|
18 |
Vout |
Sortida de duplicador de tensió LCD. VOUT ≦ 7V. |
|
19 |
BLA |
Subministrament positiu de llum de fons |
|
20 |
BLK |
Llum de fons Subministrament negatiu |
Aplicacions
- Dispositiu industrial
- Sistemes incrustats
- Seguretat
- Mèdic
- Equip de mà
Conversió de la imatge en codi hexadecimal:
Per mostrar qualsevol imatge a la pantalla LCD gràfica, necessitem el codi HEX d’aquesta imatge, de manera que aquí teniu uns quants passos per convertir la imatge en codi HEX. Abans heu d'assegurar-vos que la mida de la imatge no superi els 128 * 64.
Pas 1: reduïu la mida de la imatge normal a 128 * 64 o menys, cosa que podeu fer amb qualsevol programari d'edició d'imatges com MS paint.

Com es mostra a la imatge superior, estem configurant l'amplada i l'alçada de la imatge a 128 * 64.
Pas 2: llavors heu de desar la imatge en format "nom_imatge .bmp ".

Seleccioneu el format que es mostra a la imatge anterior i deseu el fitxer per continuar el procés.
Pas 3: després de desar-la al format ".bmp", heu de convertir la imatge en codi hexadecimal per imprimir-la. Per a això, estic fent servir el programari anomenat GIMP 2, que converteix el fitxer Bmp en codi hexadecimal.

Com es mostra a la imatge superior, vam obrir el fitxer en format ".bmp" al programari GIMP 2.
Pas 4: Després de descarregar el programari, obriu el fitxer d'imatge en format BMP que vulgueu imprimir i després guardar com a " .xbm " format (X Després de desar-lo, obriu aquest fitxer mitjançant el Bloc de notes i obtindreu el codi hexadecimal de la imatge.
Com es mostra a la imatge següent, trieu l'opció Exporta per desar el fitxer en format xbm :

Seleccioneu el format que es mostra a la imatge següent i exporteu el fitxer d'imatge.

Després d'exportar el fitxer, obtindreu el fitxer en format ".xbm". Obriu el fitxer xbm mitjançant el bloc de notes i obtindreu el codi HEX tal com es mostra a la imatge següent.

Codi Arduino i explicació de treball
Per connectar la pantalla LCD gràfica amb Arduino, primer hem de definir la biblioteca que s’utilitza per a la pantalla LCD gràfica. Arduino no té aquesta biblioteca, heu de descarregar-la i instal·lar-la des d’aquest enllaç. A continuació, podeu incloure la biblioteca com a continuació:
#include "U8glib.h"
Aquí, ' u8g (10) ' defineix la connexió del pin RS (Register Select) de pantalla LCD gràfica amb el 10è pin de l'Arduino UNO. El pin RS utilitzat com a "selecció de xip" i "Selecció de registre" quan s'utilitza en mode sèrie i paral·lel respectivament. Per tant, fem servir el mode sèrie i el pin RS configurat a High (1) per a xip activat i Low (0) per a xip desactivat.
U8GLIB_ST7920_128X64_4X u8g (10);
Ara, per imprimir la imatge, hem de col·locar el codi hexadecimal de la imatge al codi següent. Podeu imprimir qualsevol altra imatge, només cal que enganxeu el codi hexadecimal de la imatge.
const uint8_t rook_bitmap U8G_PROGMEM = { Enganxa aquí el codi hexadecimal de la imatge };
Consulteu el codi Arduino complet al final d’aquest article.
La funció següent s’utilitza per imprimir imatges, l’ordre que s’utilitza per imprimir és “u8g.drawXBMP (x, y, amplada de la imatge, alçada de la imatge)” . On, X i Y és la posició inicial de la imatge a la pantalla LCD i també hem d’escriure la mida de la imatge que no ha de superar els 128 * 64 i, en l’argument final, hem anomenat funció en la qual hem col·locat el codi HEX de la imatge.
imatge buida (buida) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Hem fet dues funcions anomenades "dibuixar" i "següent", en què el codi per imprimir el contingut s'escriu mitjançant l'ordre "u8g.drawStr (x, y," abcd ")". Aquí, xey són la posició a la pantalla LCD on s’imprimirà el contingut i “ abcd ” és el contingut que s’imprimirà.
dibuix buit (buit) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "CIRCUIT DIGEST"); } void next (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "Interfície"); u8g.drawStr (0, 35, "LCD gràfic"); u8g.drawStr (0, 55, "amb Arduino"); }
La funció clearLCD () es fa per esborrar la pantalla LCD només donant valor nul a la funció.
void clearLCD () {u8g.firstPage (); fer {} while (u8g.nextPage ()); }
Configuració del píxel, el color i la intensitat mitjançant el codi següent
configuració buida (buida) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // blanc} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // intensitat màxima} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // pixel on} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255.255.255); }}
El bucle buit continua imprimint el text i la imatge després del retard donat. En primer lloc, hem imprès "Circuit Digest" mitjançant la funció de dibuix i després de 2 segons. de retard, vam esborrar la pantalla mitjançant la funció clearLCD i després vam imprimir “ Interfacing LCD Graphical using Arduino ” mitjançant la següent funció. A continuació, hem imprès la imatge mitjançant la funció picture () que romandrà a la pantalla durant 3 segons. Això continuarà fins que la font d'alimentació s'encengui.
bucle buit (buit) {u8g.firstPage (); fer {draw (); } while (u8g.nextPage ()); endarreriment (2000); clearLCD (); u8g.firstPage (); fer {next (); } while (u8g.nextPage ()); endarreriment (2000); clearLCD (); u8g.firstPage (); fer {imatge (); } while (u8g.nextPage ()); retard (3000); clearLCD (); retard (50); }
Després de programar l'Arduino mitjançant el codi donat, connecteu el LCD gràfic segons el diagrama del circuit amb l'Arduino i subministreu l'Arduino mitjançant l'adaptador o USB. Vosaltres, obtindreu contingut i imatge impresos a la pantalla gràfica LCD, tal com es mostra al vídeo que es mostra a continuació.
Comproveu també la interfície LCD gràfica Nokia 5110 amb Arduino,
