- Απαιτούμενο υλικό
- Διάγραμμα κυκλώματος
- 128 * 64 LCD γραφικών
- Μετατροπή εικόνας σε Hex Code:
- Κωδικός Arduino και εξήγηση εργασίας
Υπάρχουν πολλοί τύποι LCD που χρησιμοποιούνται σε ηλεκτρονικά έργα. Έχουμε ήδη χρησιμοποιήσει LCD 16X2 σε πολλά από τα έργα μας και χρησιμοποιήσαμε επίσης TFT LCD με το Arduino. Μπορείτε να βρείτε ολόκληρο το έργο που σχετίζεται με την οθόνη LCD 16X2 ακολουθώντας αυτόν τον σύνδεσμο, συμπεριλαμβανομένης της διασύνδεσης με 8051, AVR, Arduino και πολλά άλλα.
Το ST9720 Graphical LCD είναι εντελώς διαφορετικό από τα συνηθισμένα LCD. Η συνηθισμένη οθόνη LCD μπορεί να εκτυπώσει απλό κείμενο ή αριθμούς εντός σταθερού μεγέθους. Όμως, σε γραφικές οθόνες LCD έχουμε 128 * 64 που είναι ίσο με 8192 κουκκίδες ή 8192/8 = 1024 pixel, οπότε εκτός από το χαρακτήρα, μπορούμε να εμφανίσουμε οποιαδήποτε γραφική εικόνα σε αυτό το GLCD.
Έχουμε ήδη διασυνδέσει το GLCD με το 8051, σήμερα θα συνδέσουμε το LCD γραφικών με το Arduino για να εμφανίσουμε κείμενο και εικόνες σε αυτό.
Απαιτούμενο υλικό
- Arduino UNO
- 128 * 64 γραφικό LCD ST9720
- Ποτενσιόμετρο-10k
- Σύνδεση καλωδίων
- Ψωμί
Διάγραμμα κυκλώματος
128 * 64 LCD γραφικών
Αυτή η γραφική οθόνη LCD έχει χαμηλή κατανάλωση ενέργειας και είναι επίσης κατάλληλη για φορητή συσκευή ισχύος μπαταρίας. Έχει ευρύ εύρος τάσης λειτουργίας 2,2v έως 5,5v και υποστηρίζει παράλληλη επικοινωνία σειριακής και 8/4-bit και έρχεται με ST7290 LCD ελεγκτή / IC προγράμματος οδήγησης. Η λειτουργία επικοινωνίας διασύνδεσης μπορεί να εναλλάσσεται μεταξύ παράλληλου και σειριακού χρησιμοποιώντας το PSB PIN 15. Αυτή η γραφική οθόνη LCD διαθέτει αυτόματη λειτουργία επαναφοράς και μπορεί εύκολα να ελεγχθεί από MCU όπως 8051, AVR, ARM, Arduino και Raspberry Pi.
Μπορείτε να διαβάσετε το φύλλο δεδομένων για λεπτομερείς πληροφορίες σχετικά με το ST7290 128 * 64 LCD γραφικών
Διαμόρφωση καρφιτσών
Pin No. |
Όνομα καρφιτσώματος |
Περιγραφή |
1 |
Gnd |
Τερματικό εδάφους |
2 |
Vcc |
Τάση τροφοδοσίας εισόδου (2,7v έως 5,5v) |
3 |
Φο |
Αντίθεση LCD |
4 |
RS |
Εγγραφή Επιλέξτε RS = 0: Μητρώο οδηγιών RS = 1: Μητρώο δεδομένων |
5 |
Ε / Δ |
Έλεγχος ανάγνωσης / εγγραφής |
6 |
μι |
επιτρέπω |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Καρφίτσες δεδομένων (χρησιμοποιούνται σε παράλληλη λειτουργία επικοινωνίας 8 / 4bit) |
15 |
PSB |
Επιλογή διεπαφής: Χαμηλή (0) για λειτουργία σειριακής επικοινωνίας Υψηλή (1) για λειτουργία παράλληλου διαύλου 8/4-bit. |
16 |
ΝΚ |
Μη συνδεδεμένο |
17 |
RST |
Επαναφορά καρφίτσας |
18 |
Vout |
Έξοδος διπλής τάσης LCD. VOUT ≦ 7V. |
19 |
BLA |
Θετική προσφορά οπίσθιου φωτισμού |
20 |
BLK |
Αρνητική προσφορά οπίσθιου φωτισμού |
Εφαρμογές
- Βιομηχανική συσκευή
- Ενσωματωμένα συστήματα
- Ασφάλεια
- Ιατρικός
- Εξοπλισμός χειρός
Μετατροπή εικόνας σε Hex Code:
Για να εμφανιστεί οποιαδήποτε εικόνα σε LCD γραφικών, χρειαζόμαστε τον κώδικα HEX αυτής της εικόνας, οπότε εδώ είναι μερικά βήματα για τη μετατροπή της εικόνας σε κώδικα HEX. Πριν από αυτό πρέπει να βεβαιωθείτε ότι το μέγεθος της εικόνας δεν πρέπει να υπερβαίνει τα 128 * 64.
Βήμα-1: Μειώστε το μέγεθος της κανονικής εικόνας σε 128 * 64 ή λιγότερο, το οποίο μπορείτε να κάνετε χρησιμοποιώντας οποιοδήποτε λογισμικό επεξεργασίας εικόνας όπως το MS paint.
Όπως φαίνεται στην παραπάνω εικόνα, ρυθμίζουμε το πλάτος και το ύψος της εικόνας σε 128 * 64.
Βήμα-2: Στη συνέχεια, πρέπει να αποθηκεύσετε την εικόνα σε μορφή "image_name .bmp ".
Επιλέξτε τη μορφή που εμφανίζεται στην παραπάνω εικόνα και αποθηκεύστε το αρχείο για περαιτέρω διαδικασία.
Βήμα-3: Αφού το αποθηκεύσετε σε μορφή ".bmp", πρέπει να μετατρέψετε την εικόνα σε δεκαεξαδικό κώδικα για εκτύπωση. Γι 'αυτό, χρησιμοποιώ το λογισμικό που ονομάζεται GIMP 2, το οποίο μετατρέπει το αρχείο Bmp σε δεκαεξαδικό κώδικα.
Όπως φαίνεται στην παραπάνω εικόνα, ανοίξαμε το αρχείο μορφής ".bmp" στο λογισμικό GIMP 2.
Βήμα-4: Μετά τη λήψη του λογισμικού, ανοίξτε το αρχείο εικόνας μορφής BMP που θέλετε να εκτυπώσετε και, στη συνέχεια, αποθηκεύστε το σε μορφή " .xbm " (X BitMap). Αφού το αποθηκεύσετε ανοίξτε αυτό το αρχείο χρησιμοποιώντας το Σημειωματάριο και θα λάβετε τον Hex κώδικα της εικόνας.
Όπως φαίνεται στην παρακάτω εικόνα, ορίστε την επιλογή Εξαγωγή για να αποθηκεύσετε το αρχείο σε μορφή xbm :
Επιλέξτε τη μορφή που φαίνεται στην παρακάτω εικόνα και εξαγάγετε το αρχείο εικόνας.
Μετά την εξαγωγή του αρχείου, θα λάβετε το αρχείο σε μορφή ".xbm". Ανοίξτε το αρχείο xbm χρησιμοποιώντας το Σημειωματάριο και θα λάβετε τον κωδικό HEX όπως φαίνεται στην παρακάτω εικόνα.
Κωδικός Arduino και εξήγηση εργασίας
Για τη διασύνδεση γραφικών LCD με το Arduino, πρώτα πρέπει να καθορίσουμε τη βιβλιοθήκη που χρησιμοποιείται για τη γραφική οθόνη LCD. Το Arduino δεν διαθέτει αυτήν τη βιβλιοθήκη, πρέπει να κάνετε λήψη και εγκατάσταση αυτής της βιβλιοθήκης από αυτόν τον σύνδεσμο. Στη συνέχεια, μπορείτε να συμπεριλάβετε τη βιβλιοθήκη όπως παρακάτω:
# συμπερίληψη "U8glib.h"
Εδώ, το « u8g (10) » καθορίζει τη σύνδεση του ακροδέκτη RS (Register Select) γραφικών LCD με τον 10ο ακροδέκτη του Arduino UNO. Η καρφίτσα RS χρησιμοποιείται ως «επιλογή τσιπ» και «Εγγραφή επιλογής» όταν χρησιμοποιείται σε λειτουργία σειριακής και παράλληλης. Λοιπόν, χρησιμοποιούμε τη σειριακή λειτουργία και την ακίδα RS ρυθμισμένη σε Υψηλό (1) για ενεργοποιημένο το τσιπ και Χαμηλό (0) για το τσιπ απενεργοποιημένο.
U8GLIB_ST7920_128X64_4X u8g (10);
Τώρα, για την εκτύπωση της εικόνας πρέπει να τοποθετήσουμε τον Hex κωδικό της εικόνας στον παρακάτω κώδικα. Μπορείτε να εκτυπώσετε οποιαδήποτε άλλη εικόνα, το μόνο που χρειάζεται να κάνετε είναι να επικολλήσετε τον δεκαεξαδικό κώδικα της εικόνας.
const uint8_t rook_bitmap U8G_PROGMEM = { Επικολλήστε τον Hex κώδικα εικόνας εδώ };
Ελέγξτε τον πλήρη κώδικα Arduino στο τέλος αυτού του άρθρου.
Η παρακάτω συνάρτηση χρησιμοποιείται για την εκτύπωση εικόνας, η εντολή που χρησιμοποιείται για την εκτύπωση είναι "u8g.drawXBMP (x, y, πλάτος εικόνας, ύψος εικόνας)" . Όπου, τα Χ και Υ είναι η αρχική θέση της εικόνας στην οθόνη LCD και πρέπει επίσης να γράψουμε το μέγεθος της εικόνας που δεν πρέπει να υπερβαίνει τα 128 * 64 και στο τελικό επιχείρημα έχουμε ονομάσει συνάρτηση στην οποία τοποθετήσαμε τον κωδικό εικόνας HEX.
άκυρη εικόνα (άκυρη) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Έχουμε κάνει δύο συναρτήσεις που ονομάζονται "draw" και "next", στις οποίες ο κώδικας για την εκτύπωση του περιεχομένου γράφεται χρησιμοποιώντας την εντολή "u8g.drawStr (x, y," abcd ")". Εδώ, x και y είναι η θέση στην οθόνη LCD όπου το περιεχόμενο θα εκτυπωθεί και το « abcd » είναι το περιεχόμενο που θα εκτυπωθεί.
άκυρη κλήρωση (άκυρη) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "ΚΥΚΛΩΜΑ ΨΗΦΙΑ"); } άκυρο επόμενο (άκυρο) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "Διασύνδεση"); u8g.drawStr (0, 35, "Γραφική οθόνη LCD"); u8g.drawStr (0, 55, "με Arduino"); }
Η λειτουργία clearLCD () έχει σχεδιαστεί για την εκκαθάριση της οθόνης LCD δίνοντας απλώς μηδενική τιμή στη λειτουργία.
void clearLCD () {u8g.firstPage (); κάντε {} ενώ (u8g.nextPage ()); }
Ρύθμιση pixel, χρώματος και έντασης χρησιμοποιώντας τον παρακάτω κώδικα
void setup (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // white} αλλιώς εάν (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // μέγιστη ένταση} αλλιώς εάν (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // pixel on} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255.255.255); }}
Ο κενός βρόχος συνεχίζει να εκτυπώνει το κείμενο και την εικόνα μετά τη δεδομένη καθυστέρηση. Πρώτα, έχουμε εκτυπώσει το "Circuit Digest" χρησιμοποιώντας τη λειτουργία κλήρωσης και μετά από 2 δευτερόλεπτα. καθυστέρησης καθαρίσαμε την οθόνη χρησιμοποιώντας τη λειτουργία ClearLCD και μετά εκτυπώσαμε " Interfacing Graphical LCD using Arduino " χρησιμοποιώντας την επόμενη λειτουργία. Στη συνέχεια, εκτυπώσαμε την εικόνα χρησιμοποιώντας τη λειτουργία εικόνας () η οποία θα παραμείνει στην οθόνη για 3 δευτερόλεπτα. Αυτό θα συνεχιστεί έως ότου ενεργοποιηθεί το τροφοδοτικό.
void loop (void) {u8g.firstPage (); κάνετε {draw (); } ενώ (u8g.nextPage ()); καθυστέρηση (2000); ClearLCD (); u8g.firstPage (); κάντε το {next (); } ενώ (u8g.nextPage ()); καθυστέρηση (2000); ClearLCD (); u8g.firstPage (); κάνετε {εικόνα (); } ενώ (u8g.nextPage ()); καθυστέρηση (3000) ClearLCD (); καθυστέρηση (50) }
Αφού προγραμματίσετε το Arduino χρησιμοποιώντας τον δεδομένο κωδικό, συνδέστε τη γραφική οθόνη LCD σύμφωνα με το διάγραμμα κυκλώματος με το Arduino και τροφοδοτήστε το Arduino χρησιμοποιώντας προσαρμογέα ή USB. Θα εκτυπώσετε περιεχόμενο και εικόνα στην οθόνη LCD γραφικών, όπως φαίνεται στο παρακάτω βίντεο.
Ελέγξτε επίσης τη διασύνδεση Nokia 5110 Graphical LCD με το Arduino,