In questo tutorial controlleremo un servomotore di ARDUINO UNO. I servomotori vengono utilizzati laddove è necessario un movimento o una posizione precisa dell'albero. Questi non sono proposti per applicazioni ad alta velocità. Questi sono proposti per applicazioni a bassa velocità, coppia media e posizione precisa. Questi motori sono utilizzati in macchine a braccio robotico, controlli di volo e sistemi di controllo.
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.
Componenti del circuito
Hardware: ARDUINO UNO, alimentatore (5v), condensatore 100uF, pulsanti (due pezzi), resistenza 1KΩ (due pezzi), servomotore (che doveva essere testato).
Software: arduino IDE (Arduino nightly).
Schema e spiegazione del circuito del servomotore Arduino
In casi normali abbiamo bisogno di andare ai registri del controller per regolare la frequenza e per ottenere il rapporto di lavoro richiesto per un controllo preciso della posizione del servo, in ARDUINO non dobbiamo fare queste cose.
In ARDUINO abbiamo librerie predefinite, che imposteranno le frequenze e i rapporti di lavoro di conseguenza una volta che il file di intestazione viene chiamato o incluso. In ARDUINO dobbiamo semplicemente indicare la posizione del servo necessaria e il PWM viene regolato automaticamente da UNO.
Le cose che dobbiamo fare per ottenere una posizione precisa del servo sono:
|
Per prima cosa dobbiamo impostare la frequenza del segnale PWM e per questo dovremmo chiamare "#include
Ora dobbiamo definire un nome per il servo "Servo sg90sevo", qui 'sg90servo' è il nome scelto, quindi mentre scriviamo per pozione useremo questo nome, questa funzione è utile quando abbiamo molti servi da controllare, possiamo controllare fino a otto servo da questo.
Ora diciamo all'UNO dove è collegato il pin del segnale del servo o dove deve generare il segnale PWM. Per fare questo abbiamo "Sg90.attach (3);", qui stiamo dicendo all'UNO che abbiamo collegato il pin di segnale del servo al PIN3.
Tutto ciò che resta da fare è impostare la posizione, stiamo per impostare la posizione del servo usando “Sg90.write (30);”, con questo comando la lancetta del servo si muove di 30 gradi, quindi il gioco è fatto. Dopodiché ogni volta che abbiamo bisogno di cambiare la posizione del servo dobbiamo chiamare il comando "Sg90.write (needed_position_ angle);". In questo circuito avremo due pulsanti un pulsante aumenta la posizione del servo e l'altro è per diminuire la posizione del servo.
Il tutorial sul controllo del servomotore Arduino è spiegato passo dopo passo del codice C indicato di seguito.