- Materiale richiesto
- Schema elettrico
- Cos'è un servomotore?
- Spiegazione del codice Arduino
- Controllo di più servi con Arduino - Funzionamento:
Usare uno o due Servo con Arduino è Facile, ma cosa succede se vogliamo usare più di un Servomotore?
Qui, ti mostreremo come controllare più servomotori con Arduino. Il collegamento di più servomotori con Arduino sembra essere facile e ma se colleghiamo tutti i servo ai pin di alimentazione di Arduino, non funzioneranno correttamente a causa della mancanza di corrente sufficiente per pilotare tutti i motori. Quindi è necessario utilizzare un'alimentazione separata per i motori, sia da alcuni adattatori (5v 2A) o da batterie 9v di buona qualità.
Materiale richiesto
- Arduino UNO
- Servomotore
- Alimentazione elettrica
- Breadboard
- Collegamento dei cavi
Schema elettrico
Cos'è un servomotore?
Prima di entrare nei dettagli, dovremmo prima conoscere i servomotori.
I servomotori sono disponibili in diverse forme e dimensioni. Un servomotore avrà principalmente fili lì, uno è per la tensione positiva, un altro è per la massa e l'ultimo è per l'impostazione della posizione. Il filo ROSSO è collegato all'alimentazione, il filo nero è collegato a terra e il filo GIALLO è collegato al segnale.
Un servomotore è una combinazione di motore CC, sistema di controllo della posizione, ingranaggi. La posizione dell'albero del motore DC è regolata dall'elettronica di controllo nel servo, in base al rapporto di lavoro del segnale PWM sul pin SIGNAL.
In parole semplici, l'elettronica di controllo regola la posizione dell'albero controllando il motore CC. Questi dati relativi alla posizione dell'albero vengono inviati tramite il pin SIGNAL. I dati di posizione al controllo devono essere inviati sotto forma di segnale PWM attraverso il pin di segnale del servomotore.
La frequenza del segnale PWM (Pulse Width Modulated) può variare in base al tipo di servomotore. La cosa importante qui è il DUTY RATIO del segnale PWM. In base a questo DUTY RATION l'elettronica di controllo regola l'albero.
Come mostrato nella figura seguente, per spostare l'albero a 9o, il RAPPORTO DI ACCENSIONE deve essere 1 / 18.ie. 1 ms di tempo ON e 17 ms di tempo OFF in un segnale di 18 ms.
Affinché l'albero possa essere spostato a 12o, il tempo di attivazione del segnale deve essere di 1,5 ms e il tempo di disattivazione deve essere di 16,5 ms. Questo rapporto viene decodificato dal sistema di controllo in servo e regola la posizione in base ad esso. Questo PWM qui è generato utilizzando ARDUINO UNO.
Prima di collegare i servo ad Arduino, puoi testare il tuo servo con l'aiuto di questo circuito del tester per servomotori. Controlla anche i nostri progetti Servo di seguito:
- Controllo del servomotore tramite sensore flessibile
Spiegazione del codice Arduino
Alla fine viene fornito il codice Arduino completo per Multiple Servo Control.
Arduino ha una libreria per i servomotori e gestisce tutte le cose relative al PWM per ruotare il servo, devi solo inserire l'angolo a cui vuoi ruotare e c'è la funzione servo1.write (angle); che ruoterà il servo all'angolo desiderato.
Quindi qui iniziamo definendo la libreria per Servo motore.
#includere
Nel codice sottostante, stiamo inizializzando tutti e quattro i servi come Servo1, Servo2, Servo3 e Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Quindi, stiamo impostando tutti i pin di input del servo con Arduino. Come mostrato nel codice seguente, Servo1 è collegato al 3 ° pin di Arduino. Puoi cambiare i pin secondo te, ma tieni presente che dovrebbe essere un pin PWM. L'uso di un servo con pin digitali di Arduino non è affidabile.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Ora, nella funzione void loop () stiamo solo ruotando tutto il servo da 0 a 180 gradi e poi da 180 a 0 gradi. Il ritardo utilizzato nel codice seguente viene utilizzato per aumentare o diminuire la velocità del servo in quanto influenza la velocità crescente o decrescente della variabile "i".
void loop () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); ritardo (10); } for (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); ritardo (10); } }
Controllo di più servi con Arduino - Funzionamento:
Affrontiamo tutti il problema attuale mentre usiamo più di due servi con un Arduino. L'unica soluzione a questo è collegare un alimentatore esterno con una quantità adeguata di corrente nominale (in questo progetto ho usato 2A con alimentazione 9v). Per l'alimentazione esterna è possibile utilizzare adattatori, RPS (Regulated Power Supply Instrument) o batterie da 9 V di buona qualità, anche se è possibile utilizzare la porta USB del laptop per alimentare piccoli Servo. Per utilizzare l'alimentazione esterna è sufficiente cortocircuitare la massa di Arduino con la massa di alimentazione esterna.
Usa il codice Arduino fornito di seguito per programmare il tuo Arduino e collega tutti i servomotori come mostrato nello schema del circuito con una corretta alimentazione ai motori. Pertanto, tutti i servi funzioneranno insieme senza alcuna interruzione.