Σύνδεση LCD 1602 στο Arduino: περιγραφή, λειτουργίες, οδηγίες, χαρακτηριστικά, προβλήματα και λύσεις

Πίνακας περιεχομένων:

Σύνδεση LCD 1602 στο Arduino: περιγραφή, λειτουργίες, οδηγίες, χαρακτηριστικά, προβλήματα και λύσεις
Σύνδεση LCD 1602 στο Arduino: περιγραφή, λειτουργίες, οδηγίες, χαρακτηριστικά, προβλήματα και λύσεις
Anonim

Κάθε ραδιοερασιτέχνης, μετά από κάποια απλή δουλειά DIY, φτάνει στο στόχο να κατασκευάσει κάτι σπουδαίο χρησιμοποιώντας αισθητήρες και κουμπιά. Εξάλλου, είναι πολύ πιο ενδιαφέρον να εμφανίζονται δεδομένα στην οθόνη παρά στην οθόνη της θύρας. Αλλά τότε τίθεται το ερώτημα: ποια οθόνη να επιλέξω; Και γενικά, πώς να το συνδέσετε, τι χρειάζεται για να συνδεθείτε; Οι απαντήσεις σε αυτές τις ερωτήσεις θα συζητηθούν σε αυτό το άρθρο.

Οθόνη LCD 1602 για σύνδεση με arduino
Οθόνη LCD 1602 για σύνδεση με arduino

LCD 1602

Μεταξύ των πολλών επιλογών μεταξύ των οθονών, θα ήθελα να ξεχωρίσω την οθόνη LCD1602 που βασίζεται στον ελεγκτή HD4478. Υπάρχει αυτή η οθόνη σε δύο χρώματα: λευκά γράμματα σε μπλε φόντο, μαύρα γράμματα σε κίτρινο φόντο. Η σύνδεση της LCD 1602 με το Arduino δεν θα προκαλέσει επίσης προβλήματα, καθώς υπάρχει ενσωματωμένη βιβλιοθήκη και δεν χρειάζεται να κατεβάσετε τίποτα επιπλέον. Οι οθόνες διαφέρουν όχι μόνο σε τιμή, αλλά και σε μέγεθος. Συχνά οι ραδιοερασιτέχνες χρησιμοποιούν το 16x 2, δηλαδή 2 γραμμές των 16 χαρακτήρων. Υπάρχει όμως και το 20 x 4, όπου υπάρχουν 4 γραμμές των 20 χαρακτήρων. Οι διαστάσεις και το χρώμα δεν παίζουν κανένα ρόλο στη σύνδεση της οθόνης lcd 1602 με το Arduno, συνδέονται με τον ίδιο τρόπο. Η γωνία θέασης είναι 35 μοίρες, ο χρόνος απόκρισης της οθόνης είναι 250 ms. Μπορεί να λειτουργήσει σε θερμοκρασίες από -20 έως 70 βαθμούς Κελσίου. Όταν λειτουργεί, χρησιμοποιεί 4 mA για την οθόνη και 120 mA για τον οπίσθιο φωτισμό.

Οθόνη LCD 1602 pinout
Οθόνη LCD 1602 pinout

Πού χρησιμοποιείται;

Αυτή η οθόνη έχει τη δημοτικότητά της όχι μόνο στους ραδιοερασιτέχνες, αλλά και στους μεγάλους κατασκευαστές. Για παράδειγμα, οι εκτυπωτές, οι μηχανές καφέ χρησιμοποιούν επίσης LCD1602. Αυτό οφείλεται στη χαμηλή τιμή του, αυτή η οθόνη κοστίζει 200-300 ρούβλια σε κινεζικούς ιστότοπους. Αξίζει να το αγοράσετε από εκεί, καθώς στα καταστήματά μας τα περιθώρια για αυτήν την οθόνη είναι πολύ υψηλά.

Σύνδεση στο Arduino

Η σύνδεση LCD 1602 σε Arduino Nano και Uno δεν διαφέρει. Μπορείτε να εργαστείτε με την οθόνη σε δύο λειτουργίες: 4 bit και 8. Όταν εργάζεστε με οθόνη 8 bit, χρησιμοποιούνται τόσο τα χαμηλότερα όσο και τα υψηλότερα bit και με ένα 4 bit, μόνο τα χαμηλότερα. Δεν υπάρχει ιδιαίτερο νόημα στην εργασία με 8-bit, καθώς θα προστεθούν 4 ακόμη επαφές για σύνδεση, κάτι που δεν συνιστάται, επειδή η ταχύτητα δεν θα είναι υψηλότερη, το όριο ενημέρωσης οθόνης είναι 10 φορές ανά δευτερόλεπτο. Γενικά, χρησιμοποιούνται πολλά καλώδια για τη σύνδεση της lcd 1602 με το Arduino, κάτι που προκαλεί κάποια ταλαιπωρία, αλλά υπάρχουν ειδικές ασπίδες, αλλά για αυτό αργότερα. Η φωτογραφία δείχνει τη σύνδεση της οθόνης με το Arduino Uno:

Σύνδεση οθόνης με arduino
Σύνδεση οθόνης με arduino

Παράδειγμα κώδικα:


περιλαμβάνει //Προσθέστε την απαιτούμενη βιβλιοθήκη LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Ορισμός διάστασης οθόνης lcd.setCursor(0, 0); // Ρυθμίστε τον κέρσορα στην αρχή της γραμμής 1 lcd.print("Hello, world!"); // Εμφάνιση κειμένου lcd setCursor(0, 1); // Ρυθμίστε τον κέρσορα στην αρχή της γραμμής 2 lcd.print("fb.ru"); // Έξοδος κειμένου } void loop(){ }

Τι κάνει ο κωδικός; Πρώτα απ 'όλα, είναι συνδεδεμένη η βιβλιοθήκη για την εργασία με την οθόνη. Όπως αναφέρθηκε παραπάνω, αυτή η βιβλιοθήκη περιλαμβάνεται ήδη στο Arduino IDE και δεν χρειάζεται να την κατεβάσετε και να την εγκαταστήσετε επιπλέον. Στη συνέχεια, ορίζονται οι επαφές που συνδέονται με τις ακίδες: RS, E, DB4, DB5, DB6, DB7, αντίστοιχα. Στη συνέχεια ρυθμίζεται το μέγεθος της οθόνης. Δεδομένου ότι εργαζόμαστε με μια έκδοση με 16 χαρακτήρες και 2 γραμμές, γράφουμε τέτοιες τιμές. Ρυθμίζουμε τον κέρσορα στην αρχή της πρώτης γραμμής και εμφανίζουμε το πρώτο μας κείμενο Hello World. Στη συνέχεια, τοποθετήστε τον κέρσορα στη δεύτερη γραμμή και εμφανίστε το όνομα του ιστότοπου. Αυτό είναι όλο! Εξετάστηκε η σύνδεση της LCD 1602 στο Arduino Uno.

Τι είναι το I2C και γιατί χρειάζεται;

Όπως αναφέρθηκε παραπάνω, η σύνδεση της οθόνης απαιτεί πολλές ακίδες. Για παράδειγμα, όταν εργάζεστε με πολλούς αισθητήρες και οθόνη LCD, οι επαφές 1602 μπορεί απλώς να μην είναι αρκετές. Συχνά, οι ραδιοερασιτέχνες χρησιμοποιούν τις εκδόσεις Uno ή Nano, όπου δεν υπάρχουν πολλές επαφές. Στη συνέχεια, οι άνθρωποι βρήκαν ειδικές ασπίδες. Για παράδειγμα, το I2C. Σας επιτρέπει να συνδέσετε την οθόνη με μόλις 4 ακίδες. Αυτό είναι δύο φορές λιγότερο. Η μονάδα I2C πωλείται χωριστά, όπου πρέπει να τη συγκολλήσετε μόνοι σας, και έχει ήδη συγκολληθείΟθόνη LCD 1602.

Μονάδα I2C για οθόνη LCD 1602
Μονάδα I2C για οθόνη LCD 1602

Σύνδεση με μονάδα I2C

Η σύνδεση της LCD 1602 στο Arduino Nano με I2C καταλαμβάνει λίγο χώρο, μόνο 4 ακίδες: γείωση, ισχύς και 2 εξόδους δεδομένων. Συνδέουμε το ρεύμα και τη γείωση στα 5V και στο GND στο Arduino, αντίστοιχα. Οι υπόλοιπες δύο επαφές: SCL και SDA συνδέονται σε οποιαδήποτε αναλογική ακίδα. Στη φωτογραφία μπορείτε να δείτε ένα παράδειγμα σύνδεσης lcd 1602 σε arduino με μονάδα I2C:

