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

Arduino DIY Υπολογιστής χρησιμοποιώντας 1602 LCD και πληκτρολόγιο 4x4: 4 βήματα
Arduino DIY Υπολογιστής χρησιμοποιώντας 1602 LCD και πληκτρολόγιο 4x4: 4 βήματα

Βίντεο: Arduino DIY Υπολογιστής χρησιμοποιώντας 1602 LCD και πληκτρολόγιο 4x4: 4 βήματα

Βίντεο: Arduino DIY Υπολογιστής χρησιμοποιώντας 1602 LCD και πληκτρολόγιο 4x4: 4 βήματα
Βίντεο: Display input voltage as bargraph on LCD using Arduino and potentiometer 2024, Νοέμβριος
Anonim
Arduino DIY Υπολογιστής χρησιμοποιώντας 1602 LCD και πληκτρολόγιο 4x4
Arduino DIY Υπολογιστής χρησιμοποιώντας 1602 LCD και πληκτρολόγιο 4x4

Γεια σας παιδιά σε αυτό το εκπαιδευτικό εγχειρίδιο θα φτιάξουμε μια αριθμομηχανή χρησιμοποιώντας το Arduino που μπορεί να κάνει βασικούς υπολογισμούς. Ουσιαστικά θα λάβουμε είσοδο από το πληκτρολόγιο 4x4 και θα εκτυπώσουμε τα δεδομένα σε οθόνη LCD 16x2 και το arduino θα κάνει τους υπολογισμούς.

Βήμα 1: Πράγματα που χρειάζεστε

Πράγματα που χρειάζεστε
Πράγματα που χρειάζεστε
Πράγματα που χρειάζεστε
Πράγματα που χρειάζεστε
Πράγματα που χρειάζεστε
Πράγματα που χρειάζεστε
Πράγματα που χρειάζεστε
Πράγματα που χρειάζεστε

Για αυτές τις οδηγίες, θα χρειαστούμε τα ακόλουθα πράγματα: Arduino Uno (Οποιαδήποτε έκδοση θα λειτουργήσει)

Οθόνη LCD 16 × 2

4 × 4 Πληκτρολόγιο 9V BatteryBreadboardΣύνδεση καλωδίων

Βήμα 2: Συνδέσεις

Συνδέσεις
Συνδέσεις
Συνδέσεις
Συνδέσεις

Το πλήρες διάγραμμα κυκλώματος αυτού του έργου αριθμομηχανής Arduino δίνεται παραπάνω. Η σύνδεση +5V και γείωσης που φαίνεται στο διάγραμμα κυκλώματος μπορεί να ληφθεί από την 5V και τον πείρο γείωσης του Arduino. Το ίδιο το Arduino μπορεί να τροφοδοτηθεί από το φορητό υπολογιστή σας ή μέσω της υποδοχής DC χρησιμοποιώντας προσαρμογέα 12V ή μπαταρία 9V. Λειτουργούμε την οθόνη LCD σε λειτουργία 4-bit με το Arduino, ώστε να συνδέονται μόνο τα τέσσερα τελευταία τεμάχια δεδομένων της οθόνης LCD με το Arduino. Το πληκτρολόγιο θα έχει 8 ακίδες εξόδου οι οποίες πρέπει να συνδεθούν από τον ακροδέκτη 0 έως τον ακροδέκτη 7, όπως φαίνεται παραπάνω. Ορισμένοι πίνακες Arduino ενδέχεται να εμφανίσουν σφάλμα κατά τη μεταφόρτωση του προγράμματος, εάν υπάρχει κάτι συνδεδεμένο με τον ακροδέκτη 0 και τον pin1, οπότε αν αντιμετωπίσετε κάποια απλή κατάργηση το πληκτρολόγιο κατά τη μεταφόρτωση του προγράμματος.

Βήμα 3: Κωδικός

Κώδικας
Κώδικας

