- Erforderliches Material
- Schaltplan
- 128 * 64 Grafisches LCD
- Bild in Hex-Code konvertieren:
- Arduino-Code und Arbeitserklärung
Es gibt viele Arten von LCDs, die in elektronischen Projekten verwendet werden. Wir haben bereits in vielen unserer Projekte 16X2-LCD verwendet und auch TFT-LCD mit Arduino. Sie können unser gesamtes 16X2 LCD-Projekt finden, indem Sie diesem Link folgen, einschließlich der Schnittstelle zu 8051, AVR, Arduino und vielen mehr.
Das grafische LCD ST9720 unterscheidet sich grundlegend von den normalen LCDs. Ein normales LCD kann nur einfachen Text oder Zahlen innerhalb einer festen Größe drucken. In grafischen LCDs haben wir jedoch 128 * 64, was 8192 Punkten oder 8192/8 = 1024 Pixel entspricht. Abgesehen von den Zeichen können wir also jedes grafische Bild auf dieser GLCD anzeigen.
Wir haben GLCD bereits mit 8051 verbunden. Heute werden wir Graphical LCD mit Arduino verbinden, um Text und Bilder darauf anzuzeigen.
Erforderliches Material
- Arduino UNO
- 128 * 64 Grafisches LCD ST9720
- Potentiometer-10k
- Kabel anschließen
- Steckbrett
Schaltplan
128 * 64 Grafisches LCD
Dieses grafische LCD hat einen geringen Stromverbrauch und ist auch für tragbare Geräte mit Batteriestrom geeignet. Es hat einen weiten Betriebsspannungsbereich von 2,2 V bis 5,5 V und unterstützt sowohl serielle als auch 8/4-Bit-Parallelkommunikation. Es ist mit einem LCD-Controller / Treiber-IC ST7290 ausgestattet. Der Schnittstellenkommunikationsmodus kann mithilfe der PSB-PIN 15 zwischen parallel und seriell umgeschaltet werden. Dieses grafische LCD verfügt über eine automatische Power-On-Reset-Funktion und kann einfach von MCUs wie 8051, AVR, ARM, Arduino und Raspberry Pi gesteuert werden.
Ausführliche Informationen zu ST7290 128 * 64 Graphical LCD finden Sie im Datenblatt
Pin-Konfiguration
Pin Nr. |
Pin Name |
Beschreibung |
1 |
Gnd |
Erdungsklemme |
2 |
Vcc |
Eingangsversorgungsspannung (2,7 V bis 5,5 V) |
3 |
Vo |
lCD-Kontrast |
4 |
RS |
Registrieren Wählen Sie RS = 0: Anweisungsregister RS = 1: Datenregister |
5 |
R / W. |
Lese- / Schreibsteuerung |
6 |
E. |
Aktivieren |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Datenpins (werden im parallelen 8/4-Bit-Kommunikationsmodus verwendet) |
15 |
PSB |
Schnittstellenauswahl: Niedrig (0) für den seriellen Kommunikationsmodus Hoch (1) für 8/4-Bit-Parallelbusmodus. |
16 |
NC |
Nicht verbunden |
17 |
RST |
Pin zurücksetzen |
18 |
Vout |
LCD-Spannungsverdopplerausgang. VOUT ≦ 7V. |
19 |
BLA |
Positive Versorgung der Hintergrundbeleuchtung |
20 |
BLK |
Hintergrundbeleuchtung Negative Versorgung |
Anwendungen
- Industrielles Gerät
- Eingebettete Systeme
- Sicherheit
- Medizinisch
- Handgerät
Bild in Hex-Code konvertieren:
Um ein Bild auf einem grafischen LCD anzuzeigen, benötigen wir den HEX-Code dieses Bildes. Hier sind einige Schritte, um das Bild in HEX-Code umzuwandeln. Vorher müssen Sie sicherstellen, dass die Bildgröße 128 * 64 nicht überschreitet.
Schritt 1: Verringern Sie die Größe des normalen Bilds auf 128 * 64 oder weniger, was Sie mit jeder Bildbearbeitungssoftware wie MS Paint tun können.
Wie im obigen Bild gezeigt, stellen wir die Breite und Höhe des Bildes auf 128 * 64 ein.
Schritt 2: Anschließend müssen Sie das Bild im Format „image_name .bmp “ speichern.
Wählen Sie das im obigen Bild gezeigte Format und speichern Sie die Datei für den weiteren Vorgang.
Schritt 3: Nachdem Sie es im ".bmp" -Format gespeichert haben, müssen Sie das Bild zum Drucken in Hex-Code konvertieren. Dafür verwende ich die Software GIMP 2, die Bmp-Dateien in Hex-Code konvertiert.
Wie in der Abbildung oben gezeigt, haben wir die Datei im Format „.bmp“ in der GIMP 2-Software geöffnet.
Schritt-4: Nach dem Herunterladen der Software, öffnen Sie das BMP - Format - Bilddatei, die Sie drucken möchten, und dann als speichern es in „ .xbm “ (X BitMap) Format. Nachdem Sie es gespeichert haben, öffnen Sie diese Datei mit Notepad und Sie erhalten den Hex-Code des Bildes.
Wählen Sie wie in der Abbildung unten gezeigt die Option Exportieren, um die Datei im xbm- Format zu speichern:
Wählen Sie das im Bild unten gezeigte Format und exportieren Sie die Bilddatei.
Nach dem Exportieren der Datei erhalten Sie die Datei im Format „.xbm“. Öffnen Sie die xbm- Datei mit Notepad und Sie erhalten den HEX-Code wie in der Abbildung unten gezeigt.
Arduino-Code und Arbeitserklärung
Um grafisches LCD mit Arduino zu verbinden, müssen wir zuerst die Bibliothek definieren, die für das grafische LCD verwendet wird. Arduino hat diese Bibliothek nicht, Sie müssen diese Bibliothek von diesem Link herunterladen und installieren. Dann können Sie die Bibliothek wie folgt einbinden:
#include "U8glib.h"
Hier definiert ' u8g (10) ' die Verbindung des RS-Pins (Register Select) des grafischen LCD mit dem 10. Pin des Arduino UNO. RS-Pin, der im seriellen bzw. parallelen Modus als "Chipauswahl" und "Registerauswahl" verwendet wird. Wir verwenden also den seriellen Modus und den RS-Pin, der für aktivierte Chips auf High (1) und für deaktivierte Chips auf Low (0) gesetzt ist.
U8GLIB_ST7920_128X64_4X u8g (10);
Nun, zum Drucken des Bildes benötigen wir den Hex - Code des Bildes in dem unten stehenden Code zu platzieren. Sie können jedes andere Bild drucken. Sie müssen lediglich den Hex-Code des Bildes einfügen.
const uint8_t rook_bitmap U8G_PROGMEM = {Füge hier den Hex-Code des Bildes ein };
Überprüfen Sie den vollständigen Arduino-Code am Ende dieses Artikels.
Die folgende Funktion wird zum Drucken von Bildern verwendet. Der zum Drucken verwendete Befehl lautet "u8g.drawXBMP (x, y, Bildbreite, Bildhöhe)" . Wobei X und Y die Startposition des Bildes auf dem LCD ist und wir auch die Größe des Bildes schreiben müssen, die 128 * 64 nicht überschreiten sollte, und im letzten Argument haben wir die Funktion aufgerufen, in der wir den HEX-Code des Bildes platziert haben.
void picture (void) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }}
Wir haben zwei Funktionen namens "Zeichnen" und " Weiter " erstellt, in denen der Code zum Drucken des Inhalts mit dem Befehl "u8g.drawStr (x, y," abcd ")" geschrieben wird. Hier sind x und y die Position auf dem LCD, an der der Inhalt gedruckt wird, und ' abcd ' ist der zu druckende Inhalt.
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, "Interfacing"); u8g.drawStr (0, 35, "Graphical LCD"); u8g.drawStr (0, 55, "mit Arduino"); }}
Die Funktion clearLCD () dient zum Löschen des LCD, indem der Funktion lediglich ein Nullwert zugewiesen wird.
void clearLCD () {u8g.firstPage (); do {} while (u8g.nextPage ()); }}
Einstellen von Pixel, Farbe und Intensität mithilfe des folgenden Codes
void setup (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // weiß} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // maximale Intensität} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // Pixel ein} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
Die Hohlraumschleife weiterhin den Text und das Bild zu drucken, nachdem die gegebenen Verzögerung. Erstens haben wir gedruckt „Circuit Digest“ mit Ziehfunktion und nach 2 Sek. Nach der Verzögerung haben wir den Bildschirm mit der Funktion clearLCD gelöscht und dann mit der nächsten Funktion „ Interfacing Graphical LCD using Arduino “ gedruckt. Dann haben wir das Bild mit der Funktion picture () gedruckt, die 3 Sekunden lang auf dem Bildschirm bleibt. Dies wird fortgesetzt, bis die Stromversorgung eingeschaltet wird.
void loop (void) {u8g.firstPage (); do {draw (); } while (u8g.nextPage ()); Verzögerung (2000); clearLCD (); u8g.firstPage (); do {next (); } while (u8g.nextPage ()); Verzögerung (2000); clearLCD (); u8g.firstPage (); do {picture (); } while (u8g.nextPage ()); Verzögerung (3000); clearLCD (); Verzögerung (50); }}
Nachdem Sie das Arduino mit dem angegebenen Code programmiert haben, verbinden Sie das grafische LCD gemäß Schaltplan mit dem Arduino und versorgen Sie das Arduino mit Adapter oder USB. Sie erhalten Inhalt und Bild auf dem grafischen LCD gedruckt, wie im folgenden Video gezeigt.
Überprüfen Sie auch die Verbindung des Nokia 5110 Graphical LCD mit Arduino.