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

Arduino Menu σε Nokia 5110 LCD Χρήση περιστροφικού κωδικοποιητή: 6 βήματα (με εικόνες)
Arduino Menu σε Nokia 5110 LCD Χρήση περιστροφικού κωδικοποιητή: 6 βήματα (με εικόνες)

Βίντεο: Arduino Menu σε Nokia 5110 LCD Χρήση περιστροφικού κωδικοποιητή: 6 βήματα (με εικόνες)

Βίντεο: Arduino Menu σε Nokia 5110 LCD Χρήση περιστροφικού κωδικοποιητή: 6 βήματα (με εικόνες)
Βίντεο: Top 5 Arduino Displays 2024, Ιούλιος
Anonim
Image
Image
Μενού Arduino σε ένα Nokia 5110 LCD χρησιμοποιώντας έναν περιστροφικό κωδικοποιητή
Μενού Arduino σε ένα Nokia 5110 LCD χρησιμοποιώντας έναν περιστροφικό κωδικοποιητή

Αγαπητοί φίλοι καλώς ήρθατε σε ένα άλλο σεμινάριο! Σε αυτό το βίντεο θα μάθουμε πώς να δημιουργήσουμε το δικό μας μενού για τη δημοφιλή οθόνη Nokia 5110 LCD, προκειμένου να κάνουμε τα έργα μας πιο φιλικά προς το χρήστη και πιο ικανά. Ας αρχίσουμε!

Αυτό είναι το έργο που πρόκειται να φτιάξουμε. Στην οθόνη εμφανίζεται ένα απλό μενού και με τη βοήθεια του περιστροφικού κωδικοποιητή μπορώ να περιηγηθώ πάνω ή κάτω και να επιλέξω ένα στοιχείο μενού πατώντας το κουμπί περιστροφικού κωδικοποιητή. Όταν πατηθεί το μεσαίο κουμπί του περιστροφικού κωδικοποιητή, εμφανίζεται μια άλλη οθόνη και μπορούμε να αλλάξουμε την τιμή μιας μεταβλητής. Εάν πατήσουμε για άλλη μια φορά το κουμπί περιστροφικού κωδικοποιητή, επιστρέφουμε στην οθόνη του κύριου μενού. Το μενού έχει 6 στοιχεία και μπορούμε να μετακινηθούμε προς τα κάτω ή προς τα πάνω και τα στοιχεία στην οθόνη θα αλλάξουν ανάλογα. Δείτε το συνημμένο βίντεο για να δείτε ακριβώς πώς λειτουργεί αυτό το μενού. Φυσικά μπορείτε να το τροποποιήσετε για να δημιουργήσετε τα δικά σας πιο περίπλοκα μενού, αν το επιθυμείτε.

Ας δούμε τώρα πώς να φτιάξουμε αυτό το έργο.

Βήμα 1: Αποκτήστε όλα τα μέρη

Πάρτε όλα τα μέρη
Πάρτε όλα τα μέρη

Τα μέρη που απαιτούνται για την κατασκευή αυτού του έργου είναι τα ακόλουθα:

  • Ένα Arduino Uno ▶
  • Οθόνη LCD Nokia 5110 ▶
  • A Rotary Encoder ▶
  • Ένα μικρό breadboard ▶
  • Μερικά καλώδια ▶
  • Power Bank ▶

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

Βήμα 2: Οθόνη LCD Nokia 5110

Image
Image
Χτίζοντας το Έργο
Χτίζοντας το Έργο

Το Nokia 5110 είναι η αγαπημένη μου οθόνη για τα έργα μου Arduino.

Το Nokia 5110 είναι μια βασική οθόνη γραφικών LCD που προοριζόταν αρχικά ως οθόνη κινητού τηλεφώνου. Χρησιμοποιεί τον ελεγκτή PCD8544, ο οποίος είναι ελεγκτής/οδηγός CMOS LCD χαμηλής ισχύος. Εξαιτίας αυτού, αυτή η οθόνη έχει εντυπωσιακή κατανάλωση ενέργειας. Χρησιμοποιεί μόνο 0,4mA όταν είναι ενεργοποιημένο αλλά ο οπίσθιος φωτισμός είναι απενεργοποιημένος. Χρησιμοποιεί λιγότερο από 0,06mA όταν βρίσκεται σε κατάσταση ύπνου! Αυτός είναι ένας από τους λόγους που κάνουν αυτήν την οθόνη την αγαπημένη μου. Το PCD8544 διασυνδέεται με μικροελεγκτές μέσω μιας διεπαφής σειριακού διαύλου. Αυτό καθιστά την οθόνη πολύ εύκολη στη χρήση με το Arduino. Χρειάζεται μόνο να συνδέσετε 8 καλώδια.

