- Διαμόρφωση πλάτους παλμού:
- Απαιτούμενο υλικό
- Διάγραμμα κυκλώματος
- Κωδικός και επεξήγηση
- Έλεγχος ταχύτητας DC Motor χρησιμοποιώντας το Arduino
Ο κινητήρας DC είναι ο πιο χρησιμοποιημένος κινητήρας σε έργα ρομποτικής και ηλεκτρονικών. Για τον έλεγχο της ταχύτητας του κινητήρα DC έχουμε διάφορες μεθόδους, όπως η ταχύτητα μπορεί να ελεγχθεί αυτόματα με βάση τη θερμοκρασία, αλλά σε αυτό το έργο η μέθοδος PWM θα χρησιμοποιηθεί για τον έλεγχο της ταχύτητας του κινητήρα DC. Εδώ σε αυτό το έργο Arduino Motor Speed Control, η ταχύτητα μπορεί να ελεγχθεί περιστρέφοντας το κουμπί ποτενσιόμετρου.
Διαμόρφωση πλάτους παλμού:
Τι είναι το PWM; Το PWM είναι μια τεχνική χρησιμοποιώντας μπορούμε να ελέγξουμε την τάση ή την ισχύ. Για να το καταλάβετε πιο απλά, εάν εφαρμόζετε 5 volt για την οδήγηση ενός κινητήρα τότε ο κινητήρας θα κινείται με κάποια ταχύτητα, τώρα εάν μειώσουμε την εφαρμοζόμενη τάση κατά 2 μέσα εφαρμόζουμε 3 volt στον κινητήρα, τότε η ταχύτητα του κινητήρα μειώνεται επίσης. Αυτή η ιδέα χρησιμοποιείται στο έργο για τον έλεγχο της τάσης χρησιμοποιώντας PWM. Εξηγήσαμε λεπτομερώς το PWM σε αυτό το άρθρο. Ελέγξτε επίσης αυτό το κύκλωμα όπου το PWM χρησιμοποιείται για τον έλεγχο της φωτεινότητας των LED: 1 Watt LED Dimmer.
% Κύκλος εργασίας = (TON / (TON + TOFF)) * 100 Πού, T ON = ΥΨΗΛΟΣ χρόνος τετραγωνικού κύματος T OFF = ΧΑΜΗΛΟΣ χρόνος τετραγωνικού κύματος
Τώρα, εάν ο διακόπτης στο σχήμα κλείνει συνεχώς για μια χρονική περίοδο, τότε ο κινητήρας θα ανάβει συνεχώς κατά τη διάρκεια αυτής της περιόδου. Εάν ο διακόπτης είναι κλειστός για 8ms και ανοίξει για 2ms σε έναν κύκλο 10ms, τότε ο κινητήρας θα είναι ON μόνο στα 8ms. Τώρα ο μέσος τερματικός σταθμός πέρα από μια περίοδο 10ms = Χρόνος ΕΝΕΡΓΟΠΟΙΗΣΗΣ / (Χρόνος ΕΝΕΡΓΟΠΟΙΗΣΗΣ + Χρόνος απενεργοποίησης), αυτό ονομάζεται κύκλος λειτουργίας και είναι 80% (8 / (8 + 2)), έτσι ο μέσος όρος Η τάση εξόδου θα είναι 80% της τάσης της μπαταρίας. Τώρα το ανθρώπινο μάτι δεν μπορεί να δει ότι ο κινητήρας είναι ενεργοποιημένος για 8ms και σβηστός για 2ms, έτσι θα μοιάζει με DC Motor περιστρέφεται με ταχύτητα 80%.
Στη δεύτερη περίπτωση, ο διακόπτης είναι κλειστός για 5ms και ανοίγει για 5ms για περίοδο 10ms, οπότε η μέση τάση τερματικού στην έξοδο θα είναι 50% της τάσης της μπαταρίας. Πείτε εάν η τάση της μπαταρίας είναι 5V και ο κύκλος λειτουργίας είναι 50% και έτσι η μέση τάση τερματικού θα είναι 2,5V.
Στην τρίτη περίπτωση ο κύκλος λειτουργίας είναι 20% και η μέση τάση τερματικού είναι 20% της τάσης της μπαταρίας.
Έχουμε χρησιμοποιήσει το PWM με το Arduino σε πολλά από τα Έργα μας:
- Arduino LED Dimmer με χρήση PWM
- Ανεμιστήρας ελεγχόμενης θερμοκρασίας με χρήση Arduino
- DC Motor Control με χρήση Arduino
- Έλεγχος ταχύτητας ανεμιστήρα AC χρησιμοποιώντας Arduino και TRIAC
Μπορείτε να μάθετε περισσότερα σχετικά με το PWM, περνώντας από διάφορα έργα που βασίζονται στο PWM.
Απαιτούμενο υλικό
- Arduino UNO
- Κινητήρας DC
- Τρανζίστορ 2N2222
- Ποτενσιόμετρο 100k ohm
- Πυκνωτής 0.1uF
- Ψωμί
- Καλώδια άλματος
Διάγραμμα κυκλώματος
Το διάγραμμα κυκλώματος για τον έλεγχο ταχύτητας κινητήρα Arduino DC χρησιμοποιώντας PWM βρίσκεται παρακάτω:
Κωδικός και επεξήγηση
Ο πλήρης κωδικός για το Arduino DC Motor Control χρησιμοποιώντας ποτενσιόμετρο δίνεται στο τέλος.
Στον παρακάτω κώδικα, έχουμε αρχικοποιήσει τη μεταβλητή c1 και c2 και εκχωρήσαμε τον αναλογικό ακροδέκτη A0 για την έξοδο ποτενσιόμετρου και τον 12 ο ακροδέκτη για «pwm».
int pwmPin = 12; int pot = Α0; int c1 = 0; int c2 = 0;
Τώρα, στον παρακάτω κώδικα, ορίστε τον ακροδέκτη A0 ως είσοδο και 12 (που είναι ακροδέκτης PWM) ως έξοδο.
άκυρη ρύθμιση () { pinMode (pwmPin, OUTPUT); // δηλώνει τον ακροδέκτη 12 ως έξοδο pinMode (pot, INPUT). // δηλώνει τον ακροδέκτη A0 ως είσοδο }
Τώρα, στο βρόχο κενού (), διαβάζουμε την αναλογική τιμή (από το A0) χρησιμοποιώντας το analogRead (pot) και την αποθηκεύουμε στη μεταβλητή c2. Στη συνέχεια, αφαιρέστε την τιμή c2 από το 1024 και αποθηκεύστε το αποτέλεσμα στο c1. Στη συνέχεια, κάνει το PWM pin 12 ης του Arduino HIGH και, στη συνέχεια, μετά από μια καθυστέρηση της αξίας C1 κάνουμε αυτή την καρφίτσα LOW. Και πάλι, μετά από μια καθυστέρηση της τιμής c2, ο βρόχος συνεχίζεται.
Ο λόγος για την αφαίρεση της αναλογικής τιμής από το 1024 είναι ότι το Arduino Uno ADC έχει ανάλυση 10-bit (έτσι οι ακέραιες τιμές από 0 - 2 ^ 10 = 1024 τιμές). Αυτό σημαίνει ότι θα αντιστοιχίσει τις τάσεις εισόδου μεταξύ 0 και 5 βολτ σε ακέραιες τιμές μεταξύ 0 και 1024. Επομένως, αν πολλαπλασιάσουμε την είσοδο anlogValue σε (5/1024), τότε λαμβάνουμε την ψηφιακή τιμή της τάσης εισόδου. Μάθετε εδώ πώς να χρησιμοποιείτε την είσοδο ADC στο Arduino.
void loop () { c2 = analogRead (pot); c1 = 1024-c2; digitalWrite (pwmPin, HIGH); // σύνολα pin 12 ΥΨΗΛΗ καθυστέρηση Μικροδευτερόλεπτα (c1); // περιμένει c1 uS (high time) digitalWrite (pwmPin, LOW). // σύνολα pin 12 LOW delayMicroseconds (c2); // περιμένει c2 uS (χαμηλός χρόνος) }
Έλεγχος ταχύτητας DC Motor χρησιμοποιώντας το Arduino
Σε αυτό το κύκλωμα, για τον έλεγχο της ταχύτητας του κινητήρα DC, χρησιμοποιούμε ποτενσιόμετρο 100K ohm για να αλλάξουμε τον κύκλο λειτουργίας του σήματος PWM. 100K ohm ποτενσιόμετρο είναι συνδεδεμένη με την αναλογική ακροδέκτη εισόδου Α0 του Arduino ΟΗΕ και του κινητήρα συνεχούς ρεύματος είναι συνδεδεμένη με το 12 ου πείρου του Arduino (η οποία είναι ο πείρος PWM). Η λειτουργία του προγράμματος Arduino είναι πολύ απλή, καθώς διαβάζει την τάση από τον αναλογικό ακροδέκτη A0. Η τάση στον αναλογικό πείρο μεταβάλλεται χρησιμοποιώντας το ποτενσιόμετρο. Αφού κάνετε κάποιον απαραίτητο υπολογισμό, ο κύκλος λειτουργίας προσαρμόζεται ανάλογα.
Για παράδειγμα, εάν τροφοδοτήσουμε τιμή 256 στην αναλογική είσοδο, τότε ο χρόνος ΥΨΗΛΗΣ θα είναι 768ms (1024-256) και ο ΧΑΜΗΛΟΣ χρόνος θα είναι 256ms. Επομένως, απλά σημαίνει ότι ο κύκλος λειτουργίας είναι 75%. Τα μάτια μας δεν μπορούν να δουν τέτοια ταλάντωση υψηλής συχνότητας και φαίνεται ότι ο κινητήρας είναι συνεχώς αναμμένος με το 75% της ταχύτητας. Έτσι μπορούμε να εκτελέσουμε τον έλεγχο ταχύτητας κινητήρα χρησιμοποιώντας το Arduino.