Κατηγορίες: Κύκλωμα μικροελεγκτή
Αριθμός εμφανίσεων: 19709
Σχόλια σχετικά με το άρθρο: 0

Έλεγχος κινητήρα και σερβομηχανισμού με Arduino

 

Σε απλούς σχεδιασμούς συστημάτων αυτοματισμού, είναι συχνά απαραίτητο όχι μόνο να διαβάζετε τις μετρήσεις αισθητήρων, αλλά και να ενεργοποιείτε μηχανισμούς κίνησης. Για αυτό, χρησιμοποιούνται διάφορες ηλεκτρικές μηχανές. Η απλούστερη και πιο δημοφιλής επιλογή είναι ένας κινητήρας DC. Κέρδισε την αγάπη των εραστών με την προσβασιμότητά του, την ευκολία προσαρμογής της ταχύτητας. Αν η εργασία είναι να μετακινήσετε οποιοδήποτε μηχανισμό σε μια δεδομένη γωνία ή απόσταση, είναι βολικό να χρησιμοποιήσετε μια μονάδα σερβομηχανισμού ή ένα μοτέρ βηματικής βαθμίδας.

Σε αυτό το άρθρο, εξετάζουμε σερβομηχανισμούς και μικρούς ηλεκτροκινητήρες συνεχούς ρεύματος, συνδέοντάς τους σε πίνακα Arduino και ρύθμισης του DCT.

Έλεγχος κινητήρα και σερβομηχανισμού με Arduino

DC κινητήρα

Ο πιο συνηθισμένος ηλεκτροκινητήρας που χρησιμοποιείται σε φορητές συσκευές, παιχνίδια, ραδιοελεγχόμενα μοντέλα και άλλες συσκευές. Οι μόνιμοι μαγνήτες στερεώνονται πάνω στο μικρό ηλεκτρικό μοτέρ του στάτορα και σε περιέλιξη στον στροφέα.

DC κινητήρα

Το ρεύμα τροφοδοτείται στο τύλιγμα μέσω της διάταξης βούρτσας. Οι βούρτσες είναι κατασκευασμένες από γραφίτη, μερικές φορές βρέθηκαν χάλκινες συρόμενες επαφές. Οι βούρτσες γλιστρούν πάνω από τα πτερύγια που βρίσκονται στο ένα άκρο του δρομέα. Αν δεν βρεθείτε σε λεπτομέρειες, τότε η ταχύτητα περιστροφής εξαρτάται από το ρεύμα περιέλιξης οπλισμού.

Ηλεκτρική αγκύρωση συλλέκτη

Σε μεγάλους μοτέρ συνεχούς ρεύματος, στον στάτορα, συνδέεται μια περιέλιξη διέγερσης, συνδεδεμένη με την περιέλιξη του ρότορα (μέσω της διάταξης βούρτσας) με κάποιο τρόπο (διαδοχική, παράλληλη ή μεικτή διέγερση). Έτσι επιτυγχάνεται η επιθυμητή ροπή και ο αριθμός των στροφών.


Έλεγχος ταχύτητας

Ηλεκτροκινητήρας DC

Όταν συνδέεται στο δίκτυο, ο κινητήρας DC αρχίζει να περιστρέφεται με ονομαστική ταχύτητα. Για να μειώσετε την ταχύτητα, πρέπει να περιορίσετε το ρεύμα. Για να γίνει αυτό, εισάγονται αντιστάσεις έρματος, αλλά αυτό μειώνει την αποδοτικότητα της εγκατάστασης στο σύνολό της και εμφανίζεται μια υπερβολική πηγή θερμότητας. Για πιο αποτελεσματική ρύθμιση της τάσης και του ρεύματος, χρησιμοποιείται μια άλλη μέθοδος - Έλεγχος PWM.

Έλεγχος PWM

