En aquest tutorial controlarem un servomotor per ARDUINO UNO. Els servomotors s’utilitzen quan es necessita un moviment o una posició precisos de l’eix. No es proposen per a aplicacions d'alta velocitat. Es proposen per a aplicacions de velocitat, parell mitjà i precisió de posició. Aquests motors s’utilitzen en màquines de braços robòtics, controls de vol i sistemes de control.
Els servomotors estan disponibles en diferents formes i mides. Un servomotor tindrà principalment cables, un per a tensió positiva, un per a terra i l’últim per a la posició. El cable VERMELL està connectat a l’alimentació, el cable negre a terra i el cable GROC al senyal.

Un servomotor és una combinació de motor de corrent continu, sistema de control de posició, engranatges. La posició de l’eix del motor de CC està ajustada per l’electrònica de control del servo, en funció de la relació de treball del senyal PWM del pin SIGNAL.
Simplement, l’electrònica de control ajusta la posició de l’eix controlant el motor de corrent continu. Aquestes dades sobre la posició de l’eix s’envien a través del pin SIGNAL. Les dades de posició al control s’han d’enviar en forma de senyal PWM a través del pin de senyal del servomotor.
La freqüència del senyal PWM (Pulse Width Modulated) pot variar en funció del tipus de servomotor. L’important aquí és la RELACIÓ DE DEURE del senyal PWM. Basat en aquesta RACIÓ DE DEURE, l'electrònica de control ajusta l'eix.
Com es mostra a la figura següent, perquè l'eix es pugui moure a rellotge de 9o, la RACIÓ D'ACTIVACIÓ ha de ser 1 / 18.ie. 1 ms de temps d'encesa i 17 ms de temps d'aturada en un senyal de 18 ms.

Perquè l'eix es pugui moure a un rellotge de 12o, el temps d'encesa del senyal ha de ser de 1,5 ms i el temps d'APAGAT de 16,5 ms. Aquesta relació és descodificada pel sistema de control del servo i ajusta la posició en funció d’ella. Aquest PWM aquí es genera mitjançant ARDUINO UNO.
Components del circuit
Maquinari: ARDUINO UNO, font d'alimentació (5v), condensador 100uF, botons (dues peces), resistència 1KΩ (dues peces), servomotor (que calia provar).
Programari: arduino IDE (Arduino nightly).
Diagrama i explicació del circuit del servomotor Arduino

En casos normals, hem d’anar als registres del controlador per ajustar la freqüència i per obtenir la relació de treball necessària per a un control precís de la posició del servo, a ARDUINO no hem de fer aquestes coses.
A ARDUINO tenim biblioteques predefinides, que establiran les freqüències i les relacions de treball en conseqüència una vegada que es cridi o inclogui el fitxer de capçalera. A ARDUINO simplement hem d’indicar la posició del servo que calia i la UNO ajustarà automàticament el PWM.
Les coses que hem de fer per obtenir una posició precisa del servo són:
|
Primer hem d’establir la freqüència del senyal PWM i, per a això, hauríem de cridar “#include
Ara hem de definir un nom per al servo "Servo sg90sevo", aquí "sg90servo" és el nom escollit, de manera que mentre escrivim per a poció utilitzarem aquest nom, aquesta característica és útil quan tenim molts servos per controlar, amb això podem controlar fins a vuit servo.
Ara li expliquem a l’ONU on està connectat el pin de senyal del servo o on ha de generar el senyal PWM. Per fer-ho, tenim "Sg90.attach (3);", aquí estem dient a l'ONU que hem connectat el pin de senyal del servo al PIN3.
Tot el que queda és establir la posició, anem a establir la posició del servo mitjançant "Sg90.write (30);", mitjançant aquesta ordre, la mà del servo es mou 30 graus, i això és tot. Després d'això, sempre que necessitem canviar la posició del servo, hem de trucar a l'ordre "Sg90.write (angle_posició_ necessària);". En aquest circuit tindrem dos botons, un botó augmenta la posició del servo i l’altre és per disminuir la posició del servo.
El tutorial de control del Servo Motor Arduino s’explica pas a pas del codi C que es mostra a continuació.
