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

Οι σερβομηχανισμοί μπορούν να μετακινηθούν με ακρίβεια, έτσι ώστε να είναι ιδανικοί για ενσωματωμένες ηλεκτρονικές εφαρμογές.
Οι σερβοκινητήρες έχουν ενσωματωμένα γρανάζια και έναν άξονα που μπορεί να ελεγχθεί με ακρίβεια. Τα τυπικά σερβομηχανήματα επιτρέπουν την τοποθέτηση του άξονα σε διάφορες γωνίες, συνήθως μεταξύ 0 και 180 μοιρών. Οι σερβοκινητήρες συνεχούς περιστροφής επιτρέπουν την περιστροφή του άξονα σε διάφορες ταχύτητες.
Θα χρησιμοποιήσουμε ένα 'Micro Servo 9g'. Αυτός είναι πολύ μικρός, αλλά μεγάλοι σερβοκινητήρες χρησιμοποιούνται εκτενώς στη ρομποτική για να ελέγχουν τα μηχανικά χέρια, βραχίονες κλπ. Θα μπορούσατε να το χρησιμοποιήσετε για να δημιουργήσετε ένα (μικροσκοπικό) βραχίονα ρομπότ, επιφάνεια ελέγχου αεροσκάφους ή οπουδήποτε χρειάζεται κάτι να μετακινηθεί σε συγκεκριμένες θέσεις .

Οι σερβοκινητήρες έχουν τρία καλώδια: τροφοδοσία, γείωση και σήμα. Το καλώδιο τροφοδοσίας είναι συνήθως κόκκινο και πρέπει να συνδεθεί με τον ακροδέκτη 5V του πίνακα Arduino. Το καλώδιο γείωσης είναι συνήθως μαύρο ή καφέ και θα πρέπει να συνδεθεί με μια γείωση στον πίνακα Arduino. Ο ακροδέκτης σήματος είναι συνήθως κίτρινος, πορτοκαλί ή λευκό και πρέπει να συνδεθεί με μια ψηφιακή θύρα (pin) στον πίνακα Arduino.
Οι συνδέσεις είναι αρκετά εύκολες, δείτε την παραπάνω εικόνα με το σχηματικό κύκλωμα του breadboard.
Σημείωση: Οι σέρβο έχουν μεγάλη ισχύ, οπότε αν χρειαστεί να οδηγήσετε ένα μεγαλύτερο σέρβο, ίσως χρειαστεί να τον τροφοδοτήσετε από μια ξεχωριστή τροφοδοσία (όχι από το 5V pin του Arduino). Βεβαιωθείτε ότι έχετε συνδέσει μαζί τη γείωση του Arduino και την εξωτερική γείωση της παροχής ρεύματος!

Ο παρακάτω κώδικας χρησιμοποιεί ένα ποντεσιόμετρο για να οδηγήσει τον σερβοκινητήρα με τη βοήθεια της συνάρτησης map που απεικονίζει τις τιμές που παίρνει το ποτενσιομέτρο στην περιοχή τιμών από 0 έως 179 μοιρών που μπορεί να στρέφεται ο σερβοκινητήρας.

 

 

 

Arduino Κώδικας
// Controlling a servo position using a potentiometer (variable resistor)
// ***************************************************************
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int potpin = A2; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
val = analogRead(potpin); //  reads the value of the potentiometer
(value between 0 and 1023)
val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); //  sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}