Αντιγράψτε τον ακόλουθο κώδικα και ανεβάστε σε αυτό το arduino σας:/ * * Πρόγραμμα υπολογισμού πληκτρολογίου Arduino */#περιλαμβάνει "LiquidCrystal.h" // Αρχείο κεφαλίδας για LCD από τη διεύθυνση https://www.arduino.cc/en/Reference/LiquidCrystal# περιλαμβάνουν "Keypad.h" // Αρχείο κεφαλίδας για πληκτρολόγιο από https://github.com/Chris--A/Keypadconst byte ROWS = 4; // Τέσσερις γραμμέςconst byte COLS = 4; // Τρεις στήλες // Ορίστε τα πλήκτρα πληκτρολογίου [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; byte rowPins [ROWS] = {0, 1, 2, 3}; // Συνδέστε το πληκτρολόγιο ROW0, ROW1, ROW2 και ROW3 σε αυτές τις ακίδες Arduino.byte colPins [COLS] = {4, 5, 6, 7}; // Συνδέστε το πληκτρολόγιο COL0, COL1 και COL2 σε αυτές τις καρφίτσες Arduino. Keypad kpd = Πληκτρολόγιο (makeKeymap (κλειδιά), rowPins, colPins, ROWS, COLS). // Δημιουργήστε το Πληκτρολόγιο int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Καρφίτσες στις οποίες είναι συνδεδεμένη LCDLiquidCrystal LCD (rs, en, d4, d5, d6, d7) μακρύ Num1, Num2, Number? κλειδί char, δράση. boolean result = false; void setup () {lcd.begin (16, 2); // Χρησιμοποιούμε LCD οθόνη LCD 16*2 lcd.print ("DIY Calculator"). // Εμφάνιση μηνύματος εισαγωγής lcd.setCursor (0, 1); // ορίστε τον κέρσορα στη στήλη 0, γραμμή 1 καθυστέρηση (2000). // Περιμένετε μέχρι η οθόνη να εμφανίσει πληροφορίες lcd.clear (); // Στη συνέχεια, καθαρίστε το} void loop () {key = kpd.getKey (); // αποθήκευση τιμής πατημένου κλειδιού σε ένα charif (κλειδί! = NO_KEY) DetectButtons (); εάν (αποτέλεσμα == true) CalculateResult (); DisplayResult (); } void DetectButtons () {lcd.clear (); // Στη συνέχεια, καθαρίστε το εάν (πλήκτρο == '*') // Εάν το κουμπί ακύρωσης πατηθεί {Serial.println ("Button Cancel"); Αριθμός = Num1 = Num2 = 0; result = false;} if (key == '1') // If the Button 1 is pressed {Serial.println ("Button 1"); αν (Αριθμός == 0) Αριθμός = 1? else Αριθμός = (Αριθμός*10) + 1; // Πιέστηκε δύο φορές} εάν (πλήκτρο == '4') // Εάν πατηθεί το κουμπί 4 {Serial.println ("Κουμπί 4"); αν (Αριθμός == 0) Αριθμός = 4? else Αριθμός = (Αριθμός*10) + 4; // Πιέστηκε δύο φορές} εάν (πλήκτρο == '7') // Εάν πατηθεί το κουμπί 7 {Serial.println ("Κουμπί 7"); αν (Αριθμός == 0) Αριθμός = 7? else Αριθμός = (Αριθμός*10) + 7; // Πιέστηκε δύο φορές} if (key == '0') {Serial.println ("Button 0"); // Το κουμπί 0 πιέζεται εάν (Αριθμός == 0) Αριθμός = 0; else Αριθμός = (Αριθμός*10) + 0; // Πιέστηκε δύο φορές} εάν (πλήκτρο == '2') // Πιέζεται το κουμπί 2 {Serial.println ("Κουμπί 2"); εάν (Αριθμός == 0) Αριθμός = 2; else Αριθμός = (Αριθμός*10) + 2; // Πιέστηκε δύο φορές} if (key == '5') {Serial.println ("Button 5"); αν (Αριθμός == 0) Αριθμός = 5? else Αριθμός = (Αριθμός*10) + 5; // Πιέστηκε δύο φορές} if (key == '8') {Serial.println ("Button 8"); αν (Αριθμός == 0) Αριθμός = 8? else Αριθμός = (Αριθμός*10) + 8; // Πιέστηκε δύο φορές} if (key == '#') {Serial.println ("Button Equal"); Num2 = αριθμός. αποτέλεσμα = αλήθεια? } if (key == '3') {Serial.println ("Button 3"); αν (Αριθμός == 0) Αριθμός = 3? else Αριθμός = (Αριθμός*10) + 3; // Πιέστηκε δύο φορές} if (key == '6') {Serial.println ("Button 6"); αν (Αριθμός == 0) Αριθμός = 6? else Αριθμός = (Αριθμός*10) + 6; // Πιέστηκε δύο φορές} if (key == '9') {Serial.println ("Button 9"); αν (Αριθμός == 0) Αριθμός = 9? else Αριθμός = (Αριθμός*10) + 9; // Πιέστηκε δύο φορές} if (πλήκτρο == 'A' || πλήκτρο == 'B' || πλήκτρο == 'C' || πλήκτρο == 'D') // Ανίχνευση κουμπιών στη στήλη 4 {Num1 = Number; Αριθμός = 0; if (key == 'A') {Serial.println ("Addition"); action = '+';} if (key == 'B') {Serial.println ("Αφαίρεση"); δράση = '-'; } if (key == 'C') {Serial.println ("Πολλαπλασιασμός"); action = '*';} if (key == 'D') {Serial.println ("Devesion"); δράση = '/';} καθυστέρηση (100); }}

void CalculateResult () {if (action == '+') Number = Num1+Num2; if (action == '-') Number = Num1-Num2; if (action == '*') Number = Num1*Num2; if (action == '/') Number = Num1/Num2; } void DisplayResult () {lcd.setCursor (0, 0); // ορίστε τον κέρσορα στη στήλη 0, γραμμή 1 lcd.print (Num1); lcd.print (δράση); lcd.print (Num2); if (αποτέλεσμα == true) {lcd.print ("="); lcd.print (Number);} // Εμφάνιση του αποτελέσματος lcd.setCursor (0, 1); // ορίστε τον κέρσορα στη στήλη 0, γραμμή 1 lcd.print (Number); // Εμφάνιση του αποτελέσματος}

Βήμα 4: Έξοδος αριθμομηχανής

Έξοδος αριθμομηχανής
Έξοδος αριθμομηχανής
Έξοδος αριθμομηχανής
Έξοδος αριθμομηχανής
Έξοδος αριθμομηχανής
Έξοδος αριθμομηχανής

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

Συνιστάται: