Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Η Liquid Crystal Library έχει δύο χρήσιμες λειτουργίες scrollDisplayLeft () και scrollDisplayRight (). Αυτές οι λειτουργίες μετακινούν ολόκληρη την οθόνη. Δηλαδή, μετακινούνται και οι δύο γραμμές σε LCD 1602 και οι τέσσερις γραμμές σε LCD 2004. Αυτό που χρειαζόμαστε συχνά είναι η δυνατότητα κύλισης μιας γραμμής σε αυτές τις οθόνες και όχι κύλισης ολόκληρης της οθόνης.
Αυτό το Instructable παρέχει δύο επιπλέον λειτουργίες, scrollInFromRight (γραμμή για εμφάνιση κειμένου, συμβολοσειρά προς κύλιση) και scrollInFromLeft (γραμμή για εμφάνιση κειμένου, συμβολοσειρά προς κύλιση). Αυτές οι δύο λειτουργίες που μετακινούν γραμμές στην οθόνη LCD σε συνδυασμό με τις δύο λειτουργίες, scrollLineRight (γραμμή για εμφάνιση κειμένου, συμβολοσειρά προς κύλιση) και scrollLineLeft (γραμμή για εμφάνιση κειμένου, συμβολοσειρά προς κύλιση) από το προηγούμενο Instructable μου, το οποίο παρουσιάστηκε λειτουργεί για να μετακινεί τις γραμμές από την οθόνη, μας δίνει αρκετούς ισχυρούς τρόπους για να ελέγξουμε πώς μπορεί να παρουσιαστεί ή να αφαιρεθεί το κείμενο σε μια οθόνη LCD.
Βήμα 1: Τι χρειάζεται
- Ανεξάρτητη οθόνη LCD 1602 ή 2004 ή ασπίδα LCD
- Δείτε παρακάτω τη σημείωση σχετικά με τη χρήση οθόνης LCD 2004
- Ένα Arduino UNO R3 ή κλώνος
- Καλώδιο USB για σύνδεση του Arduino σε υπολογιστή
- Μισό μέγεθος, 400 πόντοι ισοπαλίας, breadboard
- Το Arduino IDE
- Μια πειραματική πλατφόρμα (προαιρετική, αλλά χρήσιμη)
Τα στοιχεία που απαιτούνται είναι μια οθόνη LCD είτε 1602 είτε 2004 [εάν χρησιμοποιείται ένα 2004, θα λειτουργήσει χωρίς προβλήματα η κύλιση από τα δεξιά αλλάζοντας τη συνάρτηση lcd.begin () για να αντικατοπτρίζει ότι χρησιμοποιείτε τώρα μια γραμμή 20 χαρακτήρων x 4 απεικόνιση. [Για να μετακινηθείτε προς τα αριστερά χρησιμοποιώντας μια οθόνη 2004, είναι απαραίτητος ένας κωδικός επανεγγραφής της συνάρτησης s crollInFromLeft ()]. Εκτός από μια οθόνη LCD, θα χρειαστείτε ένα Arduino UNO ή κλώνο, το Arduino IDE και ένα καλώδιο USB για να συνδέσετε το Arduino σε έναν υπολογιστή.
Μπορείτε να χρησιμοποιήσετε ασπίδα LCD αντί για την αυτόνομη οθόνη LCD που εμφανίζεται εδώ. Εάν συμβαίνει αυτό, τότε οι αντιστοιχίσεις καρφιτσών για την οθόνη LCD στο παρακάτω σκίτσο θα πρέπει να αλλάξουν.
- Για την ανεξάρτητη οθόνη LCD 1602 χρησιμοποίησα τις ακόλουθες αντιστοιχίσεις καρφιτσών στα σκίτσα μου:
// LiquidCrystal (rs, enable, d4, d5, d6, d7)
LiquidCrystal LCD (12, 11, 5, 4, 3, 2);
και περιελάμβανε τη βιβλιοθήκη Liquid Crystal LiquidCrystal.h.
- Για την ασπίδα LCD, χρησιμοποιώ τις ακόλουθες αντιστοιχίσεις καρφιτσών στα σκίτσα μου και συμπεριλαμβάνω επίσης τη βιβλιοθήκη LiquidCrystal.h της Liquid Crystal.
// LiquidCrystal (rs, enable, d4, d5, d6, d7)
LiquidCrystal LCD (8, 13, 9, 4, 5, 6, 7);
Οποιαδήποτε διαδρομή θα εκτελέσει τον κωδικό εδώ, δηλαδή, είτε μια ασπίδα LCD είτε μια αυτόνομη οθόνη LCD. Μια αυτόνομη οθόνη LCD 1602 χρησιμοποιήθηκε σε αυτό το Instructable, αλλά όπως σημειώθηκε μια ασπίδα 1602 μπορεί επίσης να χρησιμοποιηθεί εάν ληφθούν υπόψη οι διαφορετικές εκχωρήσεις ακίδων.
Χρησιμοποίησα μια «πειραματική πλατφόρμα» για να συνδέσω το Arduino UNO σε ένα μισό μέγεθος, 400 πόντους ισοπαλίας. (Δείτε ένα παλαιότερο Instructable μου, "Experimental Platform For the Arduino UNO R3, How To Prepare It To Use"). Ωστόσο, μια πειραματική πλατφόρμα δεν χρειάζεται, αν και για μένα κάνει τη σύνδεση της οθόνης LCD με το UNO πολύ πιο εύκολη και ταχύτερη.
Οι εργασίες που χρησιμοποίησα για τη σύνδεση της οθόνης LCD με το UNO φαίνονται παραπάνω.
Βήμα 2: Σύνδεση
Η οθόνη LCD συνδέεται σε ένα breadboard και στη συνέχεια συνδέονται καλώδια από το breadboard στις κατάλληλες ακίδες του Arduino (δείτε το βήμα 2 εάν έχετε ερωτήσεις σχετικά με τις συνδέσεις που χρησιμοποίησα).
Προτίμησα μια αυτόνομη οθόνη LCD για αυτό το έργο παρά μια ασπίδα καθώς ήταν πιο ικανοποιητική για μένα και μου επέτρεψε να δω εύκολα ποιες καρφίτσες ήταν διαθέσιμες. Μου επιτρέπει επίσης να χρησιμοποιήσω ένα ποτενσιόμετρο που έχει ένα κουμπί και όχι ένα ποτενσιόμετρο ασπίδας που πρέπει να ρυθμιστεί με ένα κατσαβίδι.
Η αυτόνομη οθόνη LCD απαιτεί τη χρήση ξεχωριστού ποτενσιόμετρου 10k ohm. Όπως σημειώθηκε παραπάνω, χρησιμοποίησα ένα με ένα πόμολο που έχει τον υαλοκαθαριστήρα του συνδεδεμένο με τον τρίτο ακροδέκτη LCD (μετρώντας από τα δεξιά με τις ακίδες LCD στραμμένες προς το μέρος σας). Το ποτενσιόμετρο χρησιμοποιείται για τον έλεγχο της αντίθεσης της οθόνης LCD. Οι συνδέσεις είναι ίδιες για το 1602 και το 2004. Ωστόσο, η δήλωση lcd.begin (16, 2) πρέπει να αλλάξει στο σκίτσο σε lcd.begin (20, 4) για να δείξει ότι η οθόνη LCD μας άλλαξε από 16 χαρακτήρας από δύο γραμμές σε 20 χαρακτήρες με τέσσερις γραμμές μία.
Μια ματιά στις συνημμένες φωτογραφίες δείχνει τη σύνδεση που χρησιμοποίησα, συμπεριλαμβανομένης της πειραματικής πλατφόρμας και ποτενσιόμετρο 10k.
Βήμα 3: Το σκίτσο
Απλώς εισάγετε το συνημμένο σκίτσο στο Arduino IDE. Λάβετε υπόψη ότι ο ιστότοπος Instructable συχνά αφαιρεί όλες τις πινακίδες μεγαλύτερες και μικρότερες από και το κείμενο μεταξύ τους. Έτσι, να είστε σίγουροι και να συμπεριλάβετε το κείμενο, #include LiquidCrystal.h και να περικλείσετε τις λέξεις LiquidCrystal.h μέσα μεγαλύτερα και μικρότερα από σύμβολα.
// Σκίτσο για κύλιση χαρακτήρων σε οθόνη LCD
#include // Δείτε σημείωση στο κείμενο για το τι χρειάζεται εδώ, δηλαδή, LiquidCrystal.h που περικλείεται μέσα
// μεγαλύτερο και μικρότερο από σύμβολα
// Αυτός ο ιστότοπος καταργεί συχνά μεγαλύτερα και λιγότερα από σύμβολα και το κείμενο μεταξύ τους
// LiquidCrystal (rs, enable, d4, d5, d6, d7)
LiquidCrystal LCD (12, 11, 5, 4, 3, 2);
// Δηλώστε το LCD ως αντικείμενο LiquidCrystal
int i = 0;
int j = 0;
int k = 0;
int delayTime2 = 350; // Καθυστέρηση μεταξύ βάρδιων
void scrollInFromRight (int line, char str1 ) {
// Γράφτηκε από τον R. Jordan Kreindler Ιούνιος 2016
i = strlen (str1);
για (j = 16; j> = 0; j--) {
lcd.setCursor (0, γραμμή);
για (k = 0; k <= 15; k ++) {
lcd.print (""); // Διαγραφή γραμμής
}
lcd.setCursor (j, γραμμή);
lcd.print (str1);
καθυστέρηση (delayTime2)?
}
}
void scrollInFromLeft (int line, char str1 ) {
// Γράφτηκε από τον R. Jordan Kreindler Ιούνιος 2016
i = 40 - strlen (str1);
γραμμή = γραμμή - 1;
για (j = i; j <= i+16; j ++) {
για (k = 0; k <= 15; k ++) {
lcd.print (""); // Διαγραφή γραμμής
}
lcd.setCursor (j, γραμμή);
lcd.print (str1);
καθυστέρηση (delayTime2)?
}
}
void setup () {
Serial.begin (9600);
Serial.println ("Έναρξη δοκιμής …");
lcd. αρχή (16, 2);
lcd.clear ();
lcd.print ("Μόνο δοκιμή");
}
void loop () {
lcd.clear ();
scrollInFromRight (0, "Line1 From Right");
scrollInFromRight (1, "Line2 From Right");
lcd.clear ();
scrollInFromLeft (0, "Γραμμή1 από αριστερά.");
scrollInFromLeft (1, "Γραμμή2 από αριστερά.");
lcd.clear ();
scrollInFromRight (0, "Line1 From Right");
scrollInFromLeft (1, "Γραμμή2 από αριστερά.");
lcd.clear ();
}
Οι δύο λειτουργίες: scrollInFromRight (γραμμή για εμφάνιση κειμένου, συμβολοσειρά προς κύλιση) και scrollInFromLeft (γραμμή για εμφάνιση κειμένου, συμβολοσειρά προς κύλιση) μπορούν να μετακινηθούν στο σκίτσο σας για τον έλεγχο των γραμμών που μετακινούνται στην οθόνη LCD. Αυτές οι λειτουργίες παρέχουν έναν κομψό τρόπο μετακίνησης νέου κειμένου στην οθόνη.
Όταν συνδυάζονται με τις δύο λειτουργίες στο σκίτσο που περιέχονται στο Instructable «Μετακινηθείτε μία γραμμή LCD προς τα αριστερά ή προς τα δεξιά, Πώς», οι τέσσερις λειτουργίες παρέχουν κομψούς τρόπους κύλισης κειμένου πάνω και εκτός οθόνης LCD. Αυτές οι λειτουργίες σάς επιτρέπουν να μετακινείτε το κείμενο μία γραμμή τη φορά και δεν απαιτούν κύλιση ολόκληρης της οθόνης όπως και οι συναρτήσεις, scrollDisplayLeft () και scrollDisplayRight ().
Αυτή η δυνατότητα κύλισης μας επιτρέπει να παρουσιάζουμε γραμμές μεγαλύτερες από αυτές που η οθόνη είναι κανονικά ικανές να δείξουν. Δηλαδή, για μια οθόνη 1602 δεν περιοριζόμαστε μόνο σε 16 χαρακτήρες ανά γραμμή (αν και μόνο 16 θα εμφανίζονται κάθε φορά), και για ένα 2004 δεν περιοριζόμαστε σε 20 χαρακτήρες ανά γραμμή.
Από την άλλη πλευρά, μπορεί να θέλετε να προσαρμόσετε τον χρόνο εμφάνισης μεταξύ των κυλίνδρων για να ταιριάζει με τις ανάγκες σας.
Βήμα 4: Στη συνέχεια
Αυτό είναι το μόνο που υπάρχει. Αυτές οι λειτουργίες και οι δύο από το προηγούμενο Instructable μπορούν να προστεθούν σε οποιοδήποτε σκίτσο έχετε που χρησιμοποιεί LCD και εμφανίζει κείμενο. Όπως σημειώθηκε, η δυνατότητα χρήσης μεγαλύτερων γραμμών είναι ένα σαφές όφελος που είναι δυνατό με τη χρήση κύλισης.
Εάν θέλετε να επικοινωνήσετε μαζί μου για τυχόν απορίες ή για πρόσθετες πληροφορίες ή για να επεκτείνετε τις γνώσεις μου στον τομέα που παρουσιάζεται, μπορείτε να επικοινωνήσετε μαζί μου στη διεύθυνση [email protected]. (παρακαλώ αντικαταστήστε το δεύτερο "i" με ένα "e" για να επικοινωνήσετε μαζί μου.