Εμφάνιση συνδέσεων χρησιμοποιώντας τη μονάδα I2C
Εμφάνιση συνδέσεων χρησιμοποιώντας τη μονάδα I2C

Κωδικός προγράμματος

Αν ήταν απαραίτητο να χρησιμοποιήσετε μόνο μία βιβλιοθήκη για να εργαστείτε με οθόνη χωρίς λειτουργική μονάδα, τότε χρειάζονται δύο βιβλιοθήκες για να εργαστείτε με μια λειτουργική μονάδα. Ένα από αυτά βρίσκεται ήδη στο Arduino IDE - Wire. Μια άλλη βιβλιοθήκη, η LiquidCrystal I2C, πρέπει να ληφθεί ξεχωριστά και να εγκατασταθεί. Για να εγκαταστήσετε τη βιβλιοθήκη στο Arduino, τα περιεχόμενα του ληφθέντος αρχείου πρέπει να μεταφορτωθούν στον ριζικό φάκελο Libraries. Παράδειγμα κώδικα χρησιμοποιώντας I2C:


include include LiquidCrystal_I2C lcd(0x27, 16, 2); // Ρύθμιση της οθόνης void setup() { lcd.init(); lcd.backlight();// Ενεργοποιήστε τον οπίσθιο φωτισμό της οθόνης lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Ορισμός του δρομέα σε δεύτερη γραμμή και μηδενικό χαρακτήρα. lcd.setCursor(0, 1); // Εκτυπώστε τον αριθμό των δευτερολέπτων από την έναρξη του arduino lcd.print(millis()/1000); }

Όπως μπορείτε να δείτε, ο κωδικός είναι σχεδόν ο ίδιος.

Πώς μπορώ να προσθέσω το δικό μου σύμβολο;

Το πρόβλημα με αυτές τις οθόνες είναι ότι δεν υπάρχειυποστήριξη για κυριλλικά και σύμβολα. Για παράδειγμα, πρέπει να φορτώσετε κάποιο χαρακτήρα στην οθόνη ώστε να μπορεί να τον αντικατοπτρίζει. Για να το κάνετε αυτό, η οθόνη σάς επιτρέπει να δημιουργήσετε έως και 7 χαρακτήρες σας. Παρουσιάστε τον πίνακα:

0 0 0 1 0
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
0 0 0 1 0
0 0 0 0 0

Αν 0 - δεν υπάρχει τίποτα εκεί, αν 1 - είναι μια σκιασμένη περιοχή. Στο παραπάνω παράδειγμα, μπορείτε να δείτε τη δημιουργία του χαρακτήρα "smiling smiley". Χρησιμοποιώντας ένα παράδειγμα προγράμματος στο Arduino, θα μοιάζει με αυτό:


include include // Συμπεριλάβετε την απαιτούμενη βιβλιοθήκη // Bitmask σύμβολο χαμόγελου smile[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010, LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Ορισμός διάστασης οθόνης lcd.createChar(1, χαμόγελο); // Δημιουργία αριθμού χαρακτήρων 1 lcd.setCursor(0, 0); // Ρυθμίστε τον κέρσορα στην αρχή της γραμμής 1 lcd.print("\1"); // Εμφάνιση του smiley (αριθμός χαρακτήρων 1) - "\1" } void loop(){ }

Όπως μπορείτε να δείτε, δημιουργήθηκετο bitmask είναι το ίδιο με τον πίνακα. Μόλις δημιουργηθεί, μπορεί να βγει ως μεταβλητή στην οθόνη. Να θυμάστε ότι μόνο 7 χαρακτήρες μπορούν να αποθηκευτούν στη μνήμη. Καταρχήν, αυτό είναι αρκετό. Για παράδειγμα, εάν θέλετε να εμφανίσετε το σύμβολο του βαθμού.

Προσθήκη προσαρμοσμένων χαρακτήρων στην οθόνη LCD 1602
Προσθήκη προσαρμοσμένων χαρακτήρων στην οθόνη LCD 1602

Προβλήματα όπου η οθόνη ενδέχεται να μην λειτουργεί

