- Τρόποι λειτουργίας στο Stepper Motor
- Δημιουργία γραφικού περιβάλλοντος χρήστη MATLAB για τον έλεγχο του Stepper Motor
- Κωδικός MATLAB για τον έλεγχο του Stepper Motor με το Arduino
- Απαιτούμενο υλικό
- Διάγραμμα κυκλώματος
- Έλεγχος Stepper Motor με MATLAB
Οι κινητήρες Stepper είναι ένας κινητήρας DC χωρίς ψήκτρες που περιστρέφεται σε διακριτά βήματα και είναι η καλύτερη επιλογή για πολλές εφαρμογές ελέγχου κίνησης ακριβείας. Επίσης, οι βηματικοί κινητήρες είναι κατάλληλοι για τοποθέτηση, έλεγχο ταχύτητας και εφαρμογές που απαιτούν υψηλή ροπή σε χαμηλή ταχύτητα.
Σε προηγούμενα μαθήματα του MATLAB, έχουμε εξηγήσει ότι πώς να χρησιμοποιήσετε το MATLAB για τον έλεγχο κινητήρα DC, Servo motor και οικιακές συσκευές. Σήμερα θα μάθουμε πώς να ελέγχουμε το Stepper Motor χρησιμοποιώντας MATALB και Arduino. Εάν είστε νέοι στο MATLAB τότε συνιστάται να ξεκινήσετε με ένα απλό πρόγραμμα αναλαμπής LED με το MATLAB.
Τρόποι λειτουργίας στο Stepper Motor
Πριν ξεκινήσετε την κωδικοποίηση για stepper motor θα πρέπει να κατανοήσετε την έννοια λειτουργίας ή περιστροφής ενός stepper motor. Δεδομένου ότι ο στάτης της λειτουργίας stepper είναι κατασκευασμένος από διαφορετικά ζεύγη πηνίων, κάθε ζεύγος πηνίων μπορεί να ενθουσιαστεί με πολλές διαφορετικές μεθόδους, γεγονός που επιτρέπει στους τρόπους να οδηγούνται σε πολλούς διαφορετικούς τρόπους. Τα παρακάτω είναι οι ευρείες ταξινομήσεις
Λειτουργία πλήρους βήματος
Σε λειτουργία διέγερσης πλήρους βημάτων μπορούμε να επιτύχουμε πλήρη περιστροφή 360 ° με ελάχιστο αριθμό στροφών (βήματα) Αλλά αυτό οδηγεί σε λιγότερη αδράνεια και επίσης η περιστροφή δεν θα είναι ομαλή. Υπάρχουν περαιτέρω δύο ταξινομήσεις στο Full Step Excitation, είναι ένα Phase-on wave stepping και δύο phase-on mode.
1. Ένα βήμα προς βήμα ή ένα βήμα κύματος: Σε αυτήν τη λειτουργία μόνο ένας ακροδέκτης (φάση) του κινητήρα θα ενεργοποιηθεί οποιαδήποτε στιγμή. Αυτό έχει μικρότερο αριθμό βημάτων και ως εκ τούτου μπορεί να επιτύχει πλήρη περιστροφή 360 °. Δεδομένου ότι ο αριθμός των βημάτων είναι μικρότερος, το ρεύμα που καταναλώνεται με αυτήν τη μέθοδο είναι επίσης πολύ χαμηλό. Ο παρακάτω πίνακας δείχνει την ακολουθία κύματος για έναν κινητήρα 4 φάσεων
Βήμα | Φάση 1 (μπλε) | Φάση 2 (ροζ) | Φάση 3 (κίτρινο) | Φάση 4 (πορτοκαλί) |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
2. Ενίσχυση δύο φάσεων: Όπως αναφέρει το όνομα σε αυτήν τη μέθοδο, δύο φάσεις θα είναι μία. Έχει τον ίδιο αριθμό βημάτων με το Wave stepping, αλλά δεδομένου ότι δύο πηνία ενεργοποιούνται ταυτόχρονα μπορεί να παρέχει καλύτερη ροπή και ταχύτητα σε σύγκριση με την προηγούμενη μέθοδο. Παρόλο που η μία πλευρά είναι ότι αυτή η μέθοδος καταναλώνει επίσης περισσότερη ισχύ.
Βήμα |
Φάση 1 (μπλε) |
Φάση 2 (ροζ) |
Φάση 3 (κίτρινο) |
Φάση 4 (πορτοκαλί) |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Λειτουργία μισού βήματος
Η λειτουργία Half Step είναι ο συνδυασμός των λειτουργιών ενός σταδίου και δύο φάσεων. Αυτός ο συνδυασμός θα μας βοηθήσει να ξεπεράσουμε το προαναφερθέν μειονέκτημα και των δύο τρόπων.
Όπως ίσως το μαντέψατε, καθώς συνδυάζουμε και τις δύο μεθόδους, θα πρέπει να εκτελέσουμε 8 βήματα σε αυτήν τη μέθοδο για να έχουμε μια πλήρη περιστροφή. Η ακολουθία μεταγωγής για έναν τετραφασικό κινητήρα που φαίνεται παρακάτω
Βήμα |
Φάση 1 (μπλε) |
Φάση 2 (ροζ) |
Φάση 3 (κίτρινο) |
Φάση 4 (πορτοκαλί) |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
0 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
Ως εκ τούτου, είναι η επιλογή σας να προγραμματίσετε το stepper μοτέρ σας σε οποιαδήποτε λειτουργία, αλλά προτιμώ το Two Phase-on stepping Full Step Mode. Επειδή αυτή η μέθοδος παρέχει γρηγορότερη ταχύτητα, τότε η μονοφασική μέθοδος και σε σύγκριση με τη μισή λειτουργία, το τμήμα κωδικοποίησης οφείλεται λιγότερο σε μικρότερο αριθμό βημάτων σε διφασική μέθοδο.
Μάθετε περισσότερα για τους κινητήρες stepper και τους τρόπους λειτουργίας του εδώ
Δημιουργία γραφικού περιβάλλοντος χρήστη MATLAB για τον έλεγχο του Stepper Motor
Τότε πρέπει να δημιουργήσουμε GUI (Γραφικό περιβάλλον εργασίας χρήστη) για τον έλεγχο του κινητήρα Stepper Για να ξεκινήσετε το GUI, πληκτρολογήστε την παρακάτω εντολή στο παράθυρο εντολών
οδηγός
Θα ανοίξει ένα αναδυόμενο παράθυρο και, στη συνέχεια, επιλέξτε νέο κενό GUI όπως φαίνεται στην παρακάτω εικόνα,
Τώρα επιλέξτε δύο κουμπιά εναλλαγής για περιστροφή του κινητήρα Stepper δεξιόστροφα και αριστερόστροφα, όπως φαίνεται παρακάτω,
Για να αλλάξετε το μέγεθος ή να αλλάξετε το σχήμα του κουμπιού, απλώς κάντε κλικ πάνω του και θα μπορείτε να σύρετε τις γωνίες του κουμπιού. Κάνοντας διπλό κλικ στο κουμπί εναλλαγής μπορείτε να αλλάξετε το χρώμα, τη συμβολοσειρά και την ετικέτα του συγκεκριμένου κουμπιού. Έχουμε προσαρμόσει δύο κουμπιά όπως φαίνεται στην παρακάτω εικόνα.
Μπορείτε να προσαρμόσετε τα κουμπιά σύμφωνα με την επιλογή σας. Τώρα όταν το αποθηκεύετε, δημιουργείται ένας κώδικας στο παράθυρο του προγράμματος επεξεργασίας του MATLAB. Για να κωδικοποιήσετε το Arduino σας για την εκτέλεση οποιασδήποτε εργασίας που σχετίζεται με το έργο σας, πρέπει πάντα να επεξεργάζεστε αυτόν τον δημιουργημένο κώδικα. Παρακάτω έχουμε επεξεργαστεί τον κωδικό MATLAB. Μπορείτε να μάθετε περισσότερα σχετικά με το παράθυρο εντολών, το παράθυρο επεξεργασίας κ.λπ. στην ενότητα Ξεκινώντας με το μάθημα MATLAB.
Κωδικός MATLAB για τον έλεγχο του Stepper Motor με το Arduino
Πλήρης κωδικός MATLAB, για τον έλεγχο του κινητήρα Stepper, δίνεται στο τέλος αυτού του έργου. Περαιτέρω συμπεριλαμβάνουμε εδώ το αρχείο GUI (.fig) και το αρχείο κώδικα (.m) για λήψη (κάντε δεξί κλικ στο σύνδεσμο και επιλέξτε «Αποθήκευση συνδέσμου ως…»)), χρησιμοποιώντας τα οποία μπορείτε να προσαρμόσετε τα κουμπιά σύμφωνα με τις απαιτήσεις σας. Ακολουθούν ορισμένες τροποποιήσεις που κάναμε για την περιστροφή του Stepper Motor δεξιόστροφα και αριστερόστροφα χρησιμοποιώντας δύο κουμπιά εναλλαγής.
Αντιγράψτε και επικολλήστε τον παρακάτω κώδικα στη γραμμή αρ. 74 για να βεβαιωθείτε ότι το Arduino μιλά με το MATLAB κάθε φορά που εκτελείτε το αρχείο m.
τα καθαρίζω όλα; παγκόσμιο a; a = arduino ();
Όταν κάνετε κύλιση προς τα κάτω, θα δείτε ότι δημιουργούνται δύο λειτουργίες και για τα δύο κουμπιά στο GUI. Τώρα γράψτε τον κώδικα και στις δύο λειτουργίες σύμφωνα με την εργασία που θέλετε να εκτελέσετε με κλικ.
Στη λειτουργία του κουμπιού δεξιόστροφα , αντιγράψτε και επικολλήστε τον παρακάτω κώδικα λίγο πριν από το τέλος της λειτουργίας για να περιστρέψετε τον κινητήρα προς τα δεξιά. Για συνεχόμενη περιστροφή του βηματικού κινητήρα προς τη φορά των δεικτών του ρολογιού, χρησιμοποιούμε το loop loop για να επαναλάβουμε τα δύο βήματα πλήρους λειτουργίας σταδιακής ενεργοποίησης για τη φορά των δεικτών του ρολογιού.
ενώ παίρνετε (hObject, 'Value') παγκόσμιο a; writeDigitalPin (a, «D8», 1); writeDigitalPin (a, "D9", 0); writeDigitalPin (a, "D10", 0); writeDigitalPin (a, "D11", 1); παύση (0,0002); writeDigitalPin (a, "D8", 0); writeDigitalPin (a, "D9", 0); writeDigitalPin (a, "D10", 1); writeDigitalPin (a, "D11", 1); παύση (0,0002); writeDigitalPin (a, "D8", 0); writeDigitalPin (a, "D9", 1); writeDigitalPin (a, "D10", 1); writeDigitalPin (a, "D11", 0); παύση (0,0002); writeDigitalPin (a, «D8», 1); writeDigitalPin (a, "D9", 1); writeDigitalPin (a, "D10", 0); writeDigitalPin (a, "D11", 0); παύση (0,0002); τέλος
Τώρα στη λειτουργία του κουμπιού αριστερόστροφα , επικολλήστε τον παρακάτω κωδικό στη λειτουργία για να περιστρέψετε τον κινητήρα προς την αριστερόστροφη κατεύθυνση. Για συνεχή περιστροφή του βηματικού κινητήρα προς την αριστερόστροφη κατεύθυνση, χρησιμοποιούμε το loop loop για να επαναλάβουμε τα δύο βήματα σταδιακής ενεργοποίησης πλήρους λειτουργίας για αριστερόστροφη κατεύθυνση.
ενώ παίρνετε (hObject, 'Value') παγκόσμιο a; writeDigitalPin (a, «D8», 1); writeDigitalPin (a, "D9", 1); writeDigitalPin (a, "D10", 0); writeDigitalPin (a, "D11", 0); παύση (0,0002); writeDigitalPin (a, "D8", 0); writeDigitalPin (a, "D9", 1); writeDigitalPin (a, "D10", 1); writeDigitalPin (a, "D11", 0); παύση (0,0002); writeDigitalPin (a, "D8", 0); writeDigitalPin (a, "D9", 0); writeDigitalPin (a, "D10", 1); writeDigitalPin (a, "D11", 1); παύση (0,0002); writeDigitalPin (a, «D8», 1); writeDigitalPin (a, "D9", 0); writeDigitalPin (a, "D10", 0); writeDigitalPin (a, "D11", 1); παύση (0,0002); τέλος
Απαιτούμενο υλικό
- Εγκατεστημένος φορητός υπολογιστής MATLAB (Προτίμηση: R2016a ή νεότερες εκδόσεις)
- Arduino UNO
- Κινητήρας Stepper (28BYJ-48, 5VDC)
- ULN2003 - Πρόγραμμα οδήγησης κινητήρα Stepper
Διάγραμμα κυκλώματος
Έλεγχος Stepper Motor με MATLAB
Μετά την εγκατάσταση του υλικού σύμφωνα με το διάγραμμα κυκλώματος, απλώς κάντε κλικ στο κουμπί εκτέλεσης για να εκτελέσετε τον επεξεργασμένο κώδικα στο αρχείο.m
Το MATLAB μπορεί να χρειαστεί λίγα δευτερόλεπτα για να απαντήσει, μην κάνετε κλικ σε κανένα κουμπί GUI έως ότου το MATLAB εμφανίσει μήνυμα απασχολημένου στην κάτω πλευρά της αριστερής γωνίας όπως φαίνεται παρακάτω,
Όταν όλα είναι έτοιμα, κάντε κλικ στο δεξιόστροφο ή αριστερόστροφο κουμπί για να περιστρέψετε τον κινητήρα. Καθώς χρησιμοποιούμε το κουμπί εναλλαγής, ο βηματικός κινητήρας κινείται συνεχώς προς τα δεξιά μέχρι να πατήσουμε ξανά το κουμπί. Παρομοίως, πατώντας το κουμπί εναλλαγής αριστερόστροφα, ο κινητήρας αρχίζει να περιστρέφεται αριστερόστροφα μέχρι να πατήσουμε ξανά το κουμπί.