Con il nome servomotore viene indicato un particolare tipo di motore, in cui la rotazione dell’asse o albero (in inglese shaft) avviene, solitamente a bassa velocità, allo scopo di posizionarlo ad un determinato angolo.
L’asse di un servomotore resta posizionato ad un determinato valore di rotazione, normalmente compreso tra 0 e 180 gradi.
I servomotori si usano per controllare le articolazioni dei bracci robotici e l’angolazione di dispositivi come sistemi sterzanti, timoni e vele, sia in ambito modellistico che reale.
Il servomotore che utilizzeremo nel video è un piccolo motore da modellismo, chiamato Micro Servo 9g, pilotabile direttamente da Arduino e che potrai facilmente reperire in commercio.

Il circuito di collegamento per il controllo del Micro Servo 9g è il seguente.

Il codice dello sketch illustrato nel video è il seguente.
#include <Servo.h>
Servo motore;
void setup() {
// inizializzo la comunicazione seriale
Serial.begin(9600);
// Inizializzo il servomotore
motore.attach(9);
}
void loop() {
// leggo un valore dal potenziometro
int val = analogRead(A0);
Serial.print("Valore letto dal potenziometro: ");
Serial.println(val);
// scalo il valore letto nel nuovo intervallo
// e lo visualizzo sul terminale
int angolo = map(val,0,1024,0,180);
Serial.print("Valore calcolato dell'angolo: ");
Serial.println(angolo);
// Effettuo l'output PWM
motore.write(angolo);
// breve intervallo
delay(200);
}
La gestione dei segnali PWM validi per la maggior parte dei servomotori da modellismo o robotica disponibili in commercio è resa semplice e trasparente dalla libreria Servo di Arduino.
Questa libreria definisce una classe, chiamata appunto Servo, che ti permette di creare oggetti associati al dispositivo da controllare.
Nel nostro sketch, subito dopo la direttiva #include, necessaria a poter utilizzare la libreria Servo, viene creato l’oggetto ‘motore’.
Tramite la funzione motore.attach è stato definito il PIN di controllo.
Come si vede, nel loop, il controllo del dispositivo è semplicissimo, poiché attraverso la funzione write, dell’oggetto di tipo Servo, è immediato impostare l’angolo di rotazione.