Οι αυτόματες μηχανές πλήρωσης μπουκαλιών χρησιμοποιούνται συνήθως στις βιομηχανίες ποτών και αναψυκτικών. Αυτά τα μηχανήματα χρησιμοποιούν έναν μεταφορικό ιμάντα που είναι ένας οικονομικός και γρήγορος τρόπος πλήρωσης φιαλών. Κυρίως τα PLC χρησιμοποιούνται για αυτόματες μηχανές πλήρωσης φιαλών, αλλά μπορείτε να φτιάξετε ένα πολύ βασικό και ευέλικτο πληρωτικό μπουκαλιών χρησιμοποιώντας ένα Arduino. Μπορείτε να προγραμματίσετε το Arduino για αυτόματη ανίχνευση της φιάλης χρησιμοποιώντας αισθητήρα υπερύθρων ή υπερήχων και να επιτρέψετε στον εμφιαλωτή να γεμίσει σταματώντας τον ιμάντα μεταφοράς για κάποιο χρονικό διάστημα. Στη συνέχεια, μετακινήστε ξανά τη ζώνη και σταματήστε όταν εντοπίζεται το επόμενο μπουκάλι.
Εδώ πρόκειται να σχεδιάσουμε ένα πρωτότυπο για αυτόματο μηχάνημα πλήρωσης μπουκαλιών χρησιμοποιώντας Arduino Uno, μεταφορική ταινία, ηλεκτρομαγνητική βαλβίδα, αισθητήρα IR και κινητήρα Stepper. Ο μεταφορέας ιμάντα κινείται από έναν βηματικό κινητήρα με σταθερή προκαθορισμένη ταχύτητα. Ο κινητήρας stepper θα συνεχίσει να οδηγεί τον ιμάντα έως ότου ένας αισθητήρας IR ανιχνεύσει την παρουσία μιας φιάλης στον ιμάντα. Χρησιμοποιήσαμε τον αισθητήρα υπερύθρων ως εξωτερικό σκανδάλη. Έτσι, όποτε ο αισθητήρας υπερύθρων ανεβαίνει, στέλνει μια σκανδάλη στο Arduino για να σταματήσει τον κινητήρα και να ενεργοποιήσει τη σωληνοειδή βαλβίδα. Μια προκαθορισμένη απαιτούμενη καθυστέρηση έχει ήδη εισαχθεί στον κωδικό για την πλήρωση της φιάλης. Το Arduino θα διατηρήσει την ηλεκτρομαγνητική βαλβίδα ενεργοποιημένη και τον κινητήρα βηματοδότησης εκτός λειτουργίας μέχρι τον καθορισμένο χρόνο. Μετά από αυτό το διάστημα, η ηλεκτρομαγνητική βαλβίδα απενεργοποιεί την πλήρωση και ο μεταφορέας αρχίζει να κινείται έτσι ώστε να μπορεί να γεμίσει η επόμενη φιάλη.
Στο παρελθόν χρησιμοποιήσαμε το Arduino με ηλεκτρομαγνητική βαλβίδα, IR Sensor και Stepper motor, οπότε για να μάθετε περισσότερα σχετικά με τη βασική διασύνδεση του Arduino με αυτά τα στοιχεία, μπορείτε να επισκεφθείτε τους συνδέσμους.
Απαιτούμενα στοιχεία
- Arduino Uno
- Κινητήρας Stepper (Nema17)
- Αναμετάδοση
- Ηλεκτρομαγνητική βαλβίδα
- Αισθητήρας υπερύθρων
- Οδηγός κινητήρα A4988
- Μπαταρία
Διάγραμμα κυκλώματος
Το διάγραμμα κυκλώματος για το σύστημα αυτόματης πλήρωσης φιαλών χρησιμοποιώντας το Arduino δίνεται παρακάτω.
Έχω χρησιμοποιήσει το Fritzing για να σχεδιάσω το διάγραμμα κυκλώματος. Σε αυτό το κύκλωμα, η ηλεκτρομαγνητική βαλβίδα συνδέεται με το Arduino μέσω της μονάδας ρελέ και η μονάδα οδήγησης A4988 χρησιμοποιείται για τον έλεγχο του κινητήρα stepper. Μπορείτε να ακολουθήσετε τον οδηγό Πώς να ελέγξετε το Nema17 με Arduino και A4988 για περισσότερες πληροφορίες σχετικά με την ενότητα προγραμμάτων οδήγησης Nema17 και A4988.
Ο πείρος εισόδου της μονάδας ρελέ συνδέεται με τον πείρο 7 του Arduino. Οι ακροδέκτες κατεύθυνσης και βημάτων της μονάδας A4988 συνδέονται με 2 και 4 ακίδες του Arduino. Σε αυτό το έργο, ένας αισθητήρας υπερύθρων χρησιμοποιείται ως εξωτερική διακοπή του Arduino. Στο Arduino Uno, ο ψηφιακός πείρος 2 & 3 είναι οι ακροδέκτες διακοπής, οπότε συνδέστε τον πείρο εξόδου του αισθητήρα υπερύθρων στον 3ο πείρο του Arduino. Η ηλεκτρομαγνητική βαλβίδα τροφοδοτείται από πηγή τροφοδοσίας 24V και ο κινητήρας Stepper τροφοδοτείται από πηγή ισχύος 12V.
Πρόγραμμα Arduino για αυτόματη πλήρωση μπουκαλιών
Το πλήρες πρόγραμμα για αυτό το αυτόματο σύστημα πλήρωσης μπουκαλιών που χρησιμοποιεί το Arduino δίνεται στο τέλος. Εδώ εξηγώ μερικές σημαντικές γραμμές.
Ξεκινήστε το πρόγραμμα συμπεριλαμβάνοντας τη βιβλιοθήκη κινητήρα stepper. Μπορείτε να κατεβάσετε τη βιβλιοθήκη κινητήρα stepper από εδώ.
Μετά από αυτό, ορίστε τον αριθμό των βημάτων ανά περιστροφή για τον κινητήρα stepper. Για NEMA 17 βήματα ανά επανάσταση είναι 200.
#περιλαμβάνω
Καθορίστε τους ακροδέκτες στους οποίους συνδέονται οι ακίδες Βήματος και κατεύθυνσης της μονάδας οδηγού κινητήρα. Καθώς ο κινητήρας συνδέεται μέσω της μονάδας οδηγού, ορίστε τον τύπο διασύνδεσης κινητήρα ως Type1 .
Stepper stepper (ΒΗΜΑΤΑ, 2, 4); # καθορισμός κινητήρα Διεπαφή Τύπος 1
Ρυθμίστε την ταχύτητα του κινητήρα stepper.
stepper.setSpeed (500);
Ορίστε το ρελέ, τις ακίδες βήματος και κατεύθυνσης ως έξοδο
pinMode (ρελέ, ΕΞΟΔΟΣ); pinMode (4, ΕΞΟΔΟΣ); pinMode (2, ΕΞΟΔΟΣ);
Η σύνταξη για εξωτερική διακοπή στο Arduino δίνεται παρακάτω:
attachInterrupt (digitalPinToInterrupt (pin), ISR, λειτουργία);
Οπου:
digitalPinToInterrupt (pin): Χρησιμοποιείται για τον καθορισμό του pin στην οποία συνδέεται η εξωτερική διακοπή. Στο Arduino Uno Pin 2 & 3 είναι εξωτερικές καρφίτσες διακοπής.
ISR: Είναι μια συνάρτηση που καλείται όταν καλείται εξωτερική διακοπή.
Λειτουργία: Τύπος μετάβασης για ενεργοποίηση, π.χ. πτώση, άνοδο κ.λπ.
Μάθετε περισσότερα για το Arduino Interrupts ακολουθώντας τον σύνδεσμο.
Στη συνάρτηση attachInterrupt () καθορίζεται ότι ο πείρος 3 είναι ο εξωτερικός πείρος διακοπής και η λειτουργία IR_detected καλείται κάθε φορά που ο αισθητήρας IR αλλάζει την κατάστασή του από είναι LOW σε HIGH (RISING).
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH).
void IR_detected () είναι μια συνάρτηση ISR που εκτελείται όταν ο αισθητήρας υπερύθρων ανεβαίνει. Έτσι, κάθε φορά που ο αισθητήρας υπερύθρων ανεβαίνει, αυτή η λειτουργία τρέχει τον βηματικό κινητήρα για μερικά βήματα και στη συνέχεια σταματά τον κινητήρα βηματισμού και ενεργοποιεί την ηλεκτρομαγνητική βαλβίδα.
άκυρο IR_detected () {stepper.step (150); digitalWrite (ρελέ, ΥΨΗΛΟ); stepper.step (0);
Τώρα επιτέλους ανεβάστε τον κωδικό στο Arduino συνδέοντάς τον στον φορητό υπολογιστή. Η παρακάτω εικόνα δείχνει το πρωτότυπό μας για το σύστημα αυτόματης πλήρωσης μπουκαλιών χρησιμοποιώντας το Arduino.
Ο πλήρης κώδικας και το βίντεο επίδειξης δίνονται παρακάτω.