- Απαιτούμενα στοιχεία
- Καρφίτσα Περιγραφή του Stepper Motor
- Διάγραμμα κυκλώματος για Stepper Motor Control χρησιμοποιώντας ULN2003 Module
- Διάγραμμα κυκλώματος για έλεγχο κινητήρα Stepper χρησιμοποιώντας μονάδα L293D:
- Έλεγχος Stepper Motor με AVR ATmega16
Οι Stepper Motors είναι κινητήρες χωρίς ψήκτρες DC που μπορούν να περιστραφούν από 0 0 έως 360 0 σε βήματα. Ο κινητήρας Stepper χρησιμοποιεί ηλεκτρονικά σήματα για περιστροφή του κινητήρα σε βήματα και κάθε σήμα περιστρέφει τον άξονα σε σταθερή αύξηση (ένα βήμα). Ο άγγελος περιστροφής ελέγχεται εφαρμόζοντας συγκεκριμένη ακολουθία σημάτων. Σε αντίθεση με το Servo Motor, οι βηματικοί κινητήρες μπορούν να κινηθούν χρησιμοποιώντας GPIO ακροδέκτες μικροελεγκτή και όχι PWM ακίδες και μπορούν να περιστραφούν σε (+360 0) και (-360 0). Η σειρά των σημάτων αποφασίζει την κατεύθυνση δεξιόστροφα και αριστερόστροφα του κινητήρα stepper Για να ελέγξουμε την ταχύτητα του κινητήρα, πρέπει απλώς να αλλάξουμε τον ρυθμό των σημάτων ελέγχου που εφαρμόζονται. Οι κινητήρες stepper περιστρέφονται σε βήματα. Υπάρχουν διάφοροι τρόποι για τη λειτουργία του Stepper Motor, όπως πλήρες βήμα, μισό βήμα και μικρό βήμα. Για να μάθετε περισσότερα σχετικά με τα βασικά, τη θεωρία και την αρχή λειτουργίας του stepper motor, ακολουθήστε τον σύνδεσμο.
Στο παρελθόν διασυνδέσαμε το Stepper Motor με πολλούς μικροελεγκτές:
- Interfacing Stepper Motor με ARM7-LPC2148
- Interfacing Stepper Motor με το Arduino Uno
- Interfacing Stepper Motor με MSP430G2
- Διασύνδεση Stepper Motor με STM32F103C8
- Διασύνδεση Stepper Motor με μικροελεγκτή PIC
- Interfacing Stepper Motor με 8051 μικροελεγκτή
- Interfacing Stepper Motor με Raspberry Pi
Σε αυτό το σεμινάριο θα συνδέσουμε το 28BYJ-48 Stepper Motor με τον μικροελεγκτή Atmega16 AVR χρησιμοποιώντας το Atmel Studio 7.0. Ο κινητήρας stepper έχει βαθμολογία να λειτουργεί σε 5V. Θα συνδέσουμε τον κινητήρα stepper με τους δύο οδηγούς κινητήρα, δηλαδή ULN2003 και L293. Και οι δύο οδηγούνται από τροφοδοσία 5V. Προκειμένου να απλοποιήσουμε τη διασύνδεση, χρησιμοποιούμε την προκατασκευασμένη μονάδα και των δύο προγραμμάτων οδήγησης κινητήρα. Μπορείτε επίσης να χρησιμοποιήσετε αυτόνομα IC ULN2003 και L293D. Ο αριθμός καλωδίων και άλματος μπορεί να είναι μεγαλύτερος, οπότε απλώς προσέξτε ενώ συνδέετε όλες τις συνδέσεις.
Απαιτούμενα στοιχεία
- Κινητήρας Stepper (28BYJ-48)
- Πρόγραμμα οδήγησης κινητήρα ULN2003 Module / L293D
- Atmega16 Μικροελεγκτής IC
- 16Mhz Crystal Oscillator
- Δύο πυκνωτές 100nF
- Δύο πυκνωτές 22pF
- Πλήκτρο
- Καλώδια αλτών
- Ψωμί
- USBASP v2.0
- Led (Οποιοδήποτε χρώμα)
Καρφίτσα Περιγραφή του Stepper Motor
Διάγραμμα κυκλώματος για Stepper Motor Control χρησιμοποιώντας ULN2003 Module
Συνδέστε όλα τα στοιχεία όπως φαίνεται στο παρακάτω διάγραμμα όταν χρησιμοποιείτε το ULN2003. Ομοίως, θα το διασυνδέσουμε χρησιμοποιώντας το L293D στο επόμενο βήμα. Χρησιμοποιούμε το PORTA του Atmega16 για τη διασύνδεση του κινητήρα stepper και για τους δύο οδηγούς κινητήρα. Δεν χρειάζεται να συνδέσετε τον πείρο 5V του κινητήρα stepper. Μόνο οι πείροι πηνίου απαιτούνται για τη μετακίνηση του κινητήρα stepper. Η σειρά των πείρων είναι πολύ σημαντική για την οδήγηση του βηματικού κινητήρα, καθώς η ενεργοποίηση των πηνίων πρέπει να είναι προκειμένου να επιτευχθούν βήματα. Σε αυτό το έργο χρησιμοποιούνται τέσσερις είσοδοι ULN2003 και τέσσερις έξοδοι ULN2003. Οι είσοδοι θα συνδεθούν με ακίδες PORTA και οι έξοδοι θα συνδεθούν με ακίδες σήματος Stepper Motor. Επίσης, συνδέστε ένα μπουτόν στο Pin Reset για επαναφορά του Atmega16 όποτε απαιτείται. Συνδέστε το Atmega16 με κατάλληλο κύκλωμα ταλαντωτή κρυστάλλου. Όλο το σύστημα θα τροφοδοτείται από τροφοδοσία 5V.
Παρακάτω είναι η πραγματική εικόνα της μονάδας οδηγού κινητήρα ULN2003:
Παρακάτω έχουμε δώσει συνδέσεις ακίδων Atmega16 με ULN2003 και L293D για περιστροφή του κινητήρα stepper. Η διασύνδεση του βηματικού κινητήρα με τη μονάδα L293D εξηγείται σε μεταγενέστερη ενότητα. Να θυμάστε ότι απαιτείται μόνο μία μονάδα είτε ULN2003 είτε L293D για τον έλεγχο του κινητήρα stepper.
Οι συνδέσεις ακίδων για INPUT είναι οι εξής:
Atmega16 |
ULN2003 |
L293D |
Α0 |
IN1 (PIN1) |
IN1 (PIN2) |
Α'1 |
IN2 (PIN2) |
IN2 (PIN7) |
Α2 |
IN3 (PIN3) |
IN3 (PIN10) |
Α3 |
IN4 (PIN4) |
IN4 (PIN15) |
Οι συνδέσεις ακίδων για το OUTPUT έχουν ως εξής:
Κινητήρας Stepper |
ULN2003 |
L293D |
Πορτοκάλι |
OUT1 (PIN16) |
OUT1 (PIN3) |
Κίτρινος |
OUT2 (PIN15) |
OUT2 (PIN6) |
Ροζ |
OUT3 (PIN14) |
OUT3 (PIN11) |
Μπλε |
OUT4 (PIN13) |
OUT4 (PIN14) |
Διάγραμμα κυκλώματος για έλεγχο κινητήρα Stepper χρησιμοποιώντας μονάδα L293D:
Έλεγχος Stepper Motor με AVR ATmega16
Όπως έχει ήδη ειπωθεί, σε αντίθεση με το Servo Motor, οι κινητήρες Stepper χρειάζονται εξωτερικά προγράμματα οδήγησης, π.χ. ULN2003 ή L293D. Απλώς συνδέστε το Circuit όπως παραπάνω και ανεβάστε το πρόγραμμα main.c που δίνεται στο τέλος.
Το σχέδιο δείχνει το βηματικό κινητήρα που περιστρέφεται και στις δύο πλευρές, δηλαδή δεξιόστροφα και αριστερόστροφα. Αν θέλετε να περιστρέψετε το stepper προς μία κατεύθυνση, απλώς σχολιάστε τις γραμμές κώδικα μιας άλλης κατεύθυνσης στο σκίτσο.
Ο πλήρης κωδικός AVR για τον έλεγχο του Stepper Motor δίνεται παρακάτω. Ο κώδικας είναι απλός και μπορεί να γίνει κατανοητός εύκολα. Παρακάτω δίνονται δύο κωδικοί, ένας για περιστρεφόμενο κινητήρα stepper με ULN2003 και δεύτερος με μονάδα L293D.
Συνδέστε το USBASP v2.0 και ακολουθήστε τις οδηγίες σε αυτόν τον σύνδεσμο για να προγραμματίσετε τον Atmega16 AVR Microcontroller χρησιμοποιώντας USBASP και Atmel Studio 7.0. Απλώς δημιουργήστε το σκίτσο και ανεβάστε χρησιμοποιώντας εξωτερική εργαλειοθήκη.
Ο πλήρης κώδικας με το βίντεο επίδειξης δίνεται παρακάτω.