Εισαγωγή
Η βιβλιοθήκη "LiquidCrystal' μας επιτρέπει να χρησιμοποιήσουμε πολύ εύκολα οθόνες που είναι συμβατές με το Hitachi HD44780 driver. Στο εμπόριο υπάρχουν πολλές απο αυτές σε διάφορα μεγέθη τις οποίες μπορείτε εύκολα να διακρίνετε από τους 16 ακροδέκτες που διαθέτουν για την σύνδεση με κάποιον μικροελεγκτή.
Στον οδηγό αυτό θα μάθετε να χρησιμοποιείτε μια οθόνη LCD 16x2 (αλλά και 20x4, κ.τ.λ.) με το Arduino uno. Επίσης, θα μάθετε για τις συναρτήσεις lcd.begin(), lcd.print() και lcd.setCursor(). |
Τα υλικά που θα χρειαστούμε
Για το tutorial αυτό θα χρειαστούμε:
|
Σχετικά με τους ακροδέκτες μιας οθόνης LCD
Η παράλληλη συνδεσμολογία διαθέτει τους παρακάτω ακροδέκτες:
Οι οθόνες που είναι συμβατές με το Hitachi driver μπορούν να οδηγηθούν με δυο λειτουργίες, 4-bit και 8-bit. Η συνδεσμολογία με 4-bit χρησιμοποιεί 7 I/O pins του Arduino ενώ η λειτουργία 8-bit χρησιμοποιεί 11.
Για να την εκτύπωση μηνύματος στην οθόνη, χρειαζόμαστε απλά την λειτουργία με τα 4-bit, έτσι σε αυτό το tutorial θα εργαστούμε πάνω σε αυτή.
- Πηγή/Τροφοδοσία (Vss/Vcc)
- Ρύθμιση αντίθεσης (Vo)
- Register Select (RS)
- Read/Write (R/W)
- Enable pin (ΕΝ)
- Ακροδέκτες δεδομένων (D0 -D7)
- Φωτισμός (Bklt+ and BKlt-)
Οι οθόνες που είναι συμβατές με το Hitachi driver μπορούν να οδηγηθούν με δυο λειτουργίες, 4-bit και 8-bit. Η συνδεσμολογία με 4-bit χρησιμοποιεί 7 I/O pins του Arduino ενώ η λειτουργία 8-bit χρησιμοποιεί 11.
Για να την εκτύπωση μηνύματος στην οθόνη, χρειαζόμαστε απλά την λειτουργία με τα 4-bit, έτσι σε αυτό το tutorial θα εργαστούμε πάνω σε αυτή.
Το κύκλωμα
Η συνδεσμολογία είναι εύκολη, δείτε την παραπάνω εικόνα με το σχηματικό του κυκλώματος σε breadboard.
Ο κώδικας
Η εντολή lcd.begin(16,2) αρχικοποιεί την βιβλιοθήκη με τις γραμμές και στήλες της οθόνης που έχουμε. Για παράδειγμα, αν είχαμε μια οθόνη με 20 στήλες και 4 γραμμές (20x4) θα έπρεπε να αλλάξουμε την εντολή σε lcd.begin(20x4).
Η εντολή lcd.print("--minima--") εκτυπώνει ένα μήνυμα στην πρώτη γραμμή και πρώτη στήλη της οθόνης. Το "minima" θα πρέπει να είναι με λατινικούς χαρακτήρες (δεν επιτρέπετε χρήση Ελληνικών) και να έχει μέγιστο μήκος όσο και το μέγεθος της οθόνης σε στήλες. Για παράδειγμα μια οθόνη με 16 στήλες μπορεί να εμφανίσει στην πρώτη γραμμή μήνυμα με μέγιστο μήκος 16 χαρακτήρες (μαζί με τα κενά), ενώ μια οθόνη με 20 στήλες μπορεί να εμφανίσει μήνυμα με μέγιστο μήκος 20 χαρακτήρες.
Η εντολή lcd.setCursor(0,1) μετακινεί τον δείκτη στην πρώτη στήλη και δεύτερη γραμμή της οθόνης. Αν είχαμε μια οθόνη 20x4 και θέλαμε να ξεκινήσουμε το μήνυμα μας στην πέμπτη στήλη της τρίτης γραμμής θα αλλάζαμε την εντολή σε lcd.setCursor(4,2).
Η εντολή lcd.print("--minima--") εκτυπώνει ένα μήνυμα στην πρώτη γραμμή και πρώτη στήλη της οθόνης. Το "minima" θα πρέπει να είναι με λατινικούς χαρακτήρες (δεν επιτρέπετε χρήση Ελληνικών) και να έχει μέγιστο μήκος όσο και το μέγεθος της οθόνης σε στήλες. Για παράδειγμα μια οθόνη με 16 στήλες μπορεί να εμφανίσει στην πρώτη γραμμή μήνυμα με μέγιστο μήκος 16 χαρακτήρες (μαζί με τα κενά), ενώ μια οθόνη με 20 στήλες μπορεί να εμφανίσει μήνυμα με μέγιστο μήκος 20 χαρακτήρες.
Η εντολή lcd.setCursor(0,1) μετακινεί τον δείκτη στην πρώτη στήλη και δεύτερη γραμμή της οθόνης. Αν είχαμε μια οθόνη 20x4 και θέλαμε να ξεκινήσουμε το μήνυμα μας στην πέμπτη στήλη της τρίτης γραμμής θα αλλάζαμε την εντολή σε lcd.setCursor(4,2).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /* Arduino Tutorial: Learn how to use an LCD 16x2 screen More info: http://www.ardumotive.com/how-to-use-an-lcd-dislpay-en.html */ //Include LCD library #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("Hello World!"); } void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 1); //Print a message to second line of LCD lcd.print("Ardumotive"); } |
Κατεβάστε τον κώδικα απ' εδώ και ανοίξτε το αρχείο με το Arduino IDE.
|
|
Μπορείτε να κάνετε τις δικές σας παρεμβάσεις στον κώδικα, δοκιμάστε για παράδειγμα να αλλάξετε το μήνυμα στην πρώτη και δεύτερη γραμμή
Συγχαρητήρια!
Μόλις ολοκληρώσατε άλλο ένα "How to" tutorial και μάθατε πως να χρησιμοποιείτε μια οθόνη LCD.
Ελπίζω να σας άρεσε, αν θέλετε μπορείτε να αφήσετε το σχόλιο σας παρακάτω.
Ελπίζω να σας άρεσε, αν θέλετε μπορείτε να αφήσετε το σχόλιο σας παρακάτω.