- Κινητήρας Stepper
- Περιστροφή κινητήρα Stepper ΜΕ ARM7-LPC2148
- Απαιτούμενα στοιχεία
- Κινητήρας Stepper (28BYJ-48)
- Πρόγραμμα οδήγησης κινητήρα Stepper ULN2003
- Διάγραμμα κυκλώματος
- Προγραμματισμός ARM7-LPC2148 για Stepper Motor
Στον σημερινό αυτοματισμό ο βηματικός κινητήρας και ο σερβο κινητήρας είναι δύο πιο συχνά χρησιμοποιούμενοι κινητήρες σε ενσωματωμένα συστήματα. Και τα δύο χρησιμοποιούνται σε διάφορα μηχανήματα αυτοματισμού όπως ρομποτικούς βραχίονες, μηχανή CNC, κάμερες κ.λπ. Σε αυτό το σεμινάριο θα δούμε πώς να διασυνδέσουμε το Stepper Motor με το ARM7-LPC2148 και πώς να ελέγξουμε την ταχύτητα του. Εάν είστε νέοι στο ARM7, ξεκινήστε μαθαίνοντας για το ARM7-LPC2148 και τα εργαλεία προγραμματισμού του.
Κινητήρας Stepper
Ο κινητήρας Stepper είναι κινητήρας DC χωρίς ψήκτρες, ο οποίος μπορεί να περιστραφεί σε μικρές γωνίες, αυτές οι γωνίες ονομάζονται βήματα. Μπορούμε να περιστρέψουμε τον κινητήρα stepper βήμα προς βήμα δίνοντας ψηφιακούς παλμούς στις ακίδες του. Οι κινητήρες Stepper είναι φθηνοί και έχουν στιβαρό σχεδιασμό. Η ταχύτητα του κινητήρα μπορεί να ελεγχθεί αλλάζοντας τη συχνότητα των ψηφιακών παλμών.
Υπάρχουν δύο τύποι stepper κινητήρες διατίθενται με βάση τον τύπο της στάτη εκκαθάρισης: μονοπολική και ΔΙΠΟΛΙΚΗ. Εδώ χρησιμοποιούμε UNIPOLAR stepper motor που είναι ο πιο συχνά χρησιμοποιούμενος stepper motor . Για να περιστρέψετε το βηματικό μοτέρ πρέπει να ενεργοποιήσετε τα πηνία του βηματικού κινητήρα σε μια σειρά. Με βάση την περιστροφική λειτουργία ταξινομούνται σε δύο τρόπους:
- Λειτουργία πλήρους βήματος: (Ακολουθία 4 βημάτων)
- One-Phase On Stepping (WAVE STEPPING)
- Δύο φάσεις στο σκαλοπάτι
- Λειτουργία μισού βήματος (ακολουθία 8 βημάτων)
Για να μάθετε περισσότερα για το stepper motor και τη λειτουργία του, ακολουθήστε τον σύνδεσμο.
Περιστροφή κινητήρα Stepper ΜΕ ARM7-LPC2148
Εδώ θα χρησιμοποιήσουμε το FULL STEP: ONE PHASE ON ή WAVE STEPPING mode για να περιστρέψουμε το Stepper Motor με ARM7-LPC2148
Σε αυτήν τη μέθοδο θα ενεργοποιήσουμε μόνο ένα πηνίο (ένας πείρος LPC2148) κάθε φορά. Αυτό συμβαίνει εάν το πρώτο πηνίο Α ενεργοποιηθεί για μικρό χρονικό διάστημα, ο άξονας θα αλλάξει τη θέση του και στη συνέχεια το πηνίο Β ενεργοποιείται για τον ίδιο χρόνο και ο άξονας θα αλλάξει ξανά τη θέση του. Το ίδιο όπως αυτό, το πηνίο C και μετά το πηνίο D ενεργοποιείται για να μετακινήσει τον άξονα περαιτέρω. Αυτό κάνει τον άξονα του βηματικού κινητήρα να περιστρέφεται βήμα προς βήμα, ενεργοποιώντας ένα πηνίο κάθε φορά.
Με αυτήν τη μέθοδο περιστρέφουμε τον άξονα βήμα προς βήμα ενεργοποιώντας το πηνίο σε μια σειρά. Αυτό ονομάζεται ακολουθίες τεσσάρων βημάτων καθώς διαρκεί τέσσερα βήματα.
Μπορείτε να περιστρέψετε το Stepper Motor χρησιμοποιώντας τη μέθοδο HALF STEP (μέθοδος 8-Sequence) σύμφωνα με τις τιμές που δίνονται παρακάτω.
Βήμα |
Πηνίο Α |
Πηνίο Β |
Πηνίο Γ |
Πηνίο Δ |
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 |
Απαιτούμενα στοιχεία
Σκεύη, εξαρτήματα:
- ARM7-LPC2148
- ULN2003 IC Driver Motor
- LED - 4
- STEPPER MOTOR (28BYJ-48)
- ΠΙΝΑΚΑΣ
- ΣΥΝΔΕΣΗ καλωδίων
Λογισμικό:
- Keil uVision5
- Flasic Magic Tool
Κινητήρας Stepper (28BYJ-48)
Ο βηματικός κινητήρας 28BYJ-48 εμφανίζεται ήδη στην παραπάνω εικόνα. Είναι ένας μονοπολικός κινητήρας Stepper που απαιτεί τροφοδοσία 5V. Ο κινητήρας έχει μονοπολική διάταξη 4 πηνίων και κάθε πηνίο έχει βαθμολογία για + 5V, επομένως είναι σχετικά εύκολο να ελεγχθεί με μικροελεγκτές όπως Arduino, Raspberry Pi, STM32, ARM κ.λπ.
Αλλά χρειαζόμαστε ένα IC Drive Motor όπως το ULN2003 για να το οδηγήσουμε, επειδή οι κινητήρες stepper καταναλώνουν υψηλό ρεύμα και μπορεί να προκαλέσουν ζημιά στους μικροελεγκτές.
Οι προδιαγραφές του 28BYJ-48 παρέχονται στο δελτίο δεδομένων παρακάτω:
Ελέγξτε επίσης τη διασύνδεση με το Stepper Motor με άλλους μικροελεγκτές:
- Interfacing Stepper Motor με το Arduino Uno
- Έλεγχος κινητήρα Stepper με Raspberry Pi
- Stepper Motor Interfacing με 8051 μικροελεγκτή
- Διασύνδεση Stepper Motor με μικροελεγκτή PIC
- Interfacing Stepper Motor με MSP430G2
Ο κινητήρας Stepper μπορεί επίσης να ελεγχθεί χωρίς κανένα μικροελεγκτή, δείτε αυτό το κύκλωμα οδήγησης κινητήρα Stepper.
Πρόγραμμα οδήγησης κινητήρα Stepper ULN2003
Οι περισσότεροι κινητήρες stepper θα λειτουργούν μόνο με τη βοήθεια μιας μονάδας οδηγού. Αυτό συμβαίνει επειδή η μονάδα ελέγχου (στην περίπτωσή μας LPC2148) δεν θα είναι σε θέση να παρέχει αρκετό ρεύμα από τις ακίδες I / O για να λειτουργεί ο κινητήρας. Έτσι, θα χρησιμοποιήσουμε μια εξωτερική μονάδα, όπως η μονάδα ULN2003 ως stepper motor driver.
Σε αυτό το έργο, θα χρησιμοποιήσουμε ULN2003 οδήγησης του κινητήρα IC. Το διάγραμμα καρφιτσών του IC δίνεται παρακάτω:
Οι ακίδες (IN1 έως IN7) είναι ακίδες εισόδου για σύνδεση εξόδου μικροελεγκτή και OUT1 έως OUT7 είναι αντίστοιχες καρφίτσες εξόδου για τη σύνδεση εισόδου κινητήρων stepper. Στο COM παρέχεται θετική τάση πηγής που απαιτείται για συσκευές εξόδου και για εξωτερική πηγή εισόδου ισχύος.
Διάγραμμα κυκλώματος
Το διάγραμμα κυκλώματος για διασύνδεση Stepper Motor με ARM-7 LPC2148 δίνεται παρακάτω
ARM7-LPC2148 με ULN2003 Motor Driver IC
Οι ακροδέκτες GPIO του LPC2148 (P0.7 έως P0.10) θεωρούνται ακίδες εξόδου που συνδέονται με ακίδες εισόδου (IN1-IN4) του IC ULN2003.
LPC2148 καρφίτσες |
ΚΙΝΔΥΝΟΙ ULN2003 IC |
Σ0.7 |
ΣΕ 1 |
P0.8 |
ΙΝ2 |
Σ0.9 |
ΙΝ3 |
Σ.10 |
IN4 |
5V |
ΚΟΜ |
GND |
GND |
Συνδέσεις ULN2003 IC με Stepper Motor (28BYJ-48)
Οι ακίδες εξόδου (OUT1-OUT4) του ULN2003 IC συνδέονται με τους ακροδέκτες κινητήρα stepper (μπλε, ροζ, κίτρινο και πορτοκαλί).
ULN2003 IC PINS |
ΚΙΝΔΥΝΟΙ STEPPER MOTOR |
ΕΞΩ 1 |
ΜΠΛΕ |
OUT2 |
ΡΟΖ |
OUT3 |
ΚΙΤΡΙΝΟΣ |
OUT4 |
ΠΟΡΤΟΚΑΛΙ |
ΚΟΜ |
ΚΟΚΚΙΝΟ (+ 5V) |
LED με IN1 έως IN4 του ULN2003
Τέσσερις ακίδες ανόδου LED (LED1, LED2, LED4, LED 4) συνδέονται με τους ακροδέκτες IN1, IN2, IN3 και IN4 του ULN2003 αντίστοιχα και η κάθοδος των LED συνδέονται με το GND που σημαίνει ότι οι παλμοί από το LPC2148. Μπορούμε να σημειώσουμε το μοτίβο των παλμών που παρέχονται. Το μοτίβο εμφανίζεται στο βίντεο επίδειξης που επισυνάπτεται στο τέλος.
Προγραμματισμός ARM7-LPC2148 για Stepper Motor
Για να προγραμματίσουμε το ARM7-LPC2148 χρειαζόμαστε keil uVision & Flash Magic εργαλείο. Χρησιμοποιούμε καλώδιο USB για να προγραμματίσουμε το ARM7 Stick μέσω θύρας micro USB. Γράφουμε κώδικα χρησιμοποιώντας το Keil και δημιουργούμε ένα hex αρχείο και στη συνέχεια το αρχείο HEX αναβοσβήνει στο ARM7 stick χρησιμοποιώντας το Flash Magic. Για να μάθετε περισσότερα σχετικά με την εγκατάσταση του keil uVision και του Flash Magic και πώς να τα χρησιμοποιήσετε, ακολουθήστε τον σύνδεσμο Ξεκινώντας με τον μικροελεγκτή ARM7 LPC2148 και προγραμματίστε τον χρησιμοποιώντας το Keil uVision.
Ο πλήρης κωδικός για τον έλεγχο του Stepper Motor με ARM 7 δίνεται στο τέλος αυτού του σεμιναρίου, εδώ εξηγούμε μερικά μέρη του.
1. Για τη χρήση της μεθόδου FULL STEP-ONE PHASE ON πρέπει να συμπεριλάβουμε την παρακάτω εντολή. Χρησιμοποιούμε λοιπόν την ακόλουθη γραμμή στο πρόγραμμα
μη υπογεγραμμένο char δεξιόστροφα = {0x1,0x2,0x4,0x8}; // Εντολές για περιστροφή δεξιόστροφα χωρίς υπογραφή char αριστερόστροφα = {0x8,0x4,0x2,0x1}; // Εντολές για αριστερόστροφη περιστροφή
2. Οι ακόλουθες γραμμές χρησιμοποιούνται για να προετοιμάσουν τις ακίδες PORT0 ως έξοδο και να τις ορίσουν σε LOW
PINSEL0 = 0x00000000; // Ρύθμιση ακίδων PORT0 IO0DIR - = 0x00000780; // Ρύθμιση ακίδων P0.7, P0.8, P0.9, P0.10 ως OUTPUT IO0CLR = 0x00000780; // Ρύθμιση P0.7, P0.8, P0.9, P0.10 pin OUTPUT ως LOW
3. Ρυθμίστε τους ακροδέκτες PORT (P0.7 έως P0.10) HIGH σύμφωνα με τις εντολές δεξιόστροφα χρησιμοποιώντας αυτό για βρόχο με καθυστέρηση
για (int j = 0; j
Το ίδιο για το Anti-clock Wise
για (int z = 0; z
4. Αλλάξτε το χρόνο καθυστέρησης για να αλλάξετε την ταχύτητα περιστροφής του κινητήρα stepper
καθυστέρηση (0x10000); // Αλλάξτε αυτήν την τιμή για να αλλάξετε την ταχύτητα περιστροφής (0x10000) -Πλήρης ταχύτητα (0x50000) -Θα καθυστερήσει (0x90000) -Πιο αργή από την προηγούμενη. Έτσι αυξάνοντας την καθυστέρηση μειώνουμε την ταχύτητα περιστροφής.
5. Ο αριθμός βημάτων για μία πλήρη περιστροφή μπορεί να αλλάξει με τον παρακάτω κωδικό
int no_of_steps = 550; // Αλλάξτε αυτήν την τιμή για τον απαιτούμενο αριθμό περιστροφής βημάτων (550 δίνει μια πλήρη περιστροφή)
Για τον stepper κινητήρα μου, πήρα 550 βήματα για πλήρη περιστροφή και 225 για μισή περιστροφή. Γι 'αυτό αλλάξτε το σύμφωνα με τις απαιτήσεις σας.
6. Αυτή η λειτουργία χρησιμοποιείται για τη δημιουργία χρόνου καθυστέρησης.
κενή καθυστέρηση (μη υπογεγραμμένη τιμή int) // Λειτουργία δημιουργίας καθυστέρησης { unsigned int z; για (z = 0; z
Ο πλήρης κώδικας με βίντεο επίδειξης δίνεται παρακάτω.