Raffaele Ilardo


Comandare un servomotore col 555


© La parziale riproduzione dei contenuti di questa pagina è consentita a patto di citare l'indirizzo del sito e l'autore.

Com'è fatto e come funziona un servomotore

servomotore
Figura 1
Sicuramente chi s'interessa di servomotori sa già che cosa sono e come funzionano; non mi sembra il caso quindi di dedicare troppe parole ad una loro descrizione approfondita.
Molto brevemente un servomotore (figura 1), che viene comunemente chiamato servo, è un dispositivo che permette di "animare", cioè rendere capace di movimento, una qualsiasi realizzazione meccanica. Si useranno quindi i servo nella robotica, nell'animatronica, nei sistemi radiocomandati, ecc.

In genere (figura 2) un servo è composto da un motore in corrente continua e da una serie di ingranaggi demoltiplicatori, che hanno lo scopo di ridurre la velocità di rotazione, aumentando però sensibilmente la coppia; questo movimento, capace di notevole sforzo, si può prelevare dall'albero di uscita e viene in genere sfruttato applicando sull'albero stesso delle camme o altri organi meccanici.

struttura schematica di un servomotore
Figura 2
Caratteristica principale di un servo è la possibilità di comandare con precisione la sua rotazione, in un angolo che può variare da 90 a 180 gradi. A tale scopo, la posizione raggiunta dall'albero di volta in volta viene "letta" tramite un potenziometro, il cui segnale confluisce in una elettronica appositamente realizzata. La stessa elettronica si fa anche carico di interpretare i comandi che arrivano tramite i fili di collegamento, che in effetti sono tre: un filo (in genere di colore nero o marrone scuro) che è la massa o ground, un filo rosso che porta l'alimentazione al servo, ed un terzo filo (in genere di colore bianco, giallo o arancio) tramite il quale arrivano i segnali di comando.

I segnali di comando, come probabilmente è già noto a chi legge, consistono in una serie di impulsi di livello TTL, aventi cioè un'ampiezza in tensione di circa 5 V. Gli impulsi devono susseguirsi con una frequenza di 50 hz, che significa a 20 msec l'uno dall'altro; ciò che determina il movimento del servo è la durata temporale, o larghezza, del livello "High" di ogni impulso. Con impulsi di durata pari a 1,5 msec il servo si dispone in una posizione di rotazione intermedia; con impulsi di 1 msec il servo ruota completamente da un lato, mentre con impulsi lunghi 2 msec il servo ruota dalla parte opposta.
Nella figura che segue sono illustrati impulsi di diversa durata e la posizione che di conseguenza assume il servo:

impulsi di comando e posizione del servo

Comandare la rotazione del servo con l'integrato 555

integrato 555 - pinout
Figura 4
Il sistema più sicuro e più semplice per produrre impulsi della giusta durata temporale è quello di usare un microcontrollore, ovvero una piattaforma come Arduino. In questa sede, tuttavia, mi piace proporre una soluzione alternativa, che consenta di comandare un servo con un circuito piuttosto semplice, senza ricorrere a nessun tipo di chip programmabile. Useremo un circuito integrato "semprevedre", l'intramontabile NE555 o LM555 (a seconda della casa produttrice).

Il circuito consiste in un oscillatore a onda quadra, basato appunto sul 555, che, grazie alle sue caratteristiche, garantisce una notevole stabilità in frequenza, indipendentemente dalla tensione di alimentazione. Non mi pare il caso di dilungarmi sul funzionamento di tale integrato, considerando che in rete si trovano moltissimi tutorial sull'argomento.
schema: controllo di servo con integrato 555
Figura 5
Per ottenere un segnale il cui duty-cycle fosse liberamente regolabile, si è adottata la soluzione illustrata dalla figura 5. L'integrato 555 genera un'onda quadra caricando e scaricando il condensatore C1.

Con la configurazione di figura 5, la carica di C1 avviene attraverso la resistenza R1, in serie al potenziometro; la resistenza R2 è fuori causa, essendo bypassata dal diodo D1. Quando il pin 7 va a livello L, il condensatore si scarica attraverso la R2. Risulta quindi possibile regolare liberamente la durata del tempo "ON" e del tempo "OFF" dell'onda quadra generata, come illustra il grafico di figura 6.

onda quadra, tempi ON e OFF
Figura 6
Il segnale generato dal 555, in uscita dal pin 3, viene inviato ad uno stadio "buffer" costituito dal transistor Tr1 e risulta quindi disponibile sul suo emettitore.
Con i valori indicati nella lista dei componenti si dovrebbe ottenere una frequenza di 50 Hz; naturalmente il risultato dipende dalla tolleranza dei componenti utilizzati, soprattutto del condensatore C1, e quindi è probabile che un piccolo ritocco di qualche valore si renda necessario. Il movimento del servo si comanda ruotando il potenziometro Rpot, che modifica la durata del tempo TON da 1 a 2 msec.

Nella figura 7 viene illustrato il montaggio pratico dei componenti; si consideri tuttavia che la proporzione tra i vari pezzi non è sempre rispettata.
controllo di servo con integrato 555 - montaggio pratico
Figura 7

Valore dei componenti:
IC= circuito integrato NE555
R1= resistenza da 2,2 kΩ
Rpot= potenziometro da 2,5 kΩ
R2= resistenza da 47 kΩ
R3= resistenza da 22 kΩ
R4= resistenza da 2,2 kΩ
C0= 0,01 µF (= 10000 pF)
C1= 0,47 µF (= 470000 pF)
D1, D2= diodi 1N4004 o simili
TR1= transistore NPN tipo BC547

Attenzione: alcuni servo, in particolare quelli digitali, assorbono correnti notevoli; me ne sono reso conto io personalmente, quando ho realizzato il circuito a scopo di prova. Per tale motivo non è assolutamente consigliabile alimentare con la stessa sorgente il servo ed il circuito di comando. La soluzione migliore è quella illustrata nella figura che segue, dove un alimentatore separato fornisce al servo tutta la corrente richiesta:

collegamento di un servo con alimentazione separata

controllo di servo con 555, modifica per spostamento nelle sole posizioni di fine corsa
Figura 9
Un visitatore ha chiesto se fosse possibile, tramite uno switch, far muovere il servo soltanto nelle due posizioni estreme, senza una regolazione graduale dell'angolo di rotazione.
reading boy

La modifica da apportare allo schema per ottenere questo tipo di funzionamento è piuttosto semplice, ed è riportata in figura 9; basta sostituire il potenziometro con la resistenza fissa R0 da 2,5 kohm e disporvi in parallelo lo switch SW1 per bypassarla: a seconda che lo switch sia aperto o chiuso, il servo si posizionerà ad un estremo o all'altro della sua corsa.
Se le due posizioni estreme non risultassero quelle previste, è possibile modificare leggermente il valore di R0 o di R1 allo scopo di ottenere due impulsi aventi la durata richiesta.






 raffaele ilardo