- Απαιτούμενα υλικά:
- Σύντομη εισαγωγή στην οθόνη LCD 16 × 2 Dot matrix:
- Διάγραμμα κυκλώματος και σύνδεση:
- Προγραμματισμός MSP430 για LCD χρησιμοποιώντας Energia:
- LCD 16x2 με MSP430G2:
Αυτό είναι το τρίτο σεμινάριο στη σειρά μαθημάτων στα οποία μαθαίνουμε να προγραμματίζουμε το MSP430G2 LaunchPad χρησιμοποιώντας το Energia IDE. Στο προηγούμενο σεμινάριό μας, μάθαμε πώς να ελέγχουμε τις καρφίτσες ψηφιακής εισόδου και εξόδου στον πίνακα MSP. Σε αυτό το σεμινάριο, θα μάθουμε πώς να συνδέουμε μια οθόνη LCD με την πλακέτα έτσι ώστε να μπορούμε να εμφανίζουμε χρήσιμες πληροφορίες.
Η οθόνη LCD που χρησιμοποιούμε σε αυτό το έργο είναι η πιο συχνά χρησιμοποιούμενη οθόνη LCD 16 × 2 Dot matrix με αλφαριθμητικές οθόνες. Οι περισσότεροι από εμάς θα το συναντούσαμε είτε μέσω δημόσιων PCO είτε άλλων ηλεκτρονικών έργων. Μια τέτοια οθόνη θα είναι πολύ χρήσιμη για τα μελλοντικά μας σεμινάρια για την εμφάνιση δεδομένων και άλλων πληροφοριών εντοπισμού σφαλμάτων. Η διασύνδεση αυτής της οθόνης LCD με MSP430 είναι πολύ εύκολη, χάρη στη διαθέσιμη βιβλιοθήκη. Ας βουτήξουμε λοιπόν !!
Απαιτούμενα υλικά:
- MSP430G2 LaunchPad από την Texas Instruments
- Οθόνη LCD 16 × 2 Dot matrix
- Σύνδεση καλωδίων
- Energia IDE
Σύντομη εισαγωγή στην οθόνη LCD 16 × 2 Dot matrix:
Όπως ειπώθηκε νωρίτερα, το Energia IDE παρέχει μια όμορφη βιβλιοθήκη που κάνει τη διασύνδεση ένα κομμάτι κέικ και ως εκ τούτου δεν είναι υποχρεωτικό να γνωρίζουμε τίποτα για την ενότητα οθόνης. Όμως, δεν θα ήταν ενδιαφέρον να δείξουμε τι χρησιμοποιούμε !!
Το όνομα 16 × 2 υποδηλώνει ότι η οθόνη έχει 16 στήλες και 2 σειρές, οι οποίες μαζί (16 * 2) σχηματίζουν 32 κουτιά. Ένα ενιαίο κουτί θα μοιάζει κάπως έτσι στην παρακάτω εικόνα
Ένα μεμονωμένο πλαίσιο έχει 40 εικονοστοιχεία (κουκκίδες) με σειρά μήτρα 5 σειρών και 8 στηλών, αυτά τα 40 εικονοστοιχεία μαζί σχηματίζουν έναν χαρακτήρα. Ομοίως, 32 χαρακτήρες μπορούν να εμφανιστούν χρησιμοποιώντας όλα τα πλαίσια. Τώρα ας ρίξουμε μια ματιά στα pinouts.
Η οθόνη LCD έχει συνολικά 16 καρφίτσες, όπως φαίνεται παραπάνω, μπορούν να κατηγοριοποιηθούν σε τέσσερις ομάδες όπως ως εξής
Πινέζες πηγής (1, 2 και 3): Αυτοί οι ακροδέκτες τροφοδοτούν το επίπεδο ισχύος και αντίθεσης για την οθόνη
Πείροι ελέγχου (4, 5 και 6): Αυτές οι ακίδες ρυθμίζουν / ελέγχουν τους καταχωρητές στο IC διασύνδεσης LCD (περισσότερα αυτό μπορείτε να βρείτε στον παρακάτω σύνδεσμο)
Data / Command Pins (7 έως 14): Αυτές οι ακίδες παρέχουν τα δεδομένα των πληροφοριών που πρέπει να εμφανίζονται στην οθόνη LCD.
Καρφίτσες LED (15 και 16): Αυτοί οι ακροδέκτες χρησιμοποιούνται για να φωτίζουν τον οπίσθιο φωτισμό της οθόνης LCD εάν χρειάζεται (προαιρετικά)
Από όλες αυτές τις 16 ακίδες, μόνο 10 ακίδες πρέπει να χρησιμοποιούνται υποχρεωτικά για την καλή λειτουργία της οθόνης LCD, εάν θέλετε να μάθετε περισσότερα σχετικά με αυτές τις οθόνες LCD, μεταβείτε σε αυτό το άρθρο LCD.
Διάγραμμα κυκλώματος και σύνδεση:
Το πλήρες διάγραμμα κυκλώματος για διασύνδεση μιας οθόνης LCD 16 × 2 Dot matrix με MSP430G2 φαίνεται παρακάτω.
Ένας σημαντικός περιορισμός κατά τη διασύνδεση αυτών των δύο είναι οι τάσεις λειτουργίας τους. Η οθόνη LCD έχει τάση λειτουργίας + 5V ενώ το MSP λειτουργεί μόνο με 3.6V. Τυχερός για εμάς ο ακροδέκτης δεδομένων της διεπαφής LCD IC (HD44780U) έχει μεγάλη τάση λειτουργίας από 2,7V έως 5,5V. Επομένως, πρέπει να ανησυχούμε μόνο για το Vdd (pin 2) της οθόνης LCD, ενώ οι ακίδες δεδομένων μπορούν να λειτουργήσουν ακόμη και με 3.6V.
Η πλακέτα MSP430G2 από προεπιλογή δεν σας δίνει pin + 5V, αλλά μπορούμε να κάνουμε ένα μικρό hack για να λάβουμε + 5V από το MSP430 χρησιμοποιώντας τη θύρα USB. Εάν ρίξετε μια προσεκτική ματιά κοντά στη θύρα USB, μπορείτε να βρείτε ένα τερματικό που ονομάζεται TP1, αυτό το τερματικό θα μας δώσει + 5v. Το μόνο που πρέπει να κάνουμε είναι να κολλήσουμε έναν μικρό αρσενικό πείρο κεφαλίδας όπως φαίνεται παρακάτω, ώστε να μπορούμε να τον συνδέσουμε στην οθόνη LCD.
Σημείωση: Μην συνδέετε φορτία που ενδέχεται να καταναλώνουν περισσότερα από 50mA σε αυτήν την ακίδα 5V, μπορεί να τηγανίσει τη θύρα USB.
Εάν δεν σας ενδιαφέρει να κολλήσετε απλώς χρησιμοποιήστε οποιαδήποτε ρυθμιζόμενη τροφοδοσία + 5V και τροφοδοτήστε την LCD, σε αυτήν την περίπτωση, βεβαιωθείτε ότι έχετε συνδέσει τη γείωση του τροφοδοτικού σας στο έδαφος του πίνακα MSP.
Μόλις τελειώσετε με τον πείρο + 5V που συνδέει τους άλλους ακροδέκτες είναι σχεδόν απλός. Τώρα που το υλικό μας είναι έτοιμο, ας προχωρήσουμε στο τμήμα του λογισμικού.
Προγραμματισμός MSP430 για LCD χρησιμοποιώντας Energia:
Το πλήρες πρόγραμμα διασύνδεσης ενός MSP430G2553 με οθόνη LCD δίνεται στο τέλος αυτής της σελίδας. Ο κώδικας μπορεί να μεταγλωττιστεί, να φορτωθεί και να χρησιμοποιηθεί ως τέτοιος. Στις επόμενες παραγράφους, θα εξηγήσω πώς λειτουργεί το πρόγραμμα.
Πριν προχωρήσουμε στην εξήγηση, πρέπει να σημειώσουμε τις καρφίτσες που χρησιμοποιούμε. Εάν ρίξετε μια ματιά στο διάγραμμα κυκλώματος παραπάνω και στο διάγραμμα pin-out MSP430 παρακάτω
Μπορείτε να συμπεράνετε ότι έχουμε συνδέσει την οθόνη LCD σύμφωνα με τον παρακάτω πίνακα
Όνομα καρφίτσας LCD |
Συνδεδεμένος με |
Vss |
Εδαφος |
Vdd |
+ Καρφίτσα USB 5V |
Rs |
Καρφίτσα 2 του MSP |
Ε / Δ |
Εδαφος |
επιτρέπω |
Καρφίτσα 3 του MSP |
Δ4 |
Καρφίτσα 4 του MSP |
Δ5 |
Καρφίτσα 5 του MSP |
Δ6 |
Καρφίτσα 6 του MSP |
Δ7 |
Καρφίτσα 7 του MSP |
Έχοντας αυτό κατά νου, ας αρχίσουμε να ορίζουμε τις ακίδες LCD που χρησιμοποιούνται στο πρόγραμμά μας. Θα ονομάσουμε κάθε καρφίτσα με ένα πιο νόημα όνομα, ώστε να μπορούμε να το χρησιμοποιήσουμε εύκολα αργότερα.
# καθορισμός RS 2 # καθορισμός EN 3 # καθορισμός D4 4 # καθορισμός D5 5 # καθορισμός D6 6 # καθορισμός D7 7
Αυτό απλά σημαίνει ότι αντί να καλέσω τον ακροδέκτη 2 μπορώ να το αναφέρω ως RS παρακάτω, ομοίως και για τις 6 ακίδες
Το επόμενο βήμα θα ήταν να συμπεριληφθεί η βιβλιοθήκη LCD. Αυτή η βιβλιοθήκη θα είχε εγκατασταθεί αυτόματα όταν εγκαταστήσατε το Energia IDE. Απλώς προσθέστε το χρησιμοποιώντας την ακόλουθη γραμμή
#περιλαμβάνω
Το επόμενο βήμα είναι να αναφέρουμε τις καρφίτσες στις οποίες είναι συνδεδεμένη η LCD, καθώς το έχουμε ήδη ονομάσει χρησιμοποιώντας το #define , μπορούμε τώρα να αναφέρουμε απλά τα ονόματα των καρφιτσών LCD. Βεβαιωθείτε ότι ακολουθείται η ίδια σειρά.
LiquidCrystal lcd (RS, EN, D4, D5, D6, D7);
Τώρα ας προχωρήσουμε στη λειτουργία ρύθμισης κενού () . Υπάρχουν τόσοι πολλοί τύποι οθονών LCD που ποικίλλουν σε μέγεθος και φύση, αυτός που χρησιμοποιούμε είναι 16 * 2, οπότε ας το ορίσουμε στο πρόγραμμά μας
lcd.begin (16, 2);
Για να εκτυπώσετε κάτι στην οθόνη LCD πρέπει να αναφέρουμε δύο πράγματα στο πρόγραμμα. Το ένα είναι η θέση του κειμένου που μπορεί να αναφερθεί χρησιμοποιώντας τη γραμμή lcd.setCursor () και άλλο είναι το περιεχόμενο προς εκτύπωση που μπορεί να αναφερθεί από το lcd.print (). Σε αυτή τη γραμμή έχουμε τον καθορισμό του δρομέα στο 1 st γραμμή και 1 ης στήλης.
lcd.setCursor (0,0);
Ομοίως, μπορούμε επίσης
lcd.setCursor (0, 1); // ορίστε τον κέρσορα στην πρώτη στήλη 2η σειρά
Ακριβώς όπως η διαγραφή ενός πίνακα μετά την εγγραφή σε αυτό, μια οθόνη LCD θα πρέπει επίσης να διαγραφεί μόλις γράψει κάτι πάνω του. Αυτό μπορεί να γίνει χρησιμοποιώντας την παρακάτω γραμμή
lcd.clear ();
Έτσι, η πλήρης λειτουργία κενής ρύθμισης () θα μοιάζει κάπως έτσι.
άκυρη ρύθμιση () {lcd.begin (16, 2); // Χρησιμοποιούμε οθόνη LCD 16 * 2 lcd.setCursor (0,0). // Τοποθετήστε τον κέρσορα στην 1η σειρά 1η στήλη lcd.print ("MSP430G2553"); // Εμφάνιση ενός εισαγωγικού μηνύματος lcd.setCursor (0, 1); // ορίστε τον κέρσορα στην 1η στήλη 2η σειρά lcd.print ("- CircuitDigest"); // Εμφάνιση καθυστέρησης εισαγωγικού μηνύματος (2000). // Περιμένετε να εμφανιστεί η εμφάνιση πληροφοριών lcd.clear (); // Τότε καθαρίστε το}
Στη συνέχεια, μέσα στη συνάρτηση void loop () , ας συνεχίσουμε να αυξάνουμε έναν αριθμό για κάθε 500ms και να εμφανίζουμε τον αριθμό στην οθόνη LCD Αυτός ο αριθμός δοκιμάζεται και αρχικοποιείται σε 1 όπως φαίνεται παρακάτω
δοκιμή int = 1;
Για να δημιουργήσουμε μια καθυστέρηση μπορούμε να χρησιμοποιήσουμε την ενσωματωμένη λειτουργία καθυστέρησης (). Πρέπει να αναφέρουμε πόσος χρόνος χρειαζόμαστε για την καθυστέρηση. Στην περίπτωσή μας, έχω χρησιμοποιήσει 500ms όπως φαίνεται παρακάτω
καθυστέρηση (500)
Η αύξηση μιας μεταβλητής μπορεί να γίνει με το τεστ ++, τα υπόλοιπα εξηγούνται ήδη. Ο πλήρης κωδικός εντός του κενού βρόχου φαίνεται παρακάτω
void loop () {lcd.print ("LCD με MSP"). // Εμφάνιση ενός εισαγωγικού μηνύματος lcd.setCursor (0, 1); // ορίστε τον κέρσορα στη στήλη 0, γραμμή 1 lcd.print (test); // Εμφάνιση καθυστέρησης εισαγωγικού μηνύματος (500). lcd.clear (); // Στη συνέχεια, καθαρίστε τη δοκιμή ++; }
LCD 16x2 με MSP430G2:
Μόλις το υλικό και ο κωδικός σας είναι έτοιμοι, απλώς συνδέστε την πλακέτα του υπολογιστή σας και ανεβάστε τον κωδικό όπως κάναμε και στο σεμινάριο. Μόλις μεταφορτωθεί ο κωδικός θα πρέπει να δείτε την οθόνη που δείχνει τα ακόλουθα.
Μετά από δύο δευτερόλεπτα, η οθόνη εμφάνισης θα αλλάξει από τη ρύθμιση σε βρόχο και θα αρχίσει να αυξάνει τη μεταβλητή και να εμφανίζεται στην οθόνη όπως φαίνεται στην παρακάτω εικόνα.
Η πλήρης εργασία βρίσκεται στο παρακάτω βίντεο. Προχωρήστε και δοκιμάστε να αλλάξετε αυτό που εμφανίζεται στην οθόνη LCD και παίξτε με αυτό. Ελπίζω να καταλάβατε το σεμινάριο και να μάθετε κάτι χρήσιμο από αυτό. Εάν έχετε αμφιβολίες αφήστε τους στην παρακάτω ενότητα σχολίων ή χρησιμοποιήστε τα φόρουμ. Ας συναντηθούμε σε ένα άλλο σεμινάριο.