Έχω ετοιμάσει ένα λεπτομερές σεμινάριο για τον τρόπο χρήσης της οθόνης LCD Nokia 5110 με το Arduino. Έχω επισυνάψει αυτό το βίντεο σε αυτό το Instructable, θα παράσχει χρήσιμες πληροφορίες σχετικά με την οθόνη, οπότε σας ενθαρρύνω να το παρακολουθήσετε προσεκτικά. Το κόστος της οθόνης είναι περίπου $ 4.

Μπορείτε να το αποκτήσετε εδώ:

Βήμα 3: Περιστροφικός κωδικοποιητής

Image
Image

Ένας περιστροφικός κωδικοποιητής, που ονομάζεται επίσης κωδικοποιητής άξονα, είναι μια ηλεκτρομηχανική συσκευή που μετατρέπει τη γωνιακή θέση ή κίνηση ενός άξονα ή άξονα σε αναλογικό ή ψηφιακό κώδικα. Οι περιστροφικοί κωδικοποιητές χρησιμοποιούνται σε πολλές εφαρμογές που απαιτούν ακριβή απεριόριστη περιστροφή του άξονα, συμπεριλαμβανομένων βιομηχανικών χειριστηρίων, ρομποτικής, φωτογραφικών φακών ειδικής χρήσης, συσκευών εισόδου υπολογιστή (όπως οπτομηχανικά ποντίκια και σφαίρες), ελεγχόμενα ρεόμετρα τάσης και περιστρεφόμενες πλατφόρμες ραντάρ.

Ο περιστροφικός κωδικοποιητής που πρόκειται να χρησιμοποιήσουμε σε αυτό το έργο είναι ένας πολύ φθηνός κωδικοποιητής. Διαθέτει επίσης ένα κουμπί ενσωματωμένο και για να λειτουργήσει χρειάζεται μόνο να συνδέσουμε 5 καλώδια. Έχω προετοιμάσει ένα λεπτομερές σεμινάριο για τον τρόπο χρήσης ενός περιστροφικού κωδικοποιητή. Μπορείτε να βρείτε αυτό το βίντεο συνημμένο εδώ.

Το κόστος αυτού του περιστροφικού κωδικοποιητή είναι πολύ χαμηλό. Κοστίζει περίπου 1,5 δολάρια.

Μπορείτε να το αποκτήσετε εδώ ▶

Βήμα 4: Κατασκευή του έργου

Image
Image
Χτίζοντας το Έργο
Χτίζοντας το Έργο
Χτίζοντας το Έργο
Χτίζοντας το Έργο

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

Έχω τοποθετήσει την οθόνη σε μια μικρή σανίδα ψωμιού όπως αυτή. Ας συνδέσουμε πρώτα την οθόνη. Η πρώτη καρφίτσα της οθόνης που είναι Επαναφορά πηγαίνει στην ψηφιακή ακίδα 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 βιβλιοθήκες. Χρησιμοποιούμε δύο βιβλιοθήκες για την οθόνη και δύο για τον περιστροφικό κωδικοποιητή.

  1. Adafruit GFX:
  2. Nokia 5110:
  3. Βιβλιοθήκη κωδικοποιητή:
  4. Βιβλιοθήκη 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, μπορούμε να προσθέσουμε περισσότερες δυνατότητες στα έργα μας και να τις κάνουμε πιο φιλικές προς το χρήστη. Αυτό το απλό μενού που δημιουργήσαμε σήμερα μπορεί να βελτιωθεί. Θα μπορούσαμε να χρησιμοποιήσουμε διακοπές αντί να ελέγχουμε την κατάσταση των κουμπιών όλη την ώρα. Με αυτόν τον τρόπο μπορούμε να μειώσουμε την κατανάλωση ενέργειας του έργου και να κάνουμε τον κωδικό καθαρότερο. Θα ετοιμάσω σύντομα ένα βίντεο σχετικά με τις διακοπές, οπότε μείνετε συντονισμένοι. Θα ήθελα πολύ να ακούσω τη γνώμη σας για αυτό το έργο μενού. Το θεωρείτε χρήσιμο και σκοπεύετε να χρησιμοποιήσετε ένα μενού σε οποιοδήποτε έργο σας. Παρακαλώ δημοσιεύστε τις σκέψεις και τις ιδέες σας παρακάτω, ευχαριστώ!

Συνιστάται: