Πίνακας περιεχομένων:
- Βήμα 1: Αποκτήστε όλα τα μέρη
- Βήμα 2: Οθόνη LCD Nokia 5110
- Βήμα 3: Περιστροφικός κωδικοποιητής
- Βήμα 4: Κατασκευή του έργου
- Βήμα 5: Ο Κώδικας του Έργου
- Βήμα 6: Δοκιμή του έργου
Βίντεο: Arduino Menu σε Nokia 5110 LCD Χρήση περιστροφικού κωδικοποιητή: 6 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Αγαπητοί φίλοι καλώς ήρθατε σε ένα άλλο σεμινάριο! Σε αυτό το βίντεο θα μάθουμε πώς να δημιουργήσουμε το δικό μας μενού για τη δημοφιλή οθόνη Nokia 5110 LCD, προκειμένου να κάνουμε τα έργα μας πιο φιλικά προς το χρήστη και πιο ικανά. Ας αρχίσουμε!
Αυτό είναι το έργο που πρόκειται να φτιάξουμε. Στην οθόνη εμφανίζεται ένα απλό μενού και με τη βοήθεια του περιστροφικού κωδικοποιητή μπορώ να περιηγηθώ πάνω ή κάτω και να επιλέξω ένα στοιχείο μενού πατώντας το κουμπί περιστροφικού κωδικοποιητή. Όταν πατηθεί το μεσαίο κουμπί του περιστροφικού κωδικοποιητή, εμφανίζεται μια άλλη οθόνη και μπορούμε να αλλάξουμε την τιμή μιας μεταβλητής. Εάν πατήσουμε για άλλη μια φορά το κουμπί περιστροφικού κωδικοποιητή, επιστρέφουμε στην οθόνη του κύριου μενού. Το μενού έχει 6 στοιχεία και μπορούμε να μετακινηθούμε προς τα κάτω ή προς τα πάνω και τα στοιχεία στην οθόνη θα αλλάξουν ανάλογα. Δείτε το συνημμένο βίντεο για να δείτε ακριβώς πώς λειτουργεί αυτό το μενού. Φυσικά μπορείτε να το τροποποιήσετε για να δημιουργήσετε τα δικά σας πιο περίπλοκα μενού, αν το επιθυμείτε.
Ας δούμε τώρα πώς να φτιάξουμε αυτό το έργο.
Βήμα 1: Αποκτήστε όλα τα μέρη
Τα μέρη που απαιτούνται για την κατασκευή αυτού του έργου είναι τα ακόλουθα:
- Ένα Arduino Uno ▶
- Οθόνη LCD Nokia 5110 ▶
- A Rotary Encoder ▶
- Ένα μικρό breadboard ▶
- Μερικά καλώδια ▶
- Power Bank ▶
Το κόστος του έργου είναι πολύ χαμηλό, είναι μικρότερο από $ 10. Μπορείτε να βρείτε συνδέσμους για όλα τα μέρη που χρησιμοποιώ στην περιγραφή του παρακάτω βίντεο.
Βήμα 2: Οθόνη LCD Nokia 5110
Το Nokia 5110 είναι η αγαπημένη μου οθόνη για τα έργα μου Arduino.
Το Nokia 5110 είναι μια βασική οθόνη γραφικών LCD που προοριζόταν αρχικά ως οθόνη κινητού τηλεφώνου. Χρησιμοποιεί τον ελεγκτή PCD8544, ο οποίος είναι ελεγκτής/οδηγός CMOS LCD χαμηλής ισχύος. Εξαιτίας αυτού, αυτή η οθόνη έχει εντυπωσιακή κατανάλωση ενέργειας. Χρησιμοποιεί μόνο 0,4mA όταν είναι ενεργοποιημένο αλλά ο οπίσθιος φωτισμός είναι απενεργοποιημένος. Χρησιμοποιεί λιγότερο από 0,06mA όταν βρίσκεται σε κατάσταση ύπνου! Αυτός είναι ένας από τους λόγους που κάνουν αυτήν την οθόνη την αγαπημένη μου. Το PCD8544 διασυνδέεται με μικροελεγκτές μέσω μιας διεπαφής σειριακού διαύλου. Αυτό καθιστά την οθόνη πολύ εύκολη στη χρήση με το Arduino. Χρειάζεται μόνο να συνδέσετε 8 καλώδια.
Έχω ετοιμάσει ένα λεπτομερές σεμινάριο για τον τρόπο χρήσης της οθόνης LCD Nokia 5110 με το Arduino. Έχω επισυνάψει αυτό το βίντεο σε αυτό το Instructable, θα παράσχει χρήσιμες πληροφορίες σχετικά με την οθόνη, οπότε σας ενθαρρύνω να το παρακολουθήσετε προσεκτικά. Το κόστος της οθόνης είναι περίπου $ 4.
Μπορείτε να το αποκτήσετε εδώ:
Βήμα 3: Περιστροφικός κωδικοποιητής
Ένας περιστροφικός κωδικοποιητής, που ονομάζεται επίσης κωδικοποιητής άξονα, είναι μια ηλεκτρομηχανική συσκευή που μετατρέπει τη γωνιακή θέση ή κίνηση ενός άξονα ή άξονα σε αναλογικό ή ψηφιακό κώδικα. Οι περιστροφικοί κωδικοποιητές χρησιμοποιούνται σε πολλές εφαρμογές που απαιτούν ακριβή απεριόριστη περιστροφή του άξονα, συμπεριλαμβανομένων βιομηχανικών χειριστηρίων, ρομποτικής, φωτογραφικών φακών ειδικής χρήσης, συσκευών εισόδου υπολογιστή (όπως οπτομηχανικά ποντίκια και σφαίρες), ελεγχόμενα ρεόμετρα τάσης και περιστρεφόμενες πλατφόρμες ραντάρ.
Ο περιστροφικός κωδικοποιητής που πρόκειται να χρησιμοποιήσουμε σε αυτό το έργο είναι ένας πολύ φθηνός κωδικοποιητής. Διαθέτει επίσης ένα κουμπί ενσωματωμένο και για να λειτουργήσει χρειάζεται μόνο να συνδέσουμε 5 καλώδια. Έχω προετοιμάσει ένα λεπτομερές σεμινάριο για τον τρόπο χρήσης ενός περιστροφικού κωδικοποιητή. Μπορείτε να βρείτε αυτό το βίντεο συνημμένο εδώ.
Το κόστος αυτού του περιστροφικού κωδικοποιητή είναι πολύ χαμηλό. Κοστίζει περίπου 1,5 δολάρια.
Μπορείτε να το αποκτήσετε εδώ ▶
Βήμα 4: Κατασκευή του έργου
Ας συνδέσουμε τώρα όλα τα μέρη μαζί. Πριν δημιουργήσετε αυτό το έργο, εάν δεν έχετε χρησιμοποιήσει περιστροφικό κωδικοποιητή στο παρελθόν, σας ενθαρρύνω να παρακολουθήσετε το σεμινάριο που έχω ετοιμάσει σχετικά με περιστροφικούς κωδικοποιητές. Θα σας βοηθήσει να καταλάβετε πώς λειτουργούν οι περιστροφικοί κωδικοποιητές και θα αποκτήσετε κάποια εμπειρία με αυτούς. Αυτό το βίντεο επισυνάπτεται εδώ.
Έχω τοποθετήσει την οθόνη σε μια μικρή σανίδα ψωμιού όπως αυτή. Ας συνδέσουμε πρώτα την οθόνη. Η πρώτη καρφίτσα της οθόνης που είναι Επαναφορά πηγαίνει στην ψηφιακή ακίδα 3 του Arduino Uno, η δεύτερη καρφίτσα πηγαίνει στην ψηφιακή ακίδα 4, η τρίτη καρφίτσα πηγαίνει στην ψηφιακή ακίδα 5, η τέταρτη ακίδα στην ψηφιακή ακίδα 11 και η πέμπτη ακίδα στην ψηφιακή ακίδα 13. Η επόμενη καρφίτσα είναι Vcc. Συνδέουμε το Vcc στη θετική ράγα του breadboard και τη θετική ράγα του breadboard στην έξοδο των 3.3V του Arduino. Το επόμενο pin είναι το Backlight για την οθόνη. Δεδομένου ότι θέλουμε να το ελέγξουμε μέσω του λογισμικού το συνδέουμε με την ψηφιακή ακίδα 7. Η τελευταία ακίδα είναι η GND. Συνδέουμε το GND με την αρνητική ράγα του breadboard και την αρνητική ράγα του breadboard με το Arduino GND.
Τώρα το μόνο που έχουμε να κάνουμε είναι να συνδέσουμε τον περιστροφικό κωδικοποιητή. Η πρώτη καρφίτσα είναι GND και τη συνδέουμε με αρνητική ράγα της σανίδας. Η επόμενη καρφίτσα είναι Vcc και τη συνδέουμε με τη θετική ράγα του breadboard. Ο επόμενος πείρος είναι SW και τον συνδέουμε με Analog Pin 2. Ο επόμενος πείρος ονομάζεται DT και τον συνδέουμε με Analog Pin 1. Τέλος ο πείρος CLK συνδέεται με τον Analog Pin 0. Μπορείτε να βρείτε το σχηματικό διάγραμμα αυτού του έργου στο την περιγραφή του παρακάτω βίντεο.
Τώρα είμαστε έτοιμοι να ενεργοποιήσουμε το έργο. Όπως μπορείτε να δείτε, το έργο λειτουργεί καλά και το μενού λειτουργεί όπως αναμενόταν! Τέλεια, ας δούμε τώρα το λογισμικό του έργου.
Βήμα 5: Ο Κώδικας του Έργου
Σε αυτό το έργο χρησιμοποιούμε 4 βιβλιοθήκες. Χρησιμοποιούμε δύο βιβλιοθήκες για την οθόνη και δύο για τον περιστροφικό κωδικοποιητή.
- Adafruit GFX:
- Nokia 5110:
- Βιβλιοθήκη κωδικοποιητή:
- Βιβλιοθήκη TimerOne:
Στην αρχή θα ρίξουμε μια ματιά στη συνάρτηση drawMenu. Αυτή η λειτουργία είναι υπεύθυνη για τη σχεδίαση του Μενού στην οθόνη. Αυτή η λειτουργία καλείται κάθε λίγα χιλιοστά του δευτερολέπτου, οπότε αν υπάρχει αλλαγή στο μενού αυτή η λειτουργία είναι υπεύθυνη για την ενημέρωση του μενού στην οθόνη.
int menuitem = 1; int πλαίσιο = 1; int σελίδα = 1; int lastMenuItem = 1;
Υπάρχουν επίσης 3 πολύ σημαντικές καθολικές μεταβλητές, η σελίδα μεταβλητών, η μεταβλητή μενού και το μεταβλητό πλαίσιο. Η μεταβλητή σελίδα θυμάται ποια οθόνη UI εμφανίζεται στην οθόνη. Έτσι, εάν η μεταβλητή σελίδας είναι 1, βρισκόμαστε στην κύρια οθόνη διεπαφής χρήστη και εάν η μεταβλητή είναι 2 είμαστε στη δευτερεύουσα οθόνη διεπαφής χρήστη όπου ορίζουμε την τιμή σε μια μεταβλητή. Το στοιχείο μενού θυμάται το επιλεγμένο στοιχείο μενού. Έτσι, εάν η τιμή του είναι 1, επιλέγεται το πρώτο στοιχείο μενού, οπότε η συνάρτηση drawMenu πρέπει να σχεδιάσει αυτό το στοιχείο μενού ως μαύρο με λευκά γράμματα. Εάν το στοιχείο μενού είναι 2, επιλέγεται το δεύτερο στοιχείο μενού και ούτω καθεξής. Η μεταβλητή πλαισίου, θυμάται ποιο μέρος του μενού εμφανίζεται στην οθόνη. Δεδομένου ότι το μενού που δημιουργήσαμε περιέχει 6 στοιχεία και μπορούμε να εμφανίσουμε μόνο 3 από αυτά τη φορά, πρέπει να γνωρίζουμε ποια στοιχεία εμφανίζονται στην οθόνη. Η μεταβλητή πλαισίου, μας λέει ακριβώς αυτό. Εάν η μεταβλητή πλαισίου έχει την τιμή 1, εμφανίζουμε τα τρία πρώτα στοιχεία μενού, αν είναι 2, εμφανίζουμε τα στοιχεία 2, 3, 4 κ.ο.κ.
Προσπάθησα να κάνω τον κώδικα όσο το δυνατόν πιο εύκολο να τροποποιηθεί, έτσι έχω δημιουργήσει κάποιες καθολικές μεταβλητές που περιέχουν τα ονόματα για τα στοιχεία του μενού. Με αυτόν τον τρόπο, μπορείτε να δημιουργήσετε εύκολα τα δικά σας μενού χωρίς αναζήτηση σε κώδικα.
String menuItem1 = "Αντίθεση"; String menuItem2 = "Ένταση"; String menuItem3 = "Γλώσσα"; String menuItem4 = "Δυσκολία"; String menuItem5 = "Light: ON"; String menuItem6 = "Επαναφορά";
boolean backlight = true?
int αντίθεση = 60; int όγκος = 50;
String language [3] = {"EN", "ES", "EL"};
int selectedLanguage = 0;
Δυσκολία συμβολοσειράς [2] = {"EASY", "HARD"};
int selectedDifficility = 0;
Αρχικά προετοιμάζουμε όλες τις καθολικές μεταβλητές που χρειάζονται στον κώδικα. Στη συνέχεια, αρχικοποιούμε την οθόνη. Στη λειτουργία βρόχου, στην αρχή καλούμε τη συνάρτηση drawMenu για να σχεδιάσουμε το μενού στην οθόνη. Στη συνέχεια διαβάζουμε την τιμή από τον κωδικοποιητή Rotary και ελέγχουμε αν πατηθεί το κουμπί. Για παράδειγμα, εάν βρισκόμαστε στην κύρια οθόνη διεπαφής χρήστη και έχει επιλεγεί το πρώτο στοιχείο μενού, εάν η τιμή από τον περιστροφικό κωδικοποιητή έχει αυξηθεί, η μεταβλητή μενού αυξάνεται και στον επόμενο βρόχο η συνάρτηση drawMenu θα σχεδιάσει το δεύτερο στοιχείο μενού ως επιλεγμένο. Εάν πατήσουμε τώρα το κουμπί του περιστροφικού κωδικοποιητή, μεταβαίνουμε στη δεύτερη σελίδα, όπου ορίζουμε την τιμή της μεταβλητής. Και πάλι χρησιμοποιώντας τον περιστροφικό κωδικοποιητή μπορούμε να αυξήσουμε ή να μειώσουμε την τιμή της μεταβλητής. Αν πατήσουμε το κουμπί, επιστρέφουμε στην κύρια σελίδα του μενού και η μεταβλητή σελίδας μειώνεται.
Αυτή είναι η βασική ιδέα πίσω από αυτό το μενού. Ακολουθούμε την ίδια διαδικασία για όλα τα στοιχεία και τις σελίδες του μενού. Ο κώδικας είναι περίπλοκος, έχει μήκος πάνω από 400 γραμμές. Φαίνεται περίπλοκο, αλλά αν το δοκιμάσετε μόνοι σας θα το καταλάβετε πιο εύκολα και θα μπορείτε να το αλλάξετε, να το επεκτείνετε και να το χρησιμοποιήσετε στα δικά σας έργα. Όπως πάντα, μπορείτε να βρείτε τον κωδικό που επισυνάπτεται εδώ.
Βήμα 6: Δοκιμή του έργου
Αν φορτώσουμε τον κώδικα μπορούμε να δούμε ότι το έργο λειτουργεί όπως αναμενόταν. Μπορούμε να περιηγηθούμε στο μενού πάνω και κάτω χρησιμοποιώντας τον άξονα και μπορούμε να επιλέξουμε οποιοδήποτε στοιχείο μενού πατώντας το κουμπί περιστροφικού κωδικοποιητή. Τι ωραίο που είναι!
Τώρα που γνωρίζουμε πώς να δημιουργούμε μενού για τις οθόνες LCD Nokia 5110, μπορούμε να προσθέσουμε περισσότερες δυνατότητες στα έργα μας και να τις κάνουμε πιο φιλικές προς το χρήστη. Αυτό το απλό μενού που δημιουργήσαμε σήμερα μπορεί να βελτιωθεί. Θα μπορούσαμε να χρησιμοποιήσουμε διακοπές αντί να ελέγχουμε την κατάσταση των κουμπιών όλη την ώρα. Με αυτόν τον τρόπο μπορούμε να μειώσουμε την κατανάλωση ενέργειας του έργου και να κάνουμε τον κωδικό καθαρότερο. Θα ετοιμάσω σύντομα ένα βίντεο σχετικά με τις διακοπές, οπότε μείνετε συντονισμένοι. Θα ήθελα πολύ να ακούσω τη γνώμη σας για αυτό το έργο μενού. Το θεωρείτε χρήσιμο και σκοπεύετε να χρησιμοποιήσετε ένα μενού σε οποιοδήποτε έργο σας. Παρακαλώ δημοσιεύστε τις σκέψεις και τις ιδέες σας παρακάτω, ευχαριστώ!
Συνιστάται:
Κουμπί περιστροφικού κωδικοποιητή: 6 βήματα
Κουμπί περιστροφικού κωδικοποιητή: Αυτό είναι ένα περιστροφικό τηλεχειριστήριο βασισμένο σε περιστροφικό κωδικοποιητή. Έχει τις ακόλουθες δυνατότητες. Μπαταρία που λειτουργεί με πολύ χαμηλή κατανάλωση ρεύματος όταν είναι ενεργοποιημένη Αυτόματη ενεργοποίηση όταν περιστρέφεται ο έλεγχος Αυτόματος ύπνος μετά από μια περίοδο αδράνειας Διαμόρφωση
Αντικατάσταση περιστροφικού κωδικοποιητή ISDT Q6: 4 βήματα
Αντικατάσταση περιστροφικού κωδικοποιητή ISDT Q6: Αυτό το σεμινάριο είναι για να βοηθήσει άτομα που οι κωδικοποιητές Q6 έχουν μεταβεί σε sh*t με την πάροδο του χρόνου είναι πλέον άχρηστοι. Το δικό μου άρχισε να κάνει κύλιση σε τυχαίες, ακανόνιστες κατευθύνσεις και ακόμη και μετά την ανάφλεξη των αρμών συγκόλλησης και τον καθαρισμό του κωδικοποιητή με οινόπνευμα ήταν ακόμα δυσάρεστο
Χρήση Stepper Motor ως περιστροφικού κωδικοποιητή: 9 βήματα (με εικόνες)
Χρήση Stepper Motor ως περιστροφικού κωδικοποιητή: Οι περιστροφικοί κωδικοποιητές είναι εξαιρετικοί για χρήση σε έργα μικροελεγκτών ως συσκευή εισόδου, αλλά η απόδοσή τους δεν είναι πολύ ομαλή και ικανοποιητική. Επίσης, έχοντας πολλά ανταλλακτικά βηματικά μοτέρ, αποφάσισα να τους δώσω έναν σκοπό. Αν λοιπόν έχετε λίγο βηματικό
Φροντιστήριο περιστροφικού κωδικοποιητή: 5 βήματα
Οδηγός περιστροφικού κιτ κωδικοποίησης: Περιγραφή: Αυτό το κιτ περιστροφικού κωδικοποιητή μπορεί να χρησιμοποιηθεί για την ανίχνευση της θέσης και της ταχύτητας του κινητήρα. Πρόκειται για ένα πολύ απλό κιτ που αποτελείται από έναν αισθητήρα οπτικής δέσμης (διακόπτης οπτικής λειτουργίας, φωτοτρανζίστορ) και ένα κομμάτι δίσκου με σχισμές. Μπορεί να συνδεθεί με οποιονδήποτε μικροέλεγχο
Φροντιστήριο περιστροφικού κωδικοποιητή με Arduino: 6 βήματα
Φροντιστήριο περιστροφικού κωδικοποιητή με Arduino: Ο περιστροφικός κωδικοποιητής είναι ένα ηλεκτρονικό εξάρτημα ικανό να παρακολουθεί την κίνηση και τη θέση κατά την περιστροφή. Ο περιστροφικός κωδικοποιητής χρησιμοποιεί οπτικούς αισθητήρες που μπορούν να παράγουν παλμούς όταν περιστρέφεται ο περιστροφικός κωδικοποιητής. Εφαρμογή του περιστροφικού κωδικοποιητή συνήθως ως μηχανή