Realizzare un servo tester con Arduino

Esistono in commercio vari modelli di servo tester che permettono di verificare il funzionamento dei servomotori prima di essere utilizzati nei propri progetti.
Se non si dispone di questo strumento e non si intende realizzarne uno, si potrà utilizzare lo stesso Arduino che opportunamente programmato, permetterà di effettuare queste verifiche.
In  questo articolo vedremo come realizzare con Arduino un servo tester che si occuperà di inviare il corretto valore di PWM per far ruotare l’albero del servo secondo l’angolo impostato. Questo è possibile premendo il relativo tasto.

Realizzare servo tester Arduino

Schema del servo tester con Arduino

Sotto è riportato lo schema dei collegamenti da effettuare.  Da Arduino partono i cavi che raggiungono i tre pulsanti di comando e il servomotore. Sono poi presenti i cavi di alimentazione.
In questo caso i 5V non sono forniti da Arduino ma viene utilizzato un modulo regolatore installato sulla bread board.
Collegare l’alimentazione del servomotore direttamente ad Arduino potrebbe danneggiare la scheda, questo perché l’assorbimento di corrente del motore presente all’interno del servo, può superare la corrente fornita dal regolatore presente sulla scheda.
I tre tasti P1, P2 e P3 permetteranno si ruotate il perno del servo 90°, 0° e 180° rispettivamente.

Pin ArduinoCollegato a
D3Pin segnale servomotore
D4Collegato al pulsante P1 - Servo in posizione centrale
D5Collegato al pulsante P2 - Rotazione servo a DX
D6Collegato al pulsante P3 - Rotazione servo a SX
+5VAlimentazione Arduino e servomotore
GNDContatto di massa Arduino e servomotore

Realizzare servo tester Arduino

Realizzare servo tester Arduino

Realizzare servo tester Arduino

Realizzare servo tester Arduino

Materiale occorrente

Il materiale per realizzare il nostro servo tester con Arduino è formato da:

Scheda Arduino UNO

Breadboard da 400 Punti

Pulsante da Circuito stampato 6x6mm

Connettore Strip Maschio 3×1

Jumper Dupont M/M

Alimentatore per Breadboard

Caratteristiche servo utilizzato

Nell’esempio si è utilizzato un mini servomotore, nella tabella sottostante le sue caratteristiche

Tipo servoMicro servo Digital 9g - SG90
IngranaggiIn plastica
Tensione di esercizio4.8 v
Intervallo di temperatura:0 ℃ _ 55 ℃
Larghezza banda morta: 1us
Lunghezza cavo 25 cm
Peso(g) 9
Connettore JR
Coppia(kg/cm)(4.8v) 1.8
Velocità(sec/60deg) 0.1
A(mm) 34.5
B(mm) 22.8
C(mm) 26.7
D(mm) 12.6
E(mm) 32.5
F(mm) 16

 

Listato del programma

Il programma per testare i servo motori è molto semplice, utilizza la libreria #servo.h, che è presente di default nell’IDE di Arduino e non deve essere ricercata in rete. Vediamo in dettaglio il programma:

  • Il programma comincia richiamando la libreria con il comando #include <Servo.h>.
  • La seconda linea crea l’oggetto di tipo Servo cui è assegnato il nome myservo e sarà l’oggetto su cui opererà.
  • Sono poi definite le porte utilizzate a cui è assegnato un nome per essere poi facilmente identificate nel programma.
  • Viene creata la funzione setup() in cui sono presenti i comandi di inizializzazione, prima di tutto viene utilizzato attach(), questo metodo lega l’oggetto myservo al pin a cui abbiamo collegato il nostro servo.
  • Sono poi definiti la funzione dei pin dei pulsanti impostati come input con attivazione della resistenza interna al chip come pullup.
  • Si crea la funzione loop() utilizzata ciclicamente da Arduino.
  • A seconda del tasto premuto, riconosciuto tramite l’istruzione if (digitaleRead() == LOW ) viene utilizzato il metodo write() che passa all’oggetto myservo la posizione che deve raggiungere. In questo caso indicato in gradi con valori che possono essere compresi tra 0 e 180, per cui l’albero del servo ruoterà sino a portarsi all’angolo indicato.
  • Imposta un ritardo delay() pari a 500 millesimi di secondo, in modo da permettere al servo di raggiungere la posizione prima di proseguire il programma.
  • Alla fine dei controlli attende ulteriori 20 millesimi di secondo prima di rieseguire il controllo.

Modelli commerciali e autocostruiti di servo tester

Tester digitale

Servo tester autocostruito

Progetto Servotester automatico

Tester servo Robi con USB

Servo tester opera Robi

Servo tester opera Robonox

FEETECH FRS Programmer

Filmato che mostra il funzionamento del programma