- Κινητήρας Stepper:
- Πρόγραμμα οδήγησης κινητήρα Stepper ULN2003:
- Απαιτούμενα συστατικά
- Διάγραμμα κυκλώματος και επεξήγηση
- Επεξήγηση κώδικα
Το Stepper Motor είναι ένας ειδικά σχεδιασμένος κινητήρας που περιστρέφεται σε βήματα. Η ταχύτητα του βηματικού κινητήρα εξαρτάται από το ρυθμό του ηλεκτρικού σήματος που εφαρμόζεται σε αυτόν. Διαφορετικά σχέδια μπορούν να ελέγχουν την κατεύθυνση και τον τύπο περιστροφής του κινητήρα του stepper. Κυρίως υπάρχουν δύο τύποι βηματικών κινητήρων, Unipolar και Bipolar. Το Unipolar είναι πιο εύκολο στη χρήση, τον έλεγχο και επίσης πιο εύκολο στη λήψη. Εδώ σε αυτό το σεμινάριο διασυνδέουμε το Stepper Motor με τον PIC Microcontroller PIC16F877A.
Χρησιμοποιούμε stepper motor 28BYJ-48 για αυτό το έργο που είναι φθηνό και εύκολα διαθέσιμο. Είναι μονοπολικός κινητήρας 5V DC. Χρησιμοποιούμε επίσης μια διαθέσιμη μονάδα με αυτόν τον κινητήρα που αποτελείται από ULN2003 Stepper Motor Driver IC. Το ULN2003 είναι ένας πίνακας ζευγών Darlington, ο οποίος είναι χρήσιμος για την οδήγηση αυτού του κινητήρα, καθώς ο μικροελεγκτής PIC δεν μπόρεσε να παράσχει αρκετό ρεύμα για οδήγηση. Το ULN2003A μπορεί να οδηγήσει 500mA φορτίου με 600mA ρεύματος αιχμής.
Κινητήρας Stepper:
Ας δούμε τις προδιαγραφές του 28BYJ-48 Stepper Motor από το φύλλο δεδομένων.
Πώς να περιστρέψετε το Stepper Motor:
Αν δούμε το φύλλο δεδομένων θα δούμε το pin-out.
Μέσα στον κινητήρα υπάρχουν δύο κεντρικά πτυσσόμενα πηνία. Το κόκκινο καλώδιο είναι το κοινό και για τα δύο που θα συνδεθούν σε VCC ή 5V.
Άλλα 4 καλώδια ροζ, κόκκινο, κίτρινο και μπλε θα ελέγχουν την περιστροφή ανάλογα με το ηλεκτρικό σήμα. Επίσης, ανάλογα με την κίνηση, αυτός ο κινητήρας μπορεί να ελεγχθεί με 3 βήματα. Λειτουργία πλήρους κίνησης, λειτουργία Half κίνησης και λειτουργία μονάδας δίσκου Wave.
Τρεις τρόποι οδήγησης Stepper Motor:
Πλήρης κίνηση: Εάν δύο ηλεκτρομαγνήτες στάτη ενεργοποιούνται κάθε φορά, ο κινητήρας θα λειτουργεί με πλήρη ροπή που αναφέρεται ως λειτουργία ακολουθίας πλήρους κίνησης.
Βήμα |
Μπλε |
Ροζ |
Κίτρινος |
Πορτοκάλι |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Half-Drive: Όταν εναλλακτικά ενεργοποιείται μία και δύο φάσεις, ο κινητήρας θα λειτουργεί σε λειτουργία μισής οδήγησης. Χρησιμοποιείται για την αύξηση της γωνιακής ανάλυσης. Το μειονέκτημα είναι λιγότερη ροπή που παράγεται σε αυτήν την κίνηση.
Βήμα |
Μπλε |
Ροζ |
Κίτρινος |
Πορτοκάλι |
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 |
Wave Drive: Σε αυτήν τη λειτουργία, ένας ηλεκτρομαγνήτης στάτη είναι ενεργοποιημένος. Ακολουθεί 4 βήματα ίδια με τη λειτουργία Full-drive. Καταναλώνει χαμηλή ισχύ με χαμηλή ροπή.
Βήμα |
Μπλε |
Ροζ |
Κίτρινος |
Πορτοκάλι |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Έχουμε προηγουμένως διασυνδέσει το Stepper Motor με άλλους μικροελεγκτές:
Ο κινητήρας Stepper μπορεί επίσης να ελεγχθεί χωρίς κανένα μικροελεγκτή, δείτε αυτό το κύκλωμα οδήγησης κινητήρα Stepper.
Πρόγραμμα οδήγησης κινητήρα Stepper ULN2003:
Ας καταλάβουμε το διαχωριστικό χαρτόνι που αποτελείται από ULN2003 IC. Είναι σημαντικό να κατανοήσετε το pin out.
Το κίτρινο τμήμα χρησιμοποιείται για τη σύνδεση του κινητήρα, Το κόκκινο τμήμα δείχνει ένα βραχυκυκλωτήρα, Είναι σημαντικό να τοποθετήσετε το βραχυκυκλωτήρα, καθώς θα επιτρέψει την προστασία δίοδος ελεύθερης περιστροφής για τον κινητήρα . Η ροζ είσοδος είναι για τη σύνδεση μικροελεγκτή.
Θα περιστρέψουμε τον κινητήρα σε λειτουργία πλήρους κίνησης σε ρολόι και θα τον περιστρέψουμε ξανά με λειτουργία κίνησης κύματος σε αντίστροφη φορά. Ελέγξτε το βίντεο επίδειξης στο τέλος.
Απαιτούμενα συστατικά
- Pic16F877A
- Κιτ προγραμματισμού
- Ψωμί
- 20Mhz Crystal
- Πυκνωτής δίσκου 33pF - 2τμχ
- 4.7k αντίσταση
- Berg καλώδια και ακίδες
- ULN2003A σκάφος ξεμπλοκαρίσματος μαζί με τον κινητήρα Stepper 28BYJ-48.
- Πρόσθετα καλώδια για σύνδεση
- Μονάδα τροφοδοσίας 5V ή προσαρμογέα τοίχου με βαθμολογία 500mA
Διάγραμμα κυκλώματος και επεξήγηση
Στο διάγραμμα κυκλώματος, στην αριστερή πλευρά εμφανίζεται το PIC16F877A και στη δεξιά πλευρά εμφανίζεται η σύνδεση ULN2003A. Το τμήμα κινητήρα ULN2003 και Stepper βρίσκεται μέσα στην πλακέτα ξεμπλοκαρίσματος.
Η σύνδεση από την πλακέτα Breakout στη μονάδα μικροελεγκτή θα είναι-
A. IN1 => Pin33
Β. IN2 => Pin34
Γ. IN3 => Pin35
D. IN4 => Pin36
Συνδέθηκα όλα τα εξαρτήματα και το υλικό σας για να περιστρέψω τον κινητήρα Stepper με τον μικροελεγκτή PIC είναι έτοιμος.
Εάν είστε νέοι στο PIC Microcontroller παρά ακολουθήστε τα PIC Microcontroller Tutorials που δηλώνουν με το «Ξεκινώντας με το PIC Microcontroller».
Επεξήγηση κώδικα
Ο πλήρης κωδικός για αυτό το πρόγραμμα οδήγησης Stepper Motor που βασίζεται σε PIC δίνεται στο τέλος αυτού του σεμιναρίου με ένα βίντεο επίδειξης. Όπως πάντα πρώτα, πρέπει να ρυθμίσουμε τα bits διαμόρφωσης στον μικροελεγκτή pic και μετά να ξεκινήσουμε με κενή λειτουργία.
Αυτές είναι οι μακροεντολές για bit διαμόρφωσης της μονάδας μικροελεγκτή και των αρχείων κεφαλίδας βιβλιοθήκης.
#define _XTAL_FREQ 200000000 // Συχνότητα κρυστάλλου, που χρησιμοποιείται σε καθυστέρηση # καθορισμός ταχύτητας 1 // Εύρος ταχύτητας 10 έως 1 10 = χαμηλότερο, 1 = υψηλότερο # καθορισμός βημάτων 250 // πόσο βήμα θα κάνει # καθορισμός δεξιόστροφα 0 // δεξιόστροφη κατεύθυνση μακροεντολή # καθορισμός αριστερόστροφα 1 // αντίστροφη φορά κατεύθυνσης
Στην πρώτη γραμμή ορίσαμε τη συχνότητα κρυστάλλου που απαιτείται για τη ρουτίνα καθυστέρησης. Άλλες μακροεντολές χρησιμοποιούνται για τον καθορισμό επιλογών που σχετίζονται με τον χρήστη.
Εάν δείτε τον κωδικό, υπάρχουν τρεις λειτουργίες που καθορίζονται για την οδήγηση του κινητήρα σε τρεις λειτουργίες με ρολόι προς τα δεξιά και αριστερόστροφα. Εδώ είναι οι τρεις λειτουργίες:
1. άκυρο full_drive (κατεύθυνση char)
2. άκυρο half_drive (κατεύθυνση char)
3. void wave_drive (κατεύθυνση char)
Ελέγξτε τους ορισμούς αυτών των συναρτήσεων στον πλήρη κώδικα που δίνεται παρακάτω:
Τώρα σε κενή κύρια λειτουργία, οδηγούμε τον κινητήρα δεξιόστροφα χρησιμοποιώντας τη λειτουργία πλήρους οδήγησης ανάλογα με τα βήματα και μετά από λίγα δευτερόλεπτα καθυστέρηση περιστρέφουμε ξανά τον κινητήρα αριστερόστροφα χρησιμοποιώντας τη λειτουργία κίνησης κυμάτων.
void main (void) { system_init (); ενώ (1) { / * Οδηγήστε τον κινητήρα σε κατάσταση πλήρους κίνησης δεξιόστροφα * / για (int i = 0; i
Με αυτόν τον τρόπο μπορούμε να περιστρέψουμε τον κινητήρα stepper με τον μικροελεγκτή PIC. Οι Stepper Motors είναι πολύ χρήσιμοι σε μηχανήματα CNC, ρομποτική και άλλες ενσωματωμένες εφαρμογές.