- Matériel requis
- Schéma
- LCD graphique 128 * 64
- Conversion d'image en code hexadécimal:
- Code Arduino et explication de travail
Il existe de nombreux types d'écrans LCD utilisés dans les projets électroniques. Nous avons déjà utilisé un écran LCD 16X2 dans beaucoup de nos projets et également utilisé un écran LCD TFT avec Arduino. Vous pouvez trouver l'ensemble de notre projet lié à l'écran LCD 16X2 en suivant ce lien, y compris l' interfaçage avec 8051, AVR, Arduino et bien d'autres.
L' écran LCD graphique ST9720 est totalement différent des écrans LCD ordinaires. L'écran LCD ordinaire ne peut imprimer que du texte simple ou des nombres d'une taille fixe. Mais dans les LCD graphiques, nous avons 128 * 64, ce qui équivaut à 8192 points ou 8192/8 = 1024 pixels, donc à part le caractère, nous pouvons afficher n'importe quelle image graphique sur ce GLCD.
Nous avons déjà interfacé GLCD avec 8051, aujourd'hui nous allons interfacer LCD graphique avec Arduino pour afficher du texte et des images dessus.
Matériel requis
- Arduino UNO
- 128 * 64 LCD graphique ST9720
- Potentiomètre-10k
- Fils de connexion
- Planche à pain
Schéma
LCD graphique 128 * 64
Cet écran LCD graphique a une faible consommation d'énergie et convient également aux appareils portables alimentés par batterie. Il a une large plage de tension de fonctionnement de 2,2 V à 5,5 V et prend en charge la communication série et parallèle 8/4 bits et est livré avec un contrôleur / pilote LCD ST7290. Le mode de communication d'interface peut être commuté entre parallèle et série à l'aide du PIN PSB 15. Cet écran LCD graphique a une fonction de réinitialisation automatique et peut être facilement contrôlé par MCU tel que 8051, AVR, ARM, Arduino et Raspberry Pi.
Vous pouvez consulter la fiche technique pour des informations détaillées sur ST7290 128 * 64 LCD graphique
Configuration des broches
N ° de broche |
Nom de la broche |
La description |
1 |
Gnd |
Borne de terre |
2 |
Vcc |
Tension d'alimentation d'entrée (2,7 V à 5,5 V) |
3 |
Vo |
Contraste lcd |
4 |
RS |
S'inscrire Sélectionnez RS = 0: registre d'instructions RS = 1: registre de données |
5 |
R / W |
Contrôle de lecture / écriture |
6 |
E |
Activer |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Broches de données (utilisées en mode de communication parallèle 8/4 bits) |
15 |
PSB |
Sélection d'interface: Faible (0) pour le mode de communication série Élevé (1) pour le mode de bus parallèle 8/4 bits. |
16 |
NC |
Pas connecté |
17 |
RST |
Réinitialiser la broche |
18 |
Vout |
Sortie de doubleur de tension LCD. VOUT ≦ 7V. |
19 |
BLA |
Alimentation positive du rétroéclairage |
20 |
BLK |
Rétroéclairage Alimentation négative |
Applications
- Appareil industriel
- Systèmes embarqués
- Sécurité
- Médical
- Équipement portatif
Conversion d'image en code hexadécimal:
Pour afficher une image sur l'écran LCD graphique, nous avons besoin du code HEX de cette image, voici donc quelques étapes pour convertir l'image en code HEX. Avant cela, vous devez vous assurer que la taille de l'image ne doit pas dépasser 128 * 64.
Étape 1: Diminuez la taille de l'image normale à 128 * 64 ou moins, ce que vous pouvez faire en utilisant n'importe quel logiciel d'édition d'image comme MS Paint.
Comme le montre l'image ci-dessus, nous définissons la largeur et la hauteur de l'image sur 128 * 64.
Étape 2: Ensuite, vous devez enregistrer l'image au format «image_name .bmp ».
Sélectionnez le format indiqué dans l'image ci-dessus et enregistrez le fichier pour un processus ultérieur.
Étape 3: Après l'avoir enregistrée au format «.bmp», vous devez convertir l'image en code hexadécimal pour l'impression. Pour cela, j'utilise le logiciel nommé GIMP 2, qui convertit le fichier Bmp en code hexadécimal.
Comme le montre l'image ci-dessus, nous avons ouvert le fichier au format «.bmp» dans le logiciel GIMP 2.
Étape 4: Après avoir téléchargé le logiciel, ouvrez le fichier image au format BMP que vous souhaitez imprimer puis enregistrer comme dans « .xbm » (X Bitmap) format. Après l'avoir enregistré, ouvrez ce fichier à l'aide du Bloc-notes et vous obtiendrez le code hexadécimal de l'image.
Comme le montre l'image ci-dessous, choisissez l'option Exporter pour enregistrer le fichier au format xbm :
Sélectionnez le format indiqué dans l'image ci-dessous et exportez le fichier image.
Après avoir exporté le fichier, vous obtiendrez le fichier au format «.xbm». Ouvrez le fichier xbm à l'aide du Bloc - notes et vous obtiendrez le code HEX comme indiqué dans l'image ci-dessous.
Code Arduino et explication de travail
Pour interfacer l'écran LCD graphique avec Arduino, nous devons d'abord définir la bibliothèque utilisée pour l'écran LCD graphique. Arduino n'a pas cette bibliothèque, vous devez télécharger et installer cette bibliothèque à partir de ce lien. Ensuite, vous pouvez inclure la bibliothèque comme ci-dessous:
#include "U8glib.h"
Ici, ' u8g (10) ' définit la connexion de la broche RS (Register Select) de l'écran LCD graphique avec la 10e broche de l'Arduino UNO. Broche RS utilisée comme «sélection de puce» et «sélection de registre» lorsqu'elle est utilisée respectivement en mode série et parallèle. Nous utilisons donc le mode série et la broche RS réglées sur High (1) pour la puce activée et sur Low (0) pour la puce désactivée.
U8GLIB_ST7920_128X64_4X u8g (10);
Maintenant, pour imprimer l'image, nous devons placer le code hexadécimal de l'image dans le code ci-dessous. Vous pouvez imprimer n'importe quelle autre image, il vous suffit de coller le code hexadécimal de l'image.
const uint8_t rook_bitmap U8G_PROGMEM = { Collez le code hexadécimal de l'image ici };
Consultez le code Arduino complet à la fin de cet article.
La fonction ci-dessous est utilisée pour imprimer l'image, la commande utilisée pour l'impression est «u8g.drawXBMP (x, y, largeur de l'image, hauteur de l'image)» . Où, X et Y sont la position de départ de l'image sur l'écran LCD et nous devons également écrire la taille de l'image qui ne doit pas dépasser 128 * 64 et en argument final nous avons appelé la fonction dans laquelle nous avons placé le code HEX de l'image.
image vide (vide) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Nous avons créé deux fonctions appelées «draw» et «next», dans lesquelles le code d'impression du contenu est écrit à l'aide de la commande «u8g.drawStr (x, y,» abcd »)». Ici, x et y sont la position sur l'écran LCD où le contenu sera imprimé et « abcd » est le contenu à imprimer.
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, "Interfaçage"); u8g.drawStr (0, 35, "LCD graphique"); u8g.drawStr (0, 55, "avec Arduino"); }
La fonction clearLCD () est conçue pour effacer l'écran LCD en donnant simplement une valeur nulle à la fonction.
void clearLCD () {u8g.firstPage (); faire {} while (u8g.nextPage ()); }
Configurer le pixel, la couleur et l'intensité en utilisant le code ci-dessous
void setup (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // blanc} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // intensité max} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // pixel activé} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
La boucle vide continue d' imprimer le texte et l'image après le délai donné. Tout d'abord, nous avons imprimé "Circuit Digest" en utilisant la fonction de dessin et après 2sec. du retard, nous avons effacé l'écran en utilisant la fonction clearLCD , puis imprimons « Interfaçage LCD graphique à l'aide d'Arduino » en utilisant la fonction suivante . Ensuite, nous avons imprimé l'image en utilisant la fonction picture () qui restera à l'écran pendant 3 secondes. Cela continuera jusqu'à ce que l'alimentation soit activée.
boucle vide (void) {u8g.firstPage (); faire {draw (); } while (u8g.nextPage ()); retard (2000); clearLCD (); u8g.firstPage (); faire ensuite(); } while (u8g.nextPage ()); retard (2000); clearLCD (); u8g.firstPage (); faire {image (); } while (u8g.nextPage ()); retard (3000); clearLCD (); retard (50); }
Après avoir programmé l'Arduino en utilisant le code donné, connectez l'écran LCD graphique selon le schéma de circuit avec l'Arduino et alimentez l'Arduino à l'aide d'un adaptateur ou USB. Vous obtiendrez le contenu et l'image imprimés sur l'écran LCD graphique, comme indiqué dans la vidéo ci-dessous.
Vérifiez également l'interfaçage de l'écran LCD graphique Nokia 5110 avec Arduino,