- Απαιτούμενα υλικά:
- Διάγραμμα κυκλώματος:
- Πρόγραμμα αριθμομηχανών Arduino:
- Προσομοίωση αριθμομηχανής Arduino:
- Εργασία του Arduino Calculator:
Ο προγραμματισμός είναι πάντα διασκεδαστικός και το Arduino είναι μια υπέροχη πλατφόρμα αν μόλις ξεκινήσετε με τον ενσωματωμένο προγραμματισμό. Σε αυτό το σεμινάριο θα δημιουργήσουμε τη δική μας αριθμομηχανή με το Arduino. Οι τιμές μπορούν να σταλούν μέσω ενός πληκτρολογίου (πληκτρολόγιο 4 × 4) και το αποτέλεσμα μπορεί να προβληθεί σε μια οθόνη LCD (16 × 2 Dot-matrix). Αυτός ο υπολογιστής θα μπορούσε να εκτελεί απλές λειτουργίες όπως Προσθήκη, Αφαίρεση, Πολλαπλασιασμός και Διαίρεση με ακέραιους αριθμούς. Αλλά μόλις καταλάβετε την ιδέα, μπορείτε να εφαρμόσετε ακόμη και επιστημονικές λειτουργίες με τις ενσωματωμένες λειτουργίες του Arduino.
Στο τέλος αυτού του έργου, θα ξέρετε πώς να χρησιμοποιείτε LCD 16x2 και πληκτρολόγιο με το Arduino και επίσης πόσο εύκολο είναι να προγραμματίσετε για αυτούς χρησιμοποιώντας τις εύκολα διαθέσιμες βιβλιοθήκες. Θα καταλάβετε επίσης πώς να προγραμματίσετε το Arduino σας για την εκτέλεση μιας συγκεκριμένης εργασίας.
Απαιτούμενα υλικά:
- Arduino Uno (Οποιαδήποτε έκδοση θα λειτουργήσει)
- Οθόνη LCD 16 × 2
- Πληκτρολόγιο 4 × 4
- Μπαταρία 9V
- Καλώδια Breadboard και σύνδεσης
Διάγραμμα κυκλώματος:
Το πλήρες διάγραμμα κυκλώματος αυτού του Arduino Calculator Project δίνεται παραπάνω. Η σύνδεση +5V και γείωσης που φαίνεται στο διάγραμμα κυκλώματος μπορεί να ληφθεί από τον πείρο 5V και γείωσης του Arduino. Το ίδιο το Arduino μπορεί να τροφοδοτηθεί από τον φορητό υπολογιστή σας ή μέσω της υποδοχής DC χρησιμοποιώντας έναν προσαρμογέα 12V ή μια μπαταρία 9V.
Λειτουργούμε την οθόνη LCD σε λειτουργία 4 bit με το Arduino, επομένως μόνο τα τέσσερα τελευταία bit δεδομένων της οθόνης LCD είναι συνδεδεμένα στο Arduino. Το πληκτρολόγιο θα έχει 8 ακίδες εξόδου που πρέπει να συνδεθούν από τον ακροδέκτη 0 έως τον ακροδέκτη 7 όπως φαίνεται παραπάνω. Μπορείτε να χρησιμοποιήσετε τον παρακάτω πίνακα σύνδεσης για να επαληθεύσετε τη σύνδεσή σας με το Arduino, μπορείτε επίσης να ελέγξετε τη διεπαφή πληκτρολογίου 4x4 με το Arduino.
Όνομα Pin Arduino: |
Συνδεδεμένος με: |
Δ0 |
1 ος pin του πληκτρολογίου |
Δ1 |
2 ος pin του πληκτρολογίου |
Δ2 |
3 ος pin του πληκτρολογίου |
Δ3 |
4 η ακίδα του πληκτρολογίου |
Δ4 |
5 η ακίδα του πληκτρολογίου |
Δ5 |
6 η ακίδα του πληκτρολογίου |
Δ6 |
7 η ακίδα του πληκτρολογίου |
Δ7 |
8 η ακίδα του πληκτρολογίου |
Δ8 |
Καταχωρίστε επιλεγμένη καρφίτσα LCD (ακίδα 4) |
Δ9 |
Ενεργοποίηση ακίδας LCD (ακίδα 6) |
Δ10 |
Καρφίτσα δεδομένων 4 (ακίδα 11) |
Δ11 |
Καρφίτσα δεδομένων 4 (ακίδα 11) |
Δ12 |
Καρφίτσα δεδομένων 4 (ακίδα 11) |
Δ13 |
Καρφίτσα δεδομένων 4 (ακίδα 11) |
+ 5V |
Συνδεδεμένο με καρφίτσα οθόνης LCD (pin 2) |
Εδαφος |
Συνδεδεμένο με Vss, Vee και RW pin LCD (ακροδέκτης 1,3 και 5) |
Ορισμένες πλακέτες Arduino ενδέχεται να εμφανίζουν ένα σφάλμα κατά τη μεταφόρτωση του προγράμματος, εάν υπάρχει κάτι συνδεδεμένο με το pin 0 και το pin1, οπότε αν αντιμετωπίσετε κάποιο πρόβλημα, απλώς αφαιρέστε το πληκτρολόγιο κατά τη μεταφόρτωση του προγράμματος.
Μόλις ολοκληρωθούν οι συνδέσεις σας, το υλικό σας θα μοιάζει με αυτό παρακάτω
Πρόγραμμα αριθμομηχανών Arduino:
Το πλήρες πρόγραμμα Arduino για αυτό το έργο δίνεται στο τέλος αυτού του έργου. Ο κωδικός χωρίζεται σε μικρά μικρά κομμάτια και εξηγείται παρακάτω.
Όπως ειπώθηκε νωρίτερα, θα συνδέσουμε ένα LCD και ένα πληκτρολόγιο με το Arduino χρησιμοποιώντας βιβλιοθήκες. Ας τα προσθέσουμε λοιπόν στο Arduino IDE πρώτα. Η βιβλιοθήκη για LCD περιλαμβάνεται ήδη στο Arduino από προεπιλογή, οπότε δεν χρειάζεται να ανησυχείτε για αυτό. Για τη βιβλιοθήκη πληκτρολογίων κάντε κλικ στο σύνδεσμο για να το κατεβάσετε από το Github Θα λάβετε ένα αρχείο ZIP και, στη συνέχεια, προσθέστε αυτό το lib στο Arduino by Sketch -> Συμπερίληψη βιβλιοθήκης -> Προσθήκη αρχείου.ZIP και δείξτε την τοποθεσία σε αυτό το ληφθέν αρχείο. Μόλις τελειώσουμε, είμαστε όλοι έτοιμοι για προγραμματισμό.
Ακόμα κι αν έχουμε χρησιμοποιήσει μια βιβλιοθήκη για τη χρήση ενός πληκτρολογίου, πρέπει να αναφέρουμε μερικές λεπτομέρειες (φαίνεται παρακάτω) σχετικά με το πληκτρολόγιο στο Arduino. Η μεταβλητή ROWS και COLS θα δείξει πόσες σειρές και στήλες έχει το πληκτρολόγιο μας και ο χάρτης πληκτρολογίου δείχνει τη σειρά με την οποία υπάρχουν τα πλήκτρα στο πληκτρολόγιο. Το πληκτρολόγιο που χρησιμοποιώ σε αυτό το έργο μοιάζει με το παρακάτω στον βασικό χάρτη επίσης αντιπροσωπεύει το ίδιο.
Παρακάτω αναφέρουμε σε ποιους ακροδέκτες συνδέεται το πληκτρολόγιο χρησιμοποιώντας τις μεταβλητές arrayPins και colPins .
const byte ROWS = 4; // Τέσσερις σειρές const byte COLS = 4; // Τρεις στήλες // Ορίστε τα πλήκτρα Charmap = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'} '7', '8', '9', 'C'}, {'*', '0', '#', 'D'}} byte rowPins = {0, 1, 2, 3}; // Συνδέστε το πληκτρολόγιο ROW0, ROW1, ROW2 και ROW3 σε αυτές τις καρφίτσες Arduino. byte colPins = {4, 5, 6, 7}; // Συνδέστε το πληκτρολόγιο COL0, COL1 και COL2 σε αυτές τις ακίδες Arduino.
Μόλις αναφέρουμε τι τύπο πληκτρολογίου χρησιμοποιούμε και πώς συνδέεται, μπορούμε να δημιουργήσουμε το πληκτρολόγιο χρησιμοποιώντας αυτές τις λεπτομέρειες χρησιμοποιώντας την παρακάτω γραμμή
Πληκτρολόγιο kpd = Πληκτρολόγιο (makeKeymap (πλήκτρα), rowPins, colPins, ROWS, COLS); // Δημιουργήστε το πληκτρολόγιο
Ομοίως, πρέπει επίσης να πούμε σε ποιες καρφίτσες του Arduino είναι συνδεδεμένη η LCD. Σύμφωνα με το διάγραμμα κυκλώματος, οι ορισμοί θα είναι όπως παρακάτω
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Καρφίτσες με τις οποίες είναι συνδεδεμένη η οθόνη LCD LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // δημιουργήστε την οθόνη LCD
Μέσα στη λειτουργία εγκατάστασης , εμφανίζουμε απλώς το όνομα του έργου και μετά προχωράμε στο while loop όπου βρίσκεται το κύριο έργο.
Βασικά, πρέπει να ελέγξουμε εάν κάτι πληκτρολογείται στο πληκτρολόγιο, εάν πληκτρολογηθεί πρέπει να αναγνωρίσουμε τι πληκτρολογείται και στη συνέχεια να το μετατρέψουμε σε μεταβλητή όταν πατηθεί το "=" πρέπει να υπολογίσουμε το αποτέλεσμα και στη συνέχεια να το εμφανίσουμε στην οθόνη LCD. Αυτό ακριβώς γίνεται στη λειτουργία βρόχου όπως φαίνεται παρακάτω
key = kpd.getKey (); // αποθήκευση πατημένης τιμής κλειδιού σε char if (κλειδί! = NO_KEY) DetectButtons (); if (αποτέλεσμα == true) CalculateResult (); DisplayResult ();
Αυτό που συμβαίνει μέσα σε κάθε λειτουργία εξηγείται χρησιμοποιώντας τις γραμμές σχολίων, διαβάστε τον πλήρη κώδικα παρακάτω, παίξτε με αυτό για να καταλάβετε πώς λειτουργεί πραγματικά. Εάν έχετε οποιαδήποτε αμφιβολία για μια συγκεκριμένη γραμμή, μη διστάσετε να χρησιμοποιήσετε την ενότητα σχολίων ή τα φόρουμ.
Προσομοίωση αριθμομηχανής Arduino:
Μπορούμε επίσης να δοκιμάσουμε την προσομοίωση του έργου χρησιμοποιώντας λογισμικό Proteus. Το Proteus δεν έχει μόνο ένα συστατικό Arduino, αλλά μπορεί εύκολα να μεταφορτωθεί και να προστεθεί στη βιβλιοθήκη του. Μόλις έχετε το συστατικό Arduino στο Proteus, απλώς προσθέστε αλφαριθμητικά LCD και πληκτρολόγιο για να κάνετε τη σύνδεση όπως φαίνεται στο διάγραμμα κυκλώματος.
Στη συνέχεια, κατεβάστε το εξάγωνο αρχείο από εδώ και προσθέστε το στο Arduino κάνοντας διπλό κλικ στην πλακέτα στο Proteus και τοποθετήστε το "αρχείο προγράμματος" σε αυτό το ληφθέν εξάγωνο αρχείο. Ένα στιγμιότυπο της προσομοίωσης φαίνεται παρακάτω, το πλήρες έργο εμφανίζεται στο παρακάτω βίντεο.
Σημείωση: Το αρχείο hex που δίνεται δεν είναι το ίδιο με το πρωτότυπο του προγράμματος που δίνεται παρακάτω. Έχει τροποποιηθεί από τότε που ο χάρτης κλειδιών του πληκτρολογίου προσομοίωσης και το πραγματικό πληκτρολόγιο υλικού είναι διαφορετικός.
Εργασία του Arduino Calculator:
Πραγματοποιήστε τις συνδέσεις σύμφωνα με το διάγραμμα κυκλώματος και ανεβάστε τον παρακάτω κώδικα. Εάν εμφανιστεί σφάλμα, βεβαιωθείτε ότι έχετε προσθέσει τη βιβλιοθήκη σύμφωνα με τις οδηγίες που δίνονται παραπάνω. Μπορείτε επίσης να δοκιμάσετε την προσομοίωση για να ελέγξετε αν το πρόβλημα είναι με το υλικό σας. Εάν όλα γίνουν όπως θα έπρεπε, τότε το υλικό σας θα μοιάζει με αυτό παρακάτω με την οθόνη LCD να το εμφανίζει
Επειδή το πληκτρολόγιο που χρησιμοποιείται εδώ δεν έχει κατάλληλη σήμανση σε αυτό, έχω υποθέσει ότι τα αλφάβητα είναι τελεστές όπως αναφέρονται παρακάτω
Χαρακτήρας στο πληκτρολόγιο |
Υποτίθεται ότι είναι |
"ΕΝΑ" |
Προσθήκη (+) |
"ΣΙ" |
Αφαίρεση (-) |
"ΝΤΟ" |
Πολλαπλασιασμός (*) |
"ΡΕ" |
Τμήμα (/) |
«*» |
Καθαρισμός (C) |
"#" |
Ισούται (=) |
Μπορείτε να χρησιμοποιήσετε έναν δείκτη για να γράψετε τι αντιπροσωπεύει πραγματικά κάθε κουμπί.
Με αυτό, μπορείτε να αρχίσετε να χρησιμοποιείτε την αριθμομηχανή. Πληκτρολογεί τον αριθμό και θα εμφανιστεί στη δεύτερη γραμμή, πατήστε τον τελεστή και πληκτρολογήστε τον δεύτερο αριθμό σας, τέλος πατήστε το πλήκτρο "#" για να λάβετε το αποτέλεσμα. Μπορείτε επίσης να δοκιμάσετε να δημιουργήσετε αυτήν την αριθμομηχανή Arduino με οθόνη αφής.