Μία μέθοδος ελέγχου του σήματος (τάσης) διαμορφωμένου πλάτους παλμού είναι η παραγωγή της επιθυμητής τιμής τάσης με αλλαγή του πλάτους παλμού, με σταθερή διάρκεια της περιόδου (συχνότητα).

Δηλαδή, η περίοδος χωρίζεται σε δύο μέρη:

1. Χρόνος ώθησης.

2. Παύση χρόνου.

Ο λόγος του χρόνου παλμού προς το συνολικό χρόνο της περιόδου ονομάζεται κύκλος λειτουργίας:

Ks = ti / tper

η αμοιβαιότητα ονομάζεται "κύκλος εργασιών":

D = 1 / KZ = tper / t και

Για να περιγράψουμε τον τρόπο λειτουργίας του ελεγκτή PWM, χρησιμοποιούνται και οι δύο έννοιες: τόσο ο κύκλος λειτουργίας όσο και ο κύκλος λειτουργίας.

Η τρέχουσα κατανάλωση του κινητήρα εξαρτάται από την ισχύ του. Ο αριθμός των επαναστάσεων, όπως ειπώθηκε, εξαρτάται από το τρέχον. Το ρεύμα μπορεί να ρυθμιστεί αλλάζοντας την ποσότητα τάσης που εφαρμόζεται στις περιελίξεις. Στην πραγματικότητα, όταν τροφοδοτείται με τάση που υπερβαίνει την ονομαστική τιμή σύμφωνα με το πιστοποιητικό κινητήρα, η ταχύτητά του θα υπερβεί και την ονομαστική ταχύτητα. Ωστόσο, αυτοί οι τρόποι λειτουργίας είναι επικίνδυνοι για τον κινητήρα, καθώς ένα μεγαλύτερο ρεύμα ρέει στις περιελίξεις, γεγονός που προκαλεί την αυξημένη θέρμανση τους.

Εάν η ζημιά στον κινητήρα από βραχυπρόθεσμες παλμοί ή βραχυπρόθεσμα βραχυπρόθεσμες λειτουργίες είναι ελάχιστη, τότε κατά τη διάρκεια παρατεταμένης λειτουργίας σε υψηλή τάση και στροφές θα καεί ή τα έδρανα του θα θερμανθούν και θα σφηνωθούν, και στη συνέχεια οι περιελίξεις θα καούν εάν η παροχή ρεύματος δεν αποσυνδεθεί.

Εάν η τάση εισόδου είναι πολύ χαμηλή, ο μικρός κινητήρας μπορεί απλά να μην έχει αρκετή ισχύ για κίνηση. Ως εκ τούτου, είναι απαραίτητο να βρεθεί πειραματικά η κανονική ταχύτητα και τάση για συγκεκριμένο κινητήρα που δεν υπερβαίνει την ονομαστική.


Συνδεόμαστε με το arduino

Είχα ένα μικρό κινητήρα, φαίνεται από μια κασέτα, που σημαίνει ότι η ονομαστική τάση του θα είναι κάτω από 5 βολτ, τότε η ισχύς εξόδου του arduino θα είναι αρκετή. Θα το τροφοδοτήσω από τον ακροδέκτη 5V, δηλ. από την έξοδο του γραμμικού σταθεροποιητή που βρίσκεται στην πλακέτα. Σύμφωνα με το σχέδιο που βλέπετε παρακάτω.

Δεν γνωρίζω το ρεύμα αυτού του μοτέρ, γι 'αυτό το έχω συνδέσει με την ισχύ και εγκατέστησα ένα τρανζίστορ πεδίου-αποτελέσματος μεταξύ του κινητήρα και του ακροδέκτη τροφοδοσίας, στην πύλη του οποίου εφαρμόστηκε ένα σήμα από την έξοδο PWM, οποιαδήποτε από τις διαθέσιμες μπορεί να χρησιμοποιηθεί.

Διάγραμμα σύνδεσης κινητήρα DC Arduino

