- Απαιτούμενα συστατικά
- Δημιουργία δομής για την ταξινόμηση κερμάτων Arduino
- Διάγραμμα κυκλώματος
- Προγραμματισμός του Arduino
- Λειτουργία μετρητή νομισμάτων Arduino
Προηγουμένως κατασκευάσαμε μια μηχανή μέτρησης νομισμάτων χαρτιού με βάση το Arduino χρησιμοποιώντας έναν αισθητήρα χρώματος. Τώρα σε αυτό το έργο κατασκευάζουμε μια μηχανή μέτρησης Arduino χρησιμοποιώντας αισθητήρες IR. Αυτό το μηχάνημα μετρά και ταξινομεί τα νομίσματα σε διαφορετικά τμήματα με τη βοήθεια ενός αισθητήρα υπερύθρων. Εδώ, γίνεται μια ρύθμιση όπου οι αισθητήρες υπερύθρων τοποθετούνται για την ανίχνευση διαφορετικών νομισμάτων και το Arduino UNO χρησιμοποιείται για την επεξεργασία των δεδομένων και για την εμφάνιση της συνολικής τιμής μέτρησης σε LCD 16x2.
Απαιτούμενα συστατικά
- Arduino UNO
- Αισθητήρας υπερύθρων
- Ψωμί
- 16 * 2 αλφαριθμητική LCD
- Μονάδα I2C για αλφαριθμητική οθόνη LCD 16x2 (1602)
- Σύνδεση καλωδίων
Δημιουργία δομής για την ταξινόμηση κερμάτων Arduino
Βήμα 1: Πάρτε ένα φύλλο χαρτονιού και επισημάνετε για διαφορετικά μεγέθη νομισμάτων όπως φαίνεται στο παρακάτω σχήμα. Στη συνέχεια, κόψτε προσεκτικά τις επισημασμένες μερίδες. Η κοπή αυτών των τμημάτων πρέπει να γίνει με ακρίβεια. Διαφορετικά, το έργο ενδέχεται να μην λειτουργεί τέλεια.
Βήμα 2: Τοποθετήστε την παραπάνω διάταξη σε μια κλίση δομή σύμφωνα με την εικόνα που φαίνεται παρακάτω. Αφού κάνετε τη ρύθμιση, ελέγξτε την εισάγοντας διαφορετικά νομίσματα στην πλαγιά για να βεβαιωθείτε ότι η διάταξη λειτουργεί τέλεια. Εάν το κέρμα δεν εισάγεται σωστά, τότε αυξήστε ελαφρώς το μέγεθος της τρύπας σύμφωνα με το νόμισμα και ελέγξτε ξανά μέχρι να επιτύχετε τη λειτουργία.
Βήμα 3: Τοποθετήστε τους αισθητήρες υπερύθρων κοντά στη διαδρομή εξόδου μεμονωμένων νομισμάτων. Είναι πολύ σημαντικό να τοποθετήσετε σωστά τους αισθητήρες και να τους βαθμονομήσετε χρησιμοποιώντας το ποτενσιόμετρο τους. Στη συνέχεια, εισαγάγετε ξανά τα νομίσματα για να ελέγξετε τη λειτουργία του αισθητήρα. Μάθετε περισσότερα για το κύκλωμα αισθητήρα υπερύθρων εδώ.
Διάγραμμα κυκλώματος
Ακολουθεί το διάγραμμα κυκλώματος για τη μηχανή μέτρησης Arduino:
Εδώ, οι αισθητήρες υπερύθρων τοποθετούνται σε διαφορετικές διαδρομές εξόδου της μηχανής διαλογής κερμάτων για την ανίχνευση των νομισμάτων. Όταν ένα κέρμα εισάγεται σε αυτόν τον μετρητή νομισμάτων Arduino, μπαίνει στην ειδική διαδρομή σύμφωνα με τη μηχανική σχεδίαση και ο αντίστοιχος αισθητήρας IR ανιχνεύει το νόμισμα και δίνει ΥΨΗΛΗ τιμή εξόδου στο Arduino που μπορεί να διαβαστεί από τις αναλογικές ακίδες του Arduino. Ο αισθητήρας IR που δίνει ΥΨΗΛΗ τιμή, αποφασίζει την τιμή του νομίσματος όπως 2/5/10 Ρουπίες.
Εδώ μια αλφαριθμητική οθόνη LCD 16x2 συνδέεται με το Arduino χρησιμοποιώντας μια μονάδα I2C, για να εμφανίσει τον αριθμό των νομισμάτων που έχουν εισαχθεί στο κουτί. Αυτή η οθόνη LCD μπορεί επίσης να συνδεθεί απευθείας στο Arduino χωρίς τη χρήση της μονάδας I2C, αλλά αυτό απαιτεί περισσότερο αριθμό συνδέσεων. Για να το κάνουμε απλούστερο, χρησιμοποιείται μια μονάδα I2C μαζί με LCD, η οποία χρησιμοποιεί μόνο 2 ακίδες, δηλαδή SCL, SDA για σύνδεση LCD με Arduino. Για την τροφοδοσία του Arduino, χρησιμοποιείται ένας προσαρμογέας 12VDC, 1 AMP AC-DC, ο οποίος μπορεί να συνδεθεί απευθείας στην πρίζα του Arduino.
Μετά από μια μικρή ενημέρωση, η πλήρης ρύθμιση για το Arduino Based Coin Sorter θα μοιάζει παρακάτω:
Προγραμματισμός του Arduino
Μετά από επιτυχημένες συνδέσεις υλικού, τώρα ήρθε η ώρα να προγραμματίσετε το Arduino. Ο πλήρης κωδικός για το Arduino δίνεται στο κάτω μέρος αυτού του σεμιναρίου. Η σταδιακή εξήγηση του κώδικα δίνεται παρακάτω:
Το πρώτο πράγμα που πρέπει να κάνετε στο πρόγραμμα είναι να συμπεριλάβετε όλες τις απαιτούμενες βιβλιοθήκες. Εδώ στην περίπτωσή μου, έχω συμπεριλάβει τη βιβλιοθήκη " LiquidCrystal_I2C.h" για τη χρήση της διεπαφής I2C μιας οθόνης LCD και " Wire.h " για τη χρήση της λειτουργικότητας I2C στο Arduino.
#περιλαμβάνω
Μέσα στην εγκατάσταση (), οι εντολές LCD γράφονται για την εμφάνιση ενός μηνύματος καλωσορίσματος στην οθόνη LCD.
lcd.init (); lcd.backlight (); lcd.setCursor (0,0); lcd.print ("ARDUINO BASED"); lcd.setCursor (0,1); lcd.print ("ΚΟΙΝΟΠΟΙΗΣΗ"); καθυστέρηση (2000); lcd.clear ();
Στο εσωτερικό βρόχο (), η λειτουργία analogRead χρησιμοποιείται για την ανάγνωση των τιμών του αισθητήρα υπερύθρων, από διαφορετικά αναλογικά κανάλια του Arduino και την αποθήκευσή τους σε διαφορετικές μεταβλητές.
int s1 = analogRead (A0); int s2 = analogRead (A1); int s3 = analogRead (A2);
Στη συνέχεια, ο παρακάτω κώδικας γράφεται για να κατανοήσει τα νομίσματα και να αυξήσει τις τιμές μετρητών νομισμάτων. Εδώ χρησιμοποιείται μια τιμή σημαίας f1 για την αποφυγή πολλαπλών μετρήσεων των κερμάτων.
αν (s1> = 200 && f1 == 0) {f1 = 1; } αλλιώς εάν (s1 <200 && f1 == 1) {f1 = 0; c1 ++; }
Τέλος, οι τιμές μέτρησης εμφανίζονται στην οθόνη LCD, χρησιμοποιώντας τις παρακάτω εντολές.
lcd.setCursor (0,0); lcd.print ("RS10 RS2 RS5"); lcd.setCursor (1,1); lcd.print (c1); lcd.setCursor (7,1); lcd.print (c2); lcd.setCursor (14,1); lcd.print (c3);
Λειτουργία μετρητή νομισμάτων Arduino
Μετά την πλήρη ρύθμιση και τη μεταφόρτωση του κωδικού, ενεργοποιήστε το τροφοδοτικό DC 12V. Πρώτον, ένα μήνυμα καλωσορίσματος θα εμφανιστεί στην οθόνη LCD και μετά από λίγα δευτερόλεπτα, μια οθόνη με τον αριθμό όλων των διαθέσιμων νομισμάτων θα εμφανιστεί στην οθόνη LCD. Στην αρχή, θα εμφανιστεί μηδέν καθώς δεν έχουμε προσθέσει κέρματα ακόμη.
Στη συνέχεια, τοποθετήστε οποιοδήποτε κέρμα (Rs. 2/5/10) στο πάνω μέρος του μηχανήματος όπου γράφεται το " Insert Coin ". Τώρα θα δείτε ότι η αξία του νομίσματος πρέπει να ενημερωθεί στην οθόνη LCD. Στη συνέχεια, Εισάγετε πολλά νομίσματα διαφορετικών τιμών και ελέγξτε το πλήθος των αντίστοιχων νομισμάτων στην οθόνη LCD.
Ο πλήρης κωδικός μαζί με ένα βίντεο δίνεται παρακάτω.