Servo tester con Arduinoultimo aggiornamento 7 maggio 2019 |
|
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 di propri, si potrà utilizzare lo stesso Arduino che opportunamente programmato permetterà di effettuare queste verifiche. Arduino si occuperà di inviare il corretto valore di PWM per far ruotare l'albero del servo secondo l'angolo impostato.
Servotester digitale | Servotester opera Robonox | Servotester Robi |
Servotester autocostruito | Progetto Servotester automatico | Servotester Robi con USB |
Scheda Arduino UNO
|
Breadboard da 400 Punti con dimensione di 8,3 x 5,5
centimetri
|
Pulsante da Circuito stampato 6x6mm
|
Connettore Strip Maschio L. 6mm
|
Jumper Dupont M/M
|
Alimentatore per Breadboard
|
Nell'esempio si è utilizzato un mini
servomotore
In vendita presso Homotix.it
|
Sotto è riportato lo schema di collegamento, la tensione
di alimentazione dovrà essere collegata al connettore di ingresso
dell'alimentatore montato sulla breadboard.
Nota: 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.
|
Il programma per testare i servo motori è molto semplice, anche per i fatto che 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.
|
|
Elenco revisioni | |
07/05/2019 |
Aggiornato pagina |
19/11/2017 |
Emissione preliminare |