- Απαιτούμενο υλικό
- Διάγραμμα κυκλώματος
- Τι είναι το Servo Motor;
- Επεξήγηση κώδικα Arduino
- Έλεγχος πολλαπλών Servos με Arduino
Η χρήση ενός ή δύο Servo με το Arduino είναι εύκολη, αλλά τι γίνεται αν θέλουμε να χρησιμοποιήσουμε περισσότερα από ένα Servo Motors;
Εδώ, θα σας δείξουμε ότι πώς να ελέγχετε το Multiple Servo Motors με το Arduino. Η σύνδεση πολλών Servo Motors με το Arduino φαίνεται να είναι εύκολη και, αλλά αν συνδέσουμε όλους τους Servos με τους πείρους τροφοδοσίας Arduino τότε δεν θα λειτουργήσουν σωστά λόγω έλλειψης επαρκούς ρεύματος για την οδήγηση όλων των κινητήρων. Πρέπει λοιπόν να χρησιμοποιήσετε ξεχωριστό τροφοδοτικό για τους κινητήρες, είτε από κάποιους προσαρμογείς (5v 2A) είτε από μπαταρίες καλής ποιότητας 9v.
Απαιτούμενο υλικό
- Arduino UNO
- Βοηθητικό μοτέρ
- Παροχή ηλεκτρικού ρεύματος
- Ψωμί
- Σύνδεση καλωδίων
Διάγραμμα κυκλώματος
Τι είναι το Servo Motor;
Πριν πάμε σε λεπτομέρειες, πρώτα πρέπει να γνωρίζουμε για το Servo Motors.
Οι σερβοκινητήρες διατίθενται σε διάφορα σχήματα και μεγέθη. Ένας σερβοκινητήρας θα έχει κυρίως καλώδια, το ένα είναι για θετική τάση και το άλλο για γείωση και το τελευταίο για ρύθμιση θέσης. Το καλώδιο ΚΟΚΚΙΝΟ συνδέεται στην τροφοδοσία, το μαύρο καλώδιο συνδέεται στη γείωση και το ΚΙΤΡΙΝΟ καλώδιο συνδέεται στο σήμα.
Ένας σερβοκινητήρας είναι ένας συνδυασμός κινητήρα DC, συστήματος ελέγχου θέσης, γραναζιών. Η θέση του άξονα του κινητήρα DC ρυθμίζεται από τα ηλεκτρονικά στοιχεία ελέγχου στο σερβο, με βάση την αναλογία λειτουργίας του σήματος PWM του πείρου SIGNAL.
Με απλά λόγια, τα ηλεκτρονικά χειριστήρια ρυθμίζουν τη θέση του άξονα ελέγχοντας τον κινητήρα DC. Αυτά τα δεδομένα σχετικά με τη θέση του άξονα αποστέλλονται μέσω του πείρου SIGNAL. Τα δεδομένα θέσης στο χειριστήριο πρέπει να αποστέλλονται με τη μορφή σήματος PWM μέσω του πείρου σήματος του σερβοκινητήρα.
Η συχνότητα του σήματος PWM (Pulse Width Modulated) μπορεί να διαφέρει ανάλογα με τον τύπο του σερβοκινητήρα. Το σημαντικό πράγμα εδώ είναι το DUTY RATIO του σήματος PWM. Με βάση αυτό το DUTY RATION τα ηλεκτρονικά χειριστήρια ρυθμίζουν τον άξονα.
Όπως φαίνεται στο παρακάτω σχήμα, για να μετακινηθεί ο άξονας σε ρολόι 9ο, το ΣΤΡΟΦΟΛΟ ΤΡΟΝΟΥ πρέπει να είναι 1 / 18.ie. Χρόνος ON 1ms και χρόνος OFF 17ms σε σήμα 18ms.
Για να μετακινηθεί ο άξονας σε ρολόι 12o, ο χρόνος ON του σήματος πρέπει να είναι 1,5ms και ο χρόνος OFF πρέπει να είναι 16,5ms. Αυτός ο λόγος αποκωδικοποιείται από το σύστημα ελέγχου σε σερβο και προσαρμόζει τη θέση βάσει αυτού. Αυτό το PWM εδώ δημιουργείται χρησιμοποιώντας το ARDUINO UNO.
Πριν από τη σύνδεση Servos στο Arduino, μπορείτε να δοκιμάσετε το servo σας με τη βοήθεια αυτού του Circuit Motor Tester Circuit. Δείτε επίσης τα παρακάτω έργα Servo:
- Servo Motor Control από Flex Sensor
Επεξήγηση κώδικα Arduino
Ο πλήρης κωδικός Arduino για το Multiple Servo Control δίνεται στο τέλος.
Το Arduino διαθέτει βιβλιοθήκη για Servo Motors και χειρίζεται όλα τα σχετικά με το PWM πράγματα για να περιστρέψει το servo, απλά πρέπει να εισάγετε τη γωνία στην οποία θέλετε να περιστρέψετε και υπάρχει η λειτουργία servo1.write (angle). που θα περιστρέψει το σερβο στην επιθυμητή γωνία
Έτσι λοιπόν ξεκινάμε ορίζοντας τη βιβλιοθήκη για το Servo motor.
#περιλαμβάνω
Στον παρακάτω κώδικα, αρχικοποιούμε και τα τέσσερα servos ως Servo1, Servo2, Servo3 και Servo4.
Σερβο σερβο 1; Σερβο σερβο 2; Σερβο σερβο 3; Σερβο σερβο 4;
Στη συνέχεια, ρυθμίζουμε όλους τους ακροδέκτες εισόδου του σερβο με το Arduino. Όπως φαίνεται στον παρακάτω κώδικα, το Servo1 συνδέεται με τον 3ο πείρο του Arduino. Μπορείτε να αλλάξετε τις καρφίτσες σύμφωνα με εσάς, αλλά λάβετε υπόψη ότι πρέπει να είναι μια καρφίτσα PWM. Η χρήση ενός Servo με ψηφιακές ακίδες του Arduino δεν είναι αξιόπιστη.
άκυρη ρύθμιση () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Τώρα, στη συνάρτηση void loop () περιστρέφουμε όλο το σερβο από 0 έως 180 μοίρες και μετά 180 έως 0 μοίρες Η καθυστέρηση που χρησιμοποιείται στον παρακάτω κώδικα χρησιμοποιείται για την αύξηση ή τη μείωση της ταχύτητας του σερβο καθώς επηρεάζει την αυξανόμενη ή μειωμένη ταχύτητα της μεταβλητής «i».
void loop () { για (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); καθυστέρηση (10) } για (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); καθυστέρηση (10) } }
Έλεγχος πολλαπλών Servos με Arduino
Αντιμετωπίζουμε όλοι το τρέχον πρόβλημα ενώ χρησιμοποιούμε περισσότερα από δύο σερβο με ένα Arduino. Η μόνη λύση σε αυτό είναι να συνδέσετε ένα εξωτερικό τροφοδοτικό με την κατάλληλη ποσότητα ρεύματος (σε αυτό το έργο χρησιμοποίησα 2Α με τροφοδοσία 9v). Για εξωτερική τροφοδοσία μπορείτε να χρησιμοποιήσετε Προσαρμογείς, RPS (Ρυθμιζόμενο Τροφοδοτικό) ή καλής ποιότητας μπαταρίες 9V volt, ενώ μπορείτε να χρησιμοποιήσετε τη θύρα USB του φορητού σας υπολογιστή για τροφοδοσία μικρού Servo. Για να χρησιμοποιήσετε την εξωτερική τροφοδοσία, απλώς πρέπει να βραχύνετε τη γείωση Arduino σε εξωτερική γείωση.
Χρησιμοποιήστε τον κωδικό Arduino που δίνεται παρακάτω για να προγραμματίσετε το Arduino σας και να συνδέσετε όλους τους Servo Motors όπως φαίνεται στο διάγραμμα κυκλώματος με σωστή τροφοδοσία ρεύματος στην Motors. Επομένως, όλα τα servos θα λειτουργούν μαζί χωρίς διακοπή.