Come interfacciare i servomotori con Arduino

Prova Il Nostro Strumento Per Eliminare I Problemi





In questo post impareremo cos'è il servomotore, come funziona, come interfacciarsi con il microcontrollore e cosa rende questo motore speciale rispetto ad altri motori.

Essendo un appassionato di elettronica ci saremmo imbattuti in molti tipi di motori, qui daremo un'occhiata a un tipo speciale di motore chiamato servomotore.



Cos'è un servomotore?

Il servomotore o semplicemente il servo è un tipo speciale di motore progettato per un controllo preciso della posizione, dell'accelerazione e della velocità. A differenza di tutti gli altri tipi di motore, il servo può ruotare solo di 180 gradi in modo bidirezionale. Ha ingranaggi meccanici e stopper che limitano la rotazione angolare del servo.

Tipico servomotore:

I servomotori sono utilizzati in robotica, telecamere CCTV, auto RC, barche, aeroplani giocattolo ecc. I servomotori vengono utilizzati dove non è necessario continuare il movimento rotatorio, ma bloccarsi in una posizione specifica o spostare un carico con velocità controllata entro il limite angolare mobile.



I servo non sono semplicemente un motore come gli altri tipi, ma è un modulo che combina un normale motore CC / CA, un gruppo di ingranaggi, elettronica di controllo e un sistema di feedback. Diamo un'occhiata alle fasi menzionate in dettaglio.

Il motore CC / CA utilizzato su un modulo servo può essere motore brushless o spazzolato, sulla maggior parte dei servi per hobby viene utilizzato il motore CC ei motori CA vengono utilizzati nelle applicazioni industriali. Il motore fornisce un input rotazionale al servo. Il motore ruota a diverse centinaia di RPM all'interno del servo e la rotazione dell'uscita è circa 50 o più volte inferiore al suo RPM.

La fase successiva è l'assemblaggio degli ingranaggi, che controlla la rotazione angolare e la velocità del servo. L'ingranaggio può essere realizzato in plastica o metallo a seconda dell'ingombro del carico. Generalmente i motori CC funzionano a regimi elevati e una coppia bassa, il gruppo ingranaggi convertirà il regime in eccesso in coppia. Quindi un piccolo motore può sopportare un carico enorme.

La fase successiva è l'elettronica di controllo che costituisce MOSFET e circuiti integrati per il controllo della rotazione del motore. Nei servomotori è sempre presente un sistema di feedback per il tracciamento della posizione corrente dell'attuatore.

Nei servocomandi generalmente un componente di feedback è un potenziometro, che è direttamente collegato all'attuatore rotante. Il potenziometro funge da partitore di tensione che viene alimentato all'elettronica di controllo. Questo feedback aiuta l'elettronica di controllo a determinare la quantità di potenza fornita al motore.

Un servomotore in una posizione fissa si muoverà riluttante dalla sua posizione corrente se una forza esterna tenta di disturbare. Il sistema di feedback monitora la posizione corrente e alimenta il motore contro i disturbi esterni.

Lo scenario precedente è lo stesso quando il servo muove il suo attuatore. Il sistema di controllo compenserà la forza esterna e si muoverà a una determinata velocità.

Ormai sai un bel po 'di servomotore e del suo meccanismo di funzionamento. Vediamo come controllare i servomotori utilizzando il microcontrollore.

I servomotori hanno 3 terminali a differenza di altri motori che hanno 2 terminali, due per l'alimentazione (5V nominali) e uno per il segnale di controllo. I fili sono colorati per una facile identificazione dei terminali.

I segnali di controllo dei servocomandi sono PWM alla frequenza di 50Hz. L'ampiezza dell'impulso del segnale determina la posizione del braccio dell'attuatore. Un tipico servomotore per hobby funziona da 1 a 2 millisecondi di larghezza di impulso.

L'applicazione del segnale di controllo della larghezza di impulso di 1 ms manterrà l'attuatore alla posizione di 0 gradi. L'applicazione del segnale di controllo della larghezza di impulso di 2 ms manterrà l'attuatore in una posizione di 180 gradi. L'applicazione di segnali tra 1-2 ms manterrà l'attuatore entro un angolo di 0-180 gradi. Questo può essere meglio compreso dall'immagine sottostante.

A questo punto avresti capito come un servo è controllato dalla modulazione di larghezza di impulso (PWM).

Ora impariamo come interfacciare un servomotore con Arduino.

Schema elettrico:

come interfacciare un servomotore con Arduino.

Il cablaggio è semplice e intuitivo. È necessario un alimentatore esterno se si utilizza un servomotore ingombrante. Se provi ad alimentare l'alimentatore di Arduino, finirai per sovraccaricare la porta USB del computer.

Se si dispone di un servo simile, illustrato all'inizio dell'articolo, è possibile alimentarlo dall'alimentatore arduino 5V, mostrato anche nel prototipo dell'autore.

Prototipo dell'autore:

Arduino ha bisogno di una libreria servo per gestirlo, ha reso il nostro compito facile ed è già nell'IDE di Arduino.

Programma:

//--------Program developed by R.Girish--------//
#include
Servo motor
int pos = 0
int t=10
void setup()
{
motor.attach(7)
}
void loop()
{
A:
pos=pos+1
motor.write(pos)
delay(t)
if(pos==180) { goto B}
goto A
B:
pos=pos-1
motor.write(pos)
delay(t)
if(pos==0) { goto A}
goto B
}
//--------Program developed by R.Girish--------//

Il programma di cui sopra farà scorrere l'attuatore da 0 a 180 gradi a destra e da 180 a 0 gradi a sinistra e il ciclo si ripete. Questo è un semplice programma per testare il servo di cui potresti aver bisogno per scrivere il tuo codice per le tue applicazioni personalizzate.




Precedente: Circuito del controller della valvola della pompa dell'acqua a due tubi Avanti: Comprensione del cablaggio del regolatore di tensione della motocicletta