Υπό ανάπτυξη
Περίληψη
Στο παρακάτω άρθρο θα σας δείξω πως να χειριστείτε να τεστάρετε ενα βηματικό κινητήρα. Δεν θα χρειαστεί να φτιάξουμε κάποια πολύπλοκη συσκευή ή να αγοράσουμε κάποιο πανάκριβο τέστερ. Το μόνο που χρειάζεται είναι ένα arduino board και μια μικρη πλακέτα με το ολοκληρωμένο L298N που οδηγεί τόσο κινητήρες συνεχούς ρεύματος όσο και βηματικούς κινητήρες. Τέλος θα χρειαστεί και ένα τροφοδοτικό για να δώσει το απαραίτητο ρεύμα στο βηματικό κινητήρα.
Hardware
Απαραίτητα Υλικά
- Arduino uno board
- L298Ν motor driver
- step motor
- τροφοδοτικό
Συνδεσμολογίες - Σχέδια
Βήματα υλοποίησης
Βήμα 1:
Pinout
OUT1 βηματικό μοτέρ A+
OUT2 μοτέρ βηματικής λειτουργίας A-
12V jumper - αφαιρέστε το αν χρησιμοποιείτε τάση τροφοδοσίας μεγαλύτερη από 12V DC. Όταν ο βραχυκυκλωτήρας είναι στη θέση του, ο ρυθμιστής τάσης είναι ενεργός (που σημαίνει 12V μέγιστο σε αυτήν την είσοδο).
Συνδέστε την τάση τροφοδοσίας του κινητήρα στην κλέμα +12, η οποία μπορεί να φτάσει από 6 βολτ μέχρι μέγιστη στα 35V DC. Αφαιρέστε το βραχυκυκλωτήρα 12V εάν η τάση ειναι μεγαλύτερη των 12V DC
GND την γείωση του τροφοδοτικού
παράγεται 5V τάση όταν ο βραχυκυκλωτήρας 12V είναι στη θέση του. Αυτό είναι ιδανικό για την τροφοδότηση του Arduino σας.
ΕΝΑ βραχυκυκλωτήρας. Αφήστε το στη θέση του όταν χρησιμοποιείτε ένα βηματικό μοτέρ.
ΙΝ1
IN2
IN3
IN4
ΕΝΒ βραχυκυκλωτήρας. Αφήστε το στη θέση του όταν χρησιμοποιείτε ένα βηματικό μοτέρ.
OUT3 βηματικός κινητήρας B+
OUT4 βηματικός κινητήρας B-
Συνδέστε την πλακέτα οδηγού βηματικού L298N σε τροφοδοσία ισχύος 9V ... 12V χρησιμοποιώντας τον ακροδέκτη (+ 12V) και (GND). Αφήστε το jumper στη θέση του. Τώρα μπορείτε να χρησιμοποιήσετε τον ακροδέκτη + 5V στο (και τον πείρο GND) για να τροφοδοτήσετε το Arduino. Αν αφαιρέσετε το βραχυκυκλωτήρα, ο ρυθμιστής τάσης θα είναι απενεργοποιημένος και ο + 5V ακροδέκτης στο δεν είναι πλέον ενεργός.
Βήμα 2:
Software
Βήματα υλοποίησης
Βήμα 1:
Ανοίγουμε την εφαρμογή του sketch και φορτώνουμε μια κάθε φορά εφαρμογή
/* Stepper Motor έλεγχος - μία περιστροφή Αυτό το πρόγραμμα οδηγεί unipolar or bipolar βηματικό κινητήρα. The motor είναι συνδεμένο στα ψηφιακές ακίδες 8 - 11 του Arduino. Tο μοτέρ θα περιστραφεί μια φορά προς μια κατεύθυνση, και μετά μια περιστροφή στην αντίθετη κατεύθυνση. */ #include <Stepper.h> const int stepsPerRevolution = 200; // σύνηθες βήματα για μια περιστροφή όταν έχουμε βημα 1.8 μοίρες 360/1.8=200 // αρχικοποίηση της βιβλιοθήκης για τα χρησιμοποιούμενες ακίδες 8 ως 11: Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); void setup() { // ορισμός ταχύτητας περιστροφής στα 60 rpm: myStepper.setSpeed(60); // αρχικοποίηση serial θύρας: Serial.begin(9600); } void loop() { // περιστροφή ένα βήμα στη μια κατεύθυνση: Serial.println("clockwise"); myStepper.step(stepsPerRevolution); delay(500); // περιστροφή ένα βήμα στην άλλη κατεύθυνση: Serial.println("counterclockwise"); myStepper.step(-stepsPerRevolution); delay(500); }
Βήμα 2:
/* έλεγχος βηματικού - ένα βήμα τη φορά Tο motor θα κάνει ένα βήμα αλλά πολύ αργά και προς μια κατεύθυνση. Χρησιμοποιήστε το για να βρείτε τα βήματα του κινητήρα σας, εάν δεν τα γνωρίζετε. */ #include <Stepper.h> const int stepsPerRevolution = 200; // σύνηθες βήματα για μια περιστροφή όταν έχουμε βημα 1.8 μοίρες 360/1.8=200 // αρχικοποίηση της βιβλιοθήκης για τα χρησιμοποιούμενες ακίδες 8 ως 11: Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); int stepCount = 0; // αριθμός βημάτων που θα παίρνει ο κινητήρας void setup() { // αρχικοποίηση της serial θύρας: Serial.begin(9600); } void loop() { // κίνηση βήμα βήμα: myStepper.step(1); Serial.print("steps:"); Serial.println(stepCount); stepCount++; delay(500); }
Βήμα 3:
/* Έλεγχος ταχύτητας βηματικού κινητήρα Ένα ποτενσιόμετρο θα συνδεθεί στην αναλογική είσοδο Α0. Το μοτέρ γυρνάει δεξιόστροφα. Η μεγαλύτερη τιμή από το ποτενσιόμετρο, θα επιφέρει την μεγαλύτερη ταχύτητα. Διότι η setSpeed() θέτει καθυστέρηση μεταξύ των βημάτων, να σημειωθεί το μοτέρ είναι λιγότερο ανταποκρίσιμο στις μεταβολές με χαμηλή ταχύτητα όταν το ποτενσιόμετρο έχει μικρές τιμές. */ #include <Stepper.h> const int stepsPerRevolution = 200; // σύνηθες βήματα για μια περιστροφή όταν έχουμε βημα 1.8 μοίρες 360/1.8=200 // Αρχικοποίηση library στις ακίδες 8 ως 11: Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); int stepCount = 0; // αριθμός βημάτων void setup() { // καμία αλλαγή ή ρύθμιση σε αυτό το Void } void loop() { // Διαβάζουμε την τιμή από το ποτενσιόμετρο: int sensorReading = analogRead(A0); // Αντιστοιχίζουμε στην περιοχή από 0 εως 100 την τιμή του ποτενσιομέτρου: int motorSpeed = map(sensorReading, 0, 1023, 0, 100); // θέτουμε την ταχύτητα: if (motorSpeed > 0) { myStepper.setSpeed(motorSpeed); // βήμα 1/100 μιας περιστροφής: myStepper.step(stepsPerRevolution / 100); } }
Αποτέλεσμα
.............................................................
.............................................................
Συμπεράσματα - Βελτιώσεις
................................................................
................................................................
Συχνές Ερωτήσεις
.................................................................
..................................................................