Υπάρχουν φορές που η οθόνη δεν λειτουργεί. Για παράδειγμα, ενεργοποιείται, αλλά δεν εμφανίζει χαρακτήρες. Ή δεν ανάβει καθόλου. Πρώτα, δείτε αν συνδέσατε σωστά τις επαφές. Εάν συνδέατε την LCD 1202 στο Arduino χωρίς I2C, τότε είναι πολύ εύκολο να μπερδευτείτε στα καλώδια, γεγονός που μπορεί να προκαλέσει λανθασμένη λειτουργία της οθόνης. Θα πρέπει επίσης να βεβαιωθείτε ότι η αντίθεση της οθόνης είναι αυξημένη, καθώς στην ελάχιστη αντίθεση δεν είναι καν ορατό εάν η LCD 1602 είναι ενεργοποιημένη ή όχι. Εάν αυτό δεν βοηθήσει, τότε ίσως το πρόβλημα να βρίσκεται στη συγκόλληση των επαφών, αυτό συμβαίνει όταν χρησιμοποιείτε τη μονάδα I2C. Επίσης, ένας συνηθισμένος λόγος για τον οποίο η οθόνη ενδέχεται να μην λειτουργεί είναι η εσφαλμένη ρύθμιση της διεύθυνσης I2C. Το γεγονός είναι ότι υπάρχουν πολλοί κατασκευαστές και μπορούν να ορίσουν διαφορετική διεύθυνση, πρέπει να τη διορθώσετε εδώ:


LiquidCrystal_I2C lcd(0x27, 16, 2);

Σε αγκύλες μπορείτε να δείτε δύο τιμές, 0x27 και 16, 2 (16, 2 είναι το μέγεθος της οθόνης και 0x27 είναι μόνο η διεύθυνση I2C). Αντί για αυτές τις τιμές, μπορείτε να δοκιμάσετε να βάλετε 0x37 ή 0x3F. Λοιπόν, ένας άλλος λόγος είναι απλώς μια ελαττωματική LCD 1602. Λαμβάνοντας υπόψη ότι σχεδόν τα πάντα για το Arduino κατασκευάζονται στην Κίνα, δεν μπορείτε να είστε 100% σίγουροι ότι το αγορασμένοτο προϊόν δεν είναι ελαττωματικό.

LCD 1602 πλεονεκτήματα και μειονεκτήματα

Ας δούμε τα πλεονεκτήματα και τα μειονεκτήματα της LCD 1602.

Πλεονεκτήματα

  • Τιμή. Αυτή η ενότητα μπορεί να αγοραστεί σε πολύ προσιτή τιμή σε κινεζικά καταστήματα. Η τιμή είναι 200-300 ρούβλια. Μερικές φορές πωλείται ακόμη και με μια μονάδα I2C.
  • Εύκολη σύνδεση. Μάλλον κανείς δεν συνδέει LCD 1602 χωρίς I2C αυτές τις μέρες. Και με αυτήν την ενότητα, η σύνδεση διαρκεί μόνο 4 ακίδες, δεν θα υπάρχουν "ιστοί" καλωδίων.
  • Προγραμματισμός. Χάρη στις έτοιμες βιβλιοθήκες, η εργασία με αυτήν την ενότητα είναι εύκολη, όλες οι λειτουργίες είναι ήδη καταχωρημένες. Και αν χρειαστεί να προσθέσετε τον χαρακτήρα σας, χρειάζονται μόνο μερικά λεπτά.

Μειονεκτήματα

Κατά τη διάρκεια χρήσης από χιλιάδες ραδιοερασιτέχνες, δεν έχουν εντοπιστεί μεγάλα μειονεκτήματα, μόνο υπάρχουν περιπτώσεις αγοράς γάμου, αφού χρησιμοποιούνται κυρίως κινέζικες επιλογές προβολής

Αυτό το άρθρο εξέτασε τον τρόπο σύνδεσης της οθόνης LCD 1602 στο Arduino και παρουσίασε επίσης δείγματα προγραμμάτων για εργασία με αυτήν την οθόνη. Είναι πραγματικά ένα από τα καλύτερα στην κατηγορία του, δεν είναι μόνο ότι χιλιάδες ραδιοερασιτέχνες το επιλέγουν για τα έργα τους!

Συνιστάται: