Servo: πώς να χρησιμοποιήσετε τον σερβοκινητήρα με το Arduino

σερβο, σερβο κινητήρας

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

Τώρα, μπορείτε να προσθέσετε ένα άλλο νέο ηλεκτρονικό στοιχείο στο τη λίστα συσκευών αναλύθηκε και ότι μπορείτε να πάτε ενσωμάτωση των έργων DIY για να προσθέσετε νέα λειτουργικότητα.

Τι είναι το σερβο;

σερβο

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

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

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

Διαφορά μεταξύ stepper motor και servo motor

Nema 17

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

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

τεχνικά χαρακτηριστικά

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

Για παράδειγμα, αν δείτε ένα από τα πιο δημοφιλή, το Micro Servo 9G SG90 από η γνωστή εταιρεία Tower Pro, τότε θα έχετε κάποια πολύ περίεργα χαρακτηριστικά, αν και ο προγραμματισμός και η σύνδεση των μοντέλων είναι λίγο πολύ τα ίδια και όλα όσα λέγονται εδώ είναι χρήσιμα για όλους.

Στην περίπτωση αυτού του μοντέλου, είναι ένας κινητήρας υψηλής ποιότητας, με γωνία στροφής που επιτρέπει a σάρωση μεταξύ -90 και 90º, δηλαδή, μια συνολική στροφή 180º. Η ανάλυση που μπορείτε να επιτύχετε είναι πολύ υψηλή, οπότε θα είστε σε θέση να προχωρήσετε λίγο-πολύ. Για παράδειγμα, με τους περιορισμούς σήματος PWM του Arduino UNO, θα μπορούσατε ακόμη και να προχωρήσετε από βαθμό σε βαθμό.

Ομοίως, το σήμα PWM θα επιβάλει επίσης ένα άλλο όριο και είναι ο αριθμός των φορών που κάθε θέση μπορεί να αλλάξει ανά μονάδα χρόνου. Για παράδειγμα, καθώς οι παλμοί λειτουργούν μεταξύ 1 και 2 ms και με 20 ms περιόδους (50Hz), τότε το σερβο μπορεί να μετακινηθεί μία φορά κάθε 20 ms.

Επιπλέον, θα έχει βάρος 9 γραμμάρια και, παρά το βάρος και το συμπαγές μέγεθος, μπορεί να αναπτύξει α ροπή ή ροπή 1.8 kg / cm με 4.8v. Αυτό χάρη στο σετ γραναζιών POM.

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

Πού να αγοράσετε ένα σερβο

βοηθητικό μοτέρ

Εάν θέλετε να ξεκινήσετε να χρησιμοποιείτε αυτόν τον τύπο σερβοκινητήρα, μπορείτε να το βρείτε φθηνό σε πολλά εξειδικευμένα καταστήματα και μπορείτε επίσης να το αποκτήσετε online στο Amazon. Για παράδειγμα, εδώ είναι μερικά παραδείγματα προτεινόμενα προϊόντα που μπορεί να σας ενδιαφέρει:

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

Ενσωμάτωση με το Arduino

arduino σερβο

Όπως μπορείτε να δείτε στην παραπάνω εικόνα, ο σερβο συνδέεται πολύ εύκολα στο Arduino. Διαθέτει μόνο τρία καλώδια, τα οποία μπορείτε να συνδέσετε με αυτόν τον τρόπο:

  • Κόκκινο με 5V
  • Μαύρο με GND
  • Κίτρινο με καρφίτσα Arduino PWM, σε αυτή την περίπτωση με -9.

Για να προγραμματίσετε ένα σκίτσο για να αρχίσετε να χρησιμοποιείτε αυτούς τους τύπους κινητήρων, έχετε πολλές επιλογές. Αλλά, πρώτα απ 'όλα, για να ξεκινήσετε, πρέπει να το κάνετε προσθήκη βιβλιοθήκης Arduino IDE για να οδηγήσετε αυτόν τον τύπο σερβοκινητήρων:

  1. Ανοίξτε το Arduino IDE.
  2. Μεταβείτε στο Πρόγραμμα.
  3. Στη συνέχεια Συμπερίληψη βιβλιοθήκης.
  4. Servo

Ως προς κωδικός σκίτσουΘα μπορούσε να είναι τόσο απλό στο οποίο ο σερβο θα περάσει από τις θέσεις του, σταματώντας στους 0º, 90º και 180º:

//Incluir la biblioteca del servo
#include <Servo.h>
 
//Declarar la variable para el servo
Servo servoMotor;
 
void setup() {
  // Iniciar el monitor serie
  Serial.begin(9600);
 
  // Iniciar el servo para que use el pin 9 al que conectamos
  servoMotor.attach(9);
}
 
void loop() {
  
  // Desplazar a la posición 0º
  servoMotor.write(0);
  // Esperar 1 segundo
  delay(1000);
  
  // Desplazar a la posición 90º
  servoMotor.write(90);
  // Esperar 1 segundo
  delay(1000);
  
  // Desplazamos a la posición 180º
  servoMotor.write(180);
  // Esperar 1 segundo
  delay(1000);
}

Τώρα αν θέλετε μετακινήστε το από βαθμό σε βαθμό, τότε θα ήταν έτσι:

// Incluir la biblioteca servo
#include <Servo.h>
 
// Declarar la variable para el servo
Servo servoMotor;
 
void setup() {
  // Iniciar la velocidad de serie
  Serial.begin(9600);
 
  // Poner el servo en el pin 9
  servoMotor.attach(9);
 
  // Iniciar el servo en 0º
  servoMotor.write(0);
}
 
void loop() {
 
  // Los bucles serán positivos o negativos, en función el sentido del giro
  // Positivo
  for (int i = 0; i <= 180; i++)
  {
    // Desplazar ángulo correspondiente
    servoMotor.write(i);
    // Pausa de 25 ms
    delay(25);
  }
 
  // Negativo
  for (int i = 179; i > 0; i--)
  {
    // Desplazar el ángulo correspondiente
    servoMotor.write(i);
    // Pausa e 25 ms
    delay(25);
  }
}


Γίνε ο πρώτος που θα σχολιάσει

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.