- Material requerit
- Esquema de connexions
- Què és un servomotor?
- Explicació del codi Arduino
- Control de diversos servos amb Arduino - Funcionament:
Utilitzar un o dos Servo amb Arduino és fàcil, però, i si volem utilitzar més d’un Servo Motors?
Aquí us mostrarem com controlar diversos servomotors amb Arduino. Connectar diversos servomotors amb Arduino sembla ser fàcil, però si connectem tots els servos als pins d'alimentació d'Arduino, no funcionaran correctament a causa de la manca de corrent suficient per accionar tots els motors. Per tant, heu d’utilitzar una font d’alimentació independent per als motors, ja sigui d’alguns adaptadors (5v 2A) o de bateries de 9v de bona qualitat.
Material requerit
- Arduino UNO
- Servomotor
- Font d'alimentació
- Taula de pa
- Connexió de cables
Esquema de connexions

Què és un servomotor?
Abans d’entrar en detalls, primer hauríem de saber sobre Servo Motors.
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.
Abans de connectar els servos a Arduino, podeu provar el vostre servo amb l’ajut d’aquest circuit de verificació de servomotors. Consulteu també els nostres projectes Servo següents:
- Control del servomotor mitjançant sensor Flex
Explicació del codi Arduino
El codi Arduino complet per a Servo Control múltiple es dóna al final.
Arduino té una biblioteca per a servomotors i gestiona totes les coses relacionades amb PWM per fer girar el servo, només cal que introduïu l’angle al qual voleu girar i hi ha la funció servo1.write (angle); que farà girar el servo fins a l’angle desitjat.
Així doncs, aquí comencem definint la biblioteca per al motor Servo.
#incloure
Al codi següent, estem inicialitzant els quatre servos com Servo1, Servo2, Servo3 i Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
A continuació, estem configurant tots els pins d'entrada del servo amb Arduino. Com es mostra al codi següent, Servo1 està connectat al tercer pin de l’Arduino. Podeu canviar els pins segons vosaltres, però tingueu en compte que hauria de ser un pin PWM. L’ús d’un Servo amb pins digitals de l’Arduino no és fiable.
configuració nul·la () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Ara, a la funció void loop () , estem girant tot el servo de 0 a 180 graus i després de 180 a 0 graus. El retard utilitzat al codi següent s'utilitza per augmentar o disminuir la velocitat del servo, ja que afecta la velocitat creixent o decreixent de la variable "i".
bucle buit () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); retard (10); } per a (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); retard (10); } }
Control de diversos servos amb Arduino - Funcionament:
Tots ens enfrontem a un problema actual mentre fem servir més de dos servos amb un Arduino. L'única solució a això és connectar una font d'alimentació externa amb la quantitat adequada de corrent nominal (en aquest projecte he utilitzat 2A amb subministrament de 9v). Per a la font d'alimentació externa, podeu utilitzar adaptadors, RPS (instrument d'alimentació regulada) o bateries de 9 V de bona qualitat, tot i que podeu utilitzar el port USB del portàtil per alimentar un servo petit. Per utilitzar el subministrament extern només heu de curtcircuitar la terra Arduino a una connexió a terra externa.

Utilitzeu el codi Arduino que es mostra a continuació per programar el vostre Arduino i connecteu tots els servomotors tal com es mostra al diagrama del circuit amb una font d’alimentació adequada als motors. Per tant, tots els servos funcionaran junts sense cap interrupció.
