Σε αυτό το σεμινάριο πρόκειται να συνδέσουμε έναν κινητήρα DC με το Arduino UNO και να ελέγξουμε την ταχύτητά του χρησιμοποιώντας την έννοια PWM (Pulse Width Modulation). Αυτή η δυνατότητα είναι ενεργοποιημένη στο UNO για λήψη μεταβλητής τάσης έναντι σταθερής τάσης. Η μέθοδος PWM εξηγείται εδώ. θεωρήστε ένα απλό κύκλωμα όπως φαίνεται στο σχήμα.
Εάν πατηθεί το κουμπί εάν το σχήμα, τότε ο κινητήρας θα αρχίσει να περιστρέφεται και θα είναι σε κίνηση μέχρι να πατηθεί το κουμπί. Αυτή η πίεση είναι συνεχής και αντιπροσωπεύεται στο πρώτο κύμα του σχήματος. Εάν, για μια περίπτωση, το κουμπί θεωρήματος πατηθεί για 8ms και ανοίξει για 2ms σε έναν κύκλο 10ms, κατά τη διάρκεια αυτής της περίπτωσης ο κινητήρας δεν θα βιώσει την πλήρη τάση μπαταρίας 9V καθώς το κουμπί πατάται μόνο για 8ms, έτσι η τάση τερματικού RMS ο κινητήρας θα είναι περίπου 7V. Λόγω αυτής της μειωμένης τάσης RMS ο κινητήρας θα περιστραφεί αλλά με μειωμένη ταχύτητα. Τώρα ο μέσος όρος ενεργοποίησης για περίοδο 10ms = Χρόνος ΕΝΕΡΓΟΠΟΙΗΣΗΣ / (Χρόνος ΕΝΕΡΓΟΠΟΙΗΣΗΣ + Χρόνος απενεργοποίησης), αυτό ονομάζεται κύκλος λειτουργίας και είναι 80% (8 / (8 + 2)).
Σε δεύτερη και τρίτη περίπτωση, το κουμπί πατάται ακόμη λιγότερο χρόνο σε σύγκριση με την πρώτη περίπτωση. Εξαιτίας αυτού, η τάση τερματικού RMS στους ακροδέκτες κινητήρα μειώνεται ακόμη περισσότερο. Λόγω αυτής της μειωμένης τάσης, η ταχύτητα του κινητήρα μειώνεται ακόμη περισσότερο. Αυτή η μείωση της ταχύτητας με συνεχή κύκλο λειτουργίας συμβαίνει μέχρι ένα σημείο, όπου η τάση του ακροδέκτη του κινητήρα δεν θα είναι αρκετή για την περιστροφή του κινητήρα.
Έτσι, μπορούμε να συμπεράνουμε ότι το PWM μπορεί να χρησιμοποιηθεί για τη μεταβολή της ταχύτητας του κινητήρα.
Πριν προχωρήσουμε περαιτέρω, πρέπει να συζητήσουμε το H-BRIDGE. Τώρα αυτό το κύκλωμα έχει κυρίως δύο λειτουργίες, πρώτον είναι να οδηγήσει έναν κινητήρα DC από σήματα ελέγχου χαμηλής ισχύος και το άλλο είναι να αλλάξει την κατεύθυνση περιστροφής του κινητήρα DC.
Φιγούρα 1
Σχήμα 2
Όλοι γνωρίζουμε ότι για έναν κινητήρα DC, για να αλλάξουμε την κατεύθυνση περιστροφής, πρέπει να αλλάξουμε τις πολικότητες της τάσης τροφοδοσίας του κινητήρα. Έτσι, για να αλλάξουμε τις πολικότητες χρησιμοποιούμε το H-Bridge. Τώρα στο παραπάνω σχήμα1 έχουμε διακόπτες Fours. Όπως φαίνεται στο σχήμα 2, για την περιστροφή του κινητήρα Α1 και Α2 είναι κλειστά. Εξαιτίας αυτού, το ρεύμα ρέει μέσω του κινητήρα από δεξιά προς τα αριστερά, όπως φαίνεται στο 2 nd μέρος της Σχήμα 3. Προς το παρόν θεωρήστε ότι ο κινητήρας περιστρέφεται δεξιόστροφα. Τώρα, εάν οι διακόπτες A1 και A2 είναι ανοιχτοί, οι B1 και B2 είναι κλειστοί. Το ρεύμα μέσω του κινητήρα ροές από αριστερά προς τα δεξιά όπως φαίνεται στο 1 st μέρος του σχήματος3. Αυτή η κατεύθυνση ροής ρεύματος είναι αντίθετη από την πρώτη και έτσι βλέπουμε ένα αντίθετο δυναμικό στον ακροδέκτη του κινητήρα από το πρώτο, έτσι ο κινητήρας περιστρέφεται κατά το ρολόι. Έτσι λειτουργεί ένα H-BRIDGE. Ωστόσο, οι κινητήρες χαμηλής ισχύος μπορούν να κινηθούν από ένα H-BRIDGE IC L293D.
Το L293D είναι ένα H-BRIDGE IC που έχει σχεδιαστεί για την οδήγηση κινητήρων DC χαμηλής ισχύος και φαίνεται στην εικόνα. Αυτό το IC αποτελείται από δύο γέφυρες h και έτσι μπορεί να οδηγήσει δύο κινητήρες DC. Έτσι, αυτό το IC μπορεί να χρησιμοποιηθεί για να οδηγήσει τους κινητήρες του ρομπότ από τα σήματα του μικροελεγκτή.
Τώρα, όπως συζητήθηκε προηγουμένως, αυτό το IC έχει τη δυνατότητα να αλλάξει την κατεύθυνση περιστροφής του κινητήρα DC. Αυτό επιτυγχάνεται με τον έλεγχο των επιπέδων τάσης στα INPUT1 και INPUT2.
Ενεργοποίηση καρφίτσας |
Pin Pin 1 |
Καρφίτσα εισαγωγής 2 |
Κατεύθυνση κινητήρα |
Υψηλός |
Χαμηλός |
Υψηλός |
Στρίψτε δεξιά |
Υψηλός |
Υψηλός |
Χαμηλός |
Στρίψτε αριστερά |
Υψηλός |
Χαμηλός |
Χαμηλός |
Να σταματήσει |
Υψηλός |
Υψηλός |
Υψηλός |
Να σταματήσει |
Έτσι, όπως φαίνεται στην παραπάνω εικόνα, για την περιστροφή δεξιόστροφα 2Α πρέπει να είναι υψηλή και 1Α πρέπει να είναι χαμηλή. Ομοίως για αριστερόστροφα 1Α πρέπει να είναι υψηλό και 2Α πρέπει να είναι χαμηλό.
Όπως φαίνεται στην εικόνα, το Arduino UNO διαθέτει κανάλια 6PWM, έτσι μπορούμε να πάρουμε PWM (μεταβλητή τάση) σε οποιαδήποτε από αυτές τις έξι ακίδες. Σε αυτό το σεμινάριο θα χρησιμοποιήσουμε το PIN3 ως έξοδο PWM.
Υλικό: ARDUINO UNO, τροφοδοτικό (5v), πυκνωτής 100uF, LED, κουμπιά (δύο κομμάτια), αντίσταση 10KΩ (δύο τεμάχια).
Λογισμικό: arduino IDE (Arduino nightly).
Διάγραμμα κυκλώματος
Το κύκλωμα συνδέεται στο breadboard σύμφωνα με το παραπάνω διάγραμμα κυκλώματος. Ωστόσο, πρέπει να προσέξετε κατά τη σύνδεση των ακροδεκτών LED. Αν και τα κουμπιά εμφανίζουν εφέ αναπήδησης σε αυτήν την περίπτωση, δεν προκαλούν σημαντικά σφάλματα, οπότε δεν χρειάζεται να ανησυχούμε αυτή τη φορά.
Το PWM από το UNO είναι εύκολο, σε κανονικές περιπτώσεις η ρύθμιση ενός ελεγκτή ATMEGA για σήμα PWM δεν είναι εύκολη, πρέπει να ορίσουμε πολλούς καταχωρητές και ρυθμίσεις για ένα ακριβές σήμα, ωστόσο στο ARDUINO δεν χρειάζεται να ασχοληθούμε με όλα αυτά τα πράγματα.
Από προεπιλογή, όλα τα αρχεία κεφαλίδας και τα μητρώα είναι προκαθορισμένα από το ARDUINO IDE, απλά πρέπει να τα καλέσουμε και αυτό θα έχουμε μια έξοδο PWM στην κατάλληλη καρφίτσα.
Τώρα για να έχουμε έξοδο PWM σε κατάλληλο πείρο, πρέπει να εργαστούμε σε τρία πράγματα,
|
Πρώτα πρέπει να επιλέξουμε τον ακροδέκτη εξόδου PWM από έξι ακίδες, μετά από αυτό πρέπει να ορίσουμε τον ακροδέκτη ως έξοδο.
Στη συνέχεια πρέπει να ενεργοποιήσουμε τη δυνατότητα PWM του UNO καλώντας τη λειτουργία "analogWrite (pin, value)". Εδώ το «pin» αντιπροσωπεύει τον αριθμό pin όπου χρειαζόμαστε έξοδο PWM το βάζουμε ως «3». Έτσι στο PIN3 έχουμε έξοδο PWM.
Η τιμή είναι ο κύκλος λειτουργίας ΕΝΕΡΓΟΠΟΙΗΣΗΣ, μεταξύ 0 (πάντα απενεργοποιημένος) και 255 (πάντα ενεργοποιημένος). Θα αυξήσουμε και θα μειώσουμε αυτόν τον αριθμό με το πάτημα του κουμπιού.
Το UNO έχει μέγιστη ανάλυση «8», δεν μπορεί κανείς να προχωρήσει περισσότερο, εξ ου και οι τιμές από 0-255. Ωστόσο, μπορεί κανείς να μειώσει την ανάλυση του PWM χρησιμοποιώντας την εντολή "analogWriteResolution ()", εισάγοντας μια τιμή από 4-8 στα αγκύλια, μπορούμε να αλλάξουμε την τιμή της από τέσσερα bit PWM σε οκτώ bit PWM.
Ο διακόπτης πρόκειται να αλλάξει την κατεύθυνση περιστροφής του κινητήρα DC.