Για να ρυθμίσετε την ταχύτητα, πρόσθεσα μια μεταβλητή αντίσταση στο κύκλωμα, συνδέοντάς την με την αναλογική είσοδο A0. Για μια γρήγορη σύνδεση, χρησιμοποίησα ένα συγκολλητικό πανί χωρίς συγκόλληση, το οποίο ονομάζεται επίσης breadboard.

Έχω εγκαταστήσει μια αντίσταση περιορισμού ρεύματος στην καλωδίωση τρανζίστορ (για να μειώσει το ρεύμα φόρτισης της θύρας, αυτό θα σώσει τη θύρα από την καύση και την τροφοδοσία του μικροελεγκτή από την καθίζηση και την κατάψυξή του) κατά 240 Ohm, και το τράβηξε στο έδαφος με αντίσταση 12 kOhm, αυτό πρέπει να γίνει για να γίνει πιο σταθερό η δεξαμενή κλείστρου λειτουργούσε και εκφορτώθηκε γρηγορότερα.

Λεπτομέρειες σχετικά με τα τρανζίστορ εφέ πεδίου που περιγράφονται σε ένα άρθρο στην ιστοσελίδα μας. Χρησιμοποίησα ένα ισχυρό, κοινό και όχι πολύ ακριβά MOSFET με ένα n-κανάλι και μια ενσωματωμένη αντίστροφη δίοδο IRF840.

Εκτελεστικό και καθοριστικό μέρος του κυκλώματος

Αυτή είναι η εμφάνιση του εργαστηρίου μου:

DC κινητήρα και arduino

Η λειτουργία ελέγχου PWM καλείται κατά την εγγραφή στις αντίστοιχες τιμές εξόδου (3, 5, 6, 9, 10, 11) από 0 έως 255 με την εντολή AnalogWrite (pin, value). Η λογική της εργασίας της απεικονίζεται στα παρακάτω γραφήματα.

Λειτουργία ελέγχου PWM

Ένα τέτοιο σήμα εφαρμόζεται στην πύλη του τρανζίστορ:

Ένα τέτοιο σήμα εφαρμόζεται στην πύλη του τρανζίστορ

Ο κώδικας του προγράμματος για τη ντροπή είναι σύντομη και απλή, λεπτομερώς όλες αυτές οι λειτουργίες έχουν περιγραφεί σε προηγούμενα άρθρα για το arduino.

int αισθητήραςPin = A0; // είσοδος από ποτενσιόμετρο

int motorPin = 3; // Μεταφορά PWM στην πύλη της κάμερας

άκυρη ρύθμιση () {

pinMode (MotorPin, OUTPUT).

}

void loop () {

analogWrite (motorPin, χάρτης (analogRead (sensorPin), 0, 1023, 0, 256)).

}

Στη λειτουργία analogWrite, αντιστοιχίζω μια τιμή στην έξοδο PWM, μέσω της εντολής χάρτη, η χρήση της σάς επιτρέπει να αφαιρέσετε αρκετές γραμμές κώδικα και μία μεταβλητή.


Αυτό είναι ένα πρόγραμμα λειτουργίας και είναι εξαιρετικό για την παρακολούθηση των διαδικασιών κατά τη ρύθμιση της ισχύος φορτίου, της φωτεινότητας των LED, της ταχύτητας του κινητήρα, απλά πρέπει να συνδέσετε το επιθυμητό φορτίο αντί του κινητήρα. Ταυτόχρονα, αντί για 5V, μπορεί να εφαρμοστεί οποιαδήποτε τάση στο φορτίο, για παράδειγμα 12V, μην ξεχνάτε να συνδέσετε την επαφή με την πρίζα στην επαφή, για παράδειγμα 12V, μην ξεχνάτε να συνδέσετε την πρίζα με την πρίζα GND στην κάρτα μικροελεγκτή.

