In quest’articolo parleremo un pò dei servomotori (o più comunemente servi). Si tratta di dispositivi meccanici di precisione che servono (passatemi il termine) per gestire la posizione angolare di un disco rotante o di un braccio meccanico. Sostanzialmente un servo è composto da un motore elettrico, un motoriduttore ed un circuito di feedback per la gestione della posizione. In commercio, esiste una vasta scelta di servi, ciascuno caratterizzabile per valore di coppia e precisione.

Il servo trattato in questo articolo è il B2232, un piccolo servo economico, ideale per i primi esperimenti didattici.

Questo tipo di servo ha un angolo di rotazione di circa 180° (la rotazione effettiva è un pò inferiore), inoltre esistono altri tipi di servi che hanno una rotazione continua e, anzichè pilotarne la posizione, ne possiamo gestire la velocità.

dynam-b2232

Qualunque sia il servo scelto, ci troveremo davanti sempre 3 contatti di cui due sono di alimentazione (V+ e GND) mentre il terzo è il pin di controllo. Per il servo in questione (i colori sono differenti dalla foto) il filo rosso corrisponde a V+, il filo viola è il GND mentre il filo giallo è quello del segnale.

Per gestire i servi con l’Arduino abbiamo a disposizione la libreria Servo. L’uso di questa libreria è molto semplice, vediamo quest’esempio preso direttamente dal sito ufficiale dell’Arduino.

xxxxxx
#include <Servo.h>

Servo myservo;

 int pos = 0;

 void setup()
 {
   myservo.attach(9); //pin a cui è collegato il controllo del servo
 }

 void loop()
 {
   for(pos = 0; pos < 180; pos += 1)
   {
     myservo.write(pos);
     delay(15);
     }
   for(pos = 180; pos>=1; pos-=1)
   {
     myservo.write(pos);
     delay(15);
   }
 }

Con l’istruzione

Servo myservo;

dichiariamo un oggetto di tipo Servo, e lo chiamiamo myservo. Invece per indicare a quale pin è collegato l’oggetto myservo usiamo la funzione attach(), di cui possiamo vedere la sintassi all’interno del void setup(). Per pilotare il servo usiamo la funzione myservo.write(pos) dove con pos si indica la posizione in gradi.

Dopo aver visto la sintassi vediamo un esempio pratico.