Στο arduino, η συχνότητα PWM, όταν ονομάζεται μέσω της λειτουργίας analogWrite, είναι μόνο 400 Hz, στις ελάχιστες τιμές τάσης, ακούστηκε από τις περιελίξεις του κινητήρα ένα βουητό της αντίστοιχης συχνότητας.

Arduino και σερβο

Σέρβο

Ένας κινητήρας που μπορεί να βρίσκεται σε μια προκαθορισμένη θέση και όταν εκτίθεται σε εξωτερικούς παράγοντες, για παράδειγμα, μια εξαναγκασμένη εκτροπή του άξονα διατηρεί τη θέση του αμετάβλητη - ονομάζεται σερβομηχανισμός. Σε γενικές γραμμές, ο ορισμός ακούγεται λίγο διαφορετικός:

Το Servo είναι κινητήρας με αρνητική ανάδραση.

Τυπικά, τρία καλώδια βγαίνουν από μια μονάδα σερβομηχανισμού:

  • Επιπλέον ισχύ.

  • Λιγότερη ισχύς.

  • Σήμα ελέγχου.

Ο σερβομηχανισμός αποτελείται από:

  • Κινητήρας συνεχούς ρεύματος (ή κινητήρας χωρίς ψήκτρες).

  • Τέλη διαχείρισης.

  • Αισθητήρας θέσης (κωδικοποιητής για σερβοειδή με γωνία περιστροφής 360 ° ή ποτενσιόμετρο για σερβοειδή με γωνία περιστροφής 180 °).

  • Μειωμένη ταχύτητα (μειώνει την ταχύτητα του κινητήρα και αυξάνει τη ροπή στρέψης στον άξονα κίνησης).

Η μονάδα ελέγχου συγκρίνει το σήμα στον ενσωματωμένο αισθητήρα θέσης και το σήμα που διήλθε από το καλώδιο ελέγχου, αν διαφέρουν, τότε υπάρχει μια περιστροφή υπό γωνία στην οποία η διαφορά μεταξύ του σήματος ισοπέδωσε.

Η αρχή της λειτουργίας του σερβο

Κύρια χαρακτηριστικά των σερβο:

  • Στροφές στροφής (χρόνος κατά τον οποίο ο άξονας περιστρέφεται κατά γωνία 60 °).

  • Ροπή στρέψης (kg / cm, δηλ. Πόσες χιλιόγραμμα μπορεί να αντέξει ο κινητήρας στο μοχλό 1 cm από τον άξονα).

  • Τάση τροφοδοσίας;

  • Τρέχουσα κατανάλωση.

  • Με τη μέθοδο ελέγχου (αναλογική ή ψηφιακή, δεν υπάρχει σημαντική διαφορά, αλλά η ψηφιακή είναι ταχύτερη και πιο σταθερή).

Τυπικά, η περίοδος σήματος είναι 20 ms και η διάρκεια του παλμού ελέγχου:

  • 544 μs - αντιστοιχεί σε 0 °.

  • 2400 μs - αντιστοιχεί σε γωνία 180 °.

Σε σπάνιες περιπτώσεις, το μήκος παλμού μπορεί να διαφέρει, για παράδειγμα, 760 και 1520 μs, αντίστοιχα, οι πληροφορίες αυτές μπορούν να διευκρινιστούν στην τεχνική τεκμηρίωση για τον οδηγό. Ένα από τα πιο δημοφιλή σερβο χόμπι είναι το Tower Pro SG90 και παρόμοια μοντέλα.Είναι φθηνό - περίπου 4 δολάρια.

Sevroprivod για arduino

Διαθέτει 1,8 kg / cm στον άξονα, και μαζί με αυτό είναι βίδες στερέωσης και μοχλούς με σφήνες για τον άξονα. Στην πραγματικότητα, αυτό το μωρό είναι αρκετά ισχυρό και είναι πολύ προβληματικό να τον σταματήσετε με ένα δάκτυλο - η ίδια η μηχανή αρχίζει να πέφτει από τα δάχτυλα - τέτοια είναι η δύναμή της.


Σέρβο έλεγχο και Arduino

Όπως ήδη αναφέρθηκε, ο έλεγχος πραγματοποιείται με αλλαγή της διάρκειας των παλμών, αλλά δεν συγχέουμε αυτή τη μέθοδο με PWM (PWM), το σωστό του όνομα είναι PDM (Pulse Duration Modulation). Οι μικρές αποκλίσεις στη συχνότητα σήματος (20 ms - διάρκεια, συχνότητα 50 Hz) δεν παίζουν ιδιαίτερο ρόλο. Αλλά μην αποκλίνετε από τη συχνότητα περισσότερο από 10 Hz, ο κινητήρας μπορεί να τρέξει ή να καεί.

Σέρβο έλεγχο και Arduino

Η σύνδεση με το arduino είναι αρκετά απλή, μπορείτε επίσης να τροφοδοτήσετε τον οδηγό από ένα pin 5v, αλλά δεν είναι επιθυμητό. Το γεγονός είναι ότι στην αρχή υπάρχει ένα μικρό άλμα στο ρεύμα, αυτό μπορεί να προκαλέσει μια ανάληψη ενέργειας και Λάθος έξοδοι μικροελεγκτών. Παρόλο που είναι δυνατή μια μικρή μονάδα (τύπου SG90), αλλά όχι περισσότερο.

Για να ελέγξετε αυτά τα σερβοειδή με arduino, έχετε τη βιβλιοθήκη Servo ενσωματωμένη στο IDE, έχει ένα μικρό σύνολο εντολών:

  • attach () - προσθέστε μια μεταβλητή στην ακίδα. Παράδειγμα: drive name.attach (9) - συνδέστε ένα σερβο στον ακροδέκτη 9. Εάν η μονάδα σας χρειάζεται μη τυπικά μήκη παλμών ελέγχου (544 και 2400 μs), τότε μπορούν να οριστούν χωρισμένα με κόμμα μετά τον αριθμό pin, για παράδειγμα: servo.attach (pin, min γωνία (μs), μέγιστη γωνία στο ISS)).

  • write () - ορίζει τη γωνία περιστροφής του άξονα σε μοίρες.

  • writeMicroseconds () - ορίζει τη γωνία μέσα από το μήκος παλμού σε μικροδευτερόλεπτα.

  • read () - προσδιορίζει την τρέχουσα θέση του άξονα.

  • () - Ελέγχει αν έχει ρυθμιστεί ένας ακροδέκτης με συνδεδεμένο σερβο.

  • detach () - Ακύρωση εντολής επισύναψης.

Αυτή η βιβλιοθήκη σας επιτρέπει να ελέγχετε 12 σερβομηχανές από τους UNO, Nano και τους παρόμοιους πίνακες (mega368 και 168), ενώ η δυνατότητα χρήσης του PWM στον ακροδέκτη 9 και 10 εξαφανίζεται. Αν έχετε MEGA, μπορείτε να ελέγξετε τον 48ο διακομιστή, αλλά το PWM στις ακίδες 11 και 12 θα εξαφανιστεί, εάν χρησιμοποιήσετε έως και 12 σερβομηχανισμούς, τότε το PWM θα παραμείνει πλήρως λειτουργικό σε όλες τις επαφές.

Εάν έχετε συνδέσει αυτήν τη βιβλιοθήκη, δεν θα μπορείτε να εργαστείτε με δέκτες / πομπούς 433 MHz. Υπάρχει μια βιβλιοθήκη Servo2 γι 'αυτό, η οποία κατά τα άλλα είναι ίδια.

Βιβλιοθήκη Servo2

Εδώ είναι ένα παράδειγμα του κώδικα που χρησιμοποίησα για πειράματα με μια σερβομηχανή, είναι στο πρότυπο σύνολο παραδειγμάτων:

#include // συνδέστε τη βιβλιοθήκη

Servo myservo; // δηλώθηκε η ονομασία μεταβλητής για το myservo servo

int potpin = 0; // pin για τη σύνδεση του ποτενσιόμετρου ρύθμισης

int val; // μεταβλητή για να αποθηκεύσετε τα αποτελέσματα της ανάγνωσης του σήματος από το ποτενσιόμετρο

άκυρη ρύθμιση () {

myservo.attach (9); // ορίστε 9 ακροδέκτες ως έξοδο ελέγχου για σερβο

}

void loop () {

val = αναλογικόΔιαβάστε (potpin); // αποτελέσματα ανάγνωσης του ποτενσιόμετρου που αποθηκεύτηκε στο trans. val, θα είναι στην περιοχή από 0 έως 1023

val = χάρτης (val, 0, 1023, 0, 180). // μεταφράστε το εύρος μέτρησης από την αναλογική είσοδο 0-1023

// στο εύρος εργασιών για σερβο 0-180 μοίρες

myservo.write (val); // περάστε τη μετατροπή σήμα από το pot-ra για έλεγχο σερβο-είσοδο

καθυστέρηση (15). // καθυστέρηση απαιτείται για τη σταθερή λειτουργία του συστήματος

 

Συνδέουμε το σέρβο στο Arduino

Συμπέρασμα

Χρησιμοποιώντας τους απλούστερους ηλεκτρικούς κινητήρες που συνδυάζονται με ένα arduino είναι ένα αρκετά απλό έργο, ενώ το mastering αυτού του υλικού επεκτείνει τις ικανότητές σας στον τομέα της αυτοματοποίησης και της ρομποτικής. Τα απλούστερα ρομπότ ή ραδιοελεγχόμενα μοντέλα αυτοκινήτων αποτελούνται από τέτοιους κινητήρες και οι σερβοί χρησιμοποιούνται για τον έλεγχο της περιστροφής των τροχών.

Στα εξεταζόμενα παραδείγματα χρησιμοποιήθηκε ένα ποτενσιόμετρο για τη ρύθμιση της γωνίας περιστροφής ή της ταχύτητας περιστροφής, μπορεί να χρησιμοποιηθεί οποιαδήποτε άλλη πηγή σήματος, για παράδειγμα μπορεί να προκύψει περιστροφή ή μεταβολή της ταχύτητας ως αποτέλεσμα πληροφοριών που λαμβάνονται από τους αισθητήρες.

Ένα παράδειγμα χρήσης σερβιρίσματος σε εναλλακτική ενέργεια: παρακολούθηση της γωνίας πρόσπτωσης του ηλιακού φωτός και προσαρμογή της θέσης των ηλιακών συλλεκτών σε σταθμούς ηλεκτροπαραγωγής.

Για να εφαρμόσετε έναν τέτοιο αλγόριθμο, μπορείτε να χρησιμοποιήσετε πολλά φωτοαντιστάσεις ή άλλες οπτοηλεκτρονικές συσκευές για τη μέτρηση της ποσότητας προσπίπτοντος φωτός και, ανάλογα με τις ενδείξεις τους, ρυθμίζουν τη γωνία περιστροφής του ηλιακού πίνακα.

Δείτε επίσης στο i.electricianexp.com:

  • Πώς είναι τοποθετημένος ο σερβο και λειτουργεί
  • Arduino και βηματικός κινητήρας: βασικά στοιχεία, σχήματα, σύνδεση και έλεγχος
  • Διαθέτει συσκευές σύνδεσης με το Arduino
  • Πώς να διακρίνετε έναν κινητήρα επαγωγής από έναν κινητήρα DC
  • Πώς να συνδέσετε τον αυξητικό κωδικοποιητή στο Arduino

  •