Servo: com utilitzar el servomotor amb Arduino

servo, servomotor

Si vols fer servir un servomotor, o servo, Amb Arduino, En aquest article podràs aprendre el necessari per començar. Ja vam veure en altres articles el necessari per utilitzar motors elèctrics, motors pas a pas, I també altres conceptes necessaris per comprendre el funcionament d'aquest tipus de dispositius, com és l'article sobre PWM.

Ara, podràs afegir un altre nou component electrònic a la llista de dispositius analitzats i que pots anar integrant als teus projectes DIY per afegir noves funcionalitats.

Què és un servo?

servo

Un servomotor, O simplement servo, és un motor electrònic amb similituds amb els motors de CC convencionals, però amb alguns elements que els fan especials. En aquest cas, té la capacitat de mantenir una posició que s'indiqui, cosa que els motors elèctrics no permeten.

D'altra banda, el servo també pot controlar de forma precisa la velocitat de gir, gràcies a una sèrie d'engranatges interns i sistema que possibilita un control molt millor del que podria fer-se en altres tipus de motors.

Aquestes prestacions el fan especialment interessant per a aplicacions de robòtica, o per a altres dispositius on es necessiti controlar el moviment i posició, com podria ser una impressora, o un cotxe teledirigit. En aquest tipus de cotxes radiocontrol hi ha un motor convencional per impulsar a l'cotxe, i un servo per a la direcció, amb la qual controlar el gir de forma precisa.

Diferència entre motor pas a pas i servomotor

Nema 17

Si et preguntes la diferència entre un servomotor i un motor pas a pas, La veritat és que es poden confondre, ja que en el motor pas a pas, o stepper, també es pot controlar el gir de forma bastant precisa, i les aplicacions són molt similars a l'servo. En canvi, hi ha algunes diferències.

I és que els servomotors fan servir típicament imants de terres rares, Mentre que els motors pas a pas usen imants més barats i convencionals. Per tant, en un servo es pot aconseguir un desenvolupament de parell de torsió més gran, tot i seguir sent compacte. Per tant, la força de gir serà molt elevada.

Característiques tècniques

Sempre que compris un servo, hauries de consultar la seva fitxa tècnica o datasheet. D'aquesta manera, t'asseguraràs de les característiques tècniques que té, però també dels límits als quals el pots sotmetre, com el voltatge, intensitat, càrrega màxima, parell, etc. Recorda que cada model pot ser bastant diferent.

Per exemple, si s'analitza un dels més populars, el Micro Servo 9G SG90 de la coneguda firma Tower Pro, Llavors tindràs unes característiques molt peculiars, encara que la programació i connexió dels models siguin més o menys la mateixa i tot el que s'ha dit aquí serveix per a qualsevol.

En el cas d'aquest model, és un motor de gran qualitat, amb un angle de gir que permet un escombrat entre -90 i 90º, És a dir, un gir total de 180 º. La resolució que pot assolir és molt elevada, per la qual cosa podrà avançar molt poc a poc. Per exemple, amb les limitacions del senyal PWM de Arduino UNO, Es podria aconseguir fins i tot un avanç de grau en grau.

Així mateix, el senyal PWM també imposarà un altre límit, i és la quantitat de vegades que podrà canviar de posició cada per unitat de temps. Per exemple, com els polsos es treballa amb entre 1 i 2 ms i amb períodes de 20 ms (50Hz), llavors el servo es podrà moure una vegada cada 20 ms.

A més, es tindrà un pes de 9 grams i, malgrat aquest pes i mida compacte, pot desenvolupar un torque o parell de 1.8 kg / cm amb 4.8v. Això gràcies al seu conjunt d'engranatges POM.

Finalment, ja saps que, depenent del que vulguis aconseguir, hauràs de triar un una altre model, perquè tingui les característiques necessàries per al teu projecte. És a dir, no és el mateix que vulguis un motor per moure una càrrega X, que un per XX ...

On comprar un servo

servomotor

Si vols començar a fer servir aquest tipus de servomotor, pots trobar-barat en multitud de botigues especialitzades, i també el pots aconseguir en línia en Amazon. Per exemple, aquí tens alguns exemples de productes recomanats que et poden interessar:

Tots ells tenen un angle de gir bastant bo, però es diferencia bàsicament en el parell que toleren cadascun. he inclòs tres models diferents. El primer, i més barat, pot ser suficient per a la majoria de les aplicacions. Però si necessites algun amb més força per a altres aplicacions, tens el de 25 i 35, que són ja bastant destacables ...

Integració amb Arduino

servo Arduino

Com pots veure a la imatge superior, el servo es connecta de manera molt senzilla a Arduino. Tan sols té tres cables, que podràs connectar d'aquesta manera:

  • Vermell amb 5V
  • Negre amb GND
  • Groc amb un pin PWM d'Arduino, en aquest cas amb -9.

Per poder programar un sketch per començar a fer servir aquest tipus de motors, tens diverses opcions. Però, abans de res, per començar, has de afegir la biblioteca d'Arduino IDE per manejar aquest tipus de servomotors:

  1. Obrir Arduino IDE.
  2. Anar a Programa.
  3. Després Include Library.
  4. Servo

Quant al codi de l'esquetx, Podria ser així de senzill en el qual el servo anirà recorrent les seves posicions detenint-se en 0º, 90º i 180º:

//Incluir la biblioteca del servo
#include <Servo.h>
 
//Declarar la variable para el servo
Servo servoMotor;
 
void setup() {
  // Iniciar el monitor serie
  Serial.begin(9600);
 
  // Iniciar el servo para que use el pin 9 al que conectamos
  servoMotor.attach(9);
}
 
void loop() {
  
  // Desplazar a la posición 0º
  servoMotor.write(0);
  // Esperar 1 segundo
  delay(1000);
  
  // Desplazar a la posición 90º
  servoMotor.write(90);
  // Esperar 1 segundo
  delay(1000);
  
  // Desplazamos a la posición 180º
  servoMotor.write(180);
  // Esperar 1 segundo
  delay(1000);
}

Ara bé, si vols moure'l de grau en grau, Llavors seria així:

// Incluir la biblioteca servo
#include <Servo.h>
 
// Declarar la variable para el servo
Servo servoMotor;
 
void setup() {
  // Iniciar la velocidad de serie
  Serial.begin(9600);
 
  // Poner el servo en el pin 9
  servoMotor.attach(9);
 
  // Iniciar el servo en 0º
  servoMotor.write(0);
}
 
void loop() {
 
  // Los bucles serán positivos o negativos, en función el sentido del giro
  // Positivo
  for (int i = 0; i <= 180; i++)
  {
    // Desplazar ángulo correspondiente
    servoMotor.write(i);
    // Pausa de 25 ms
    delay(25);
  }
 
  // Negativo
  for (int i = 179; i > 0; i--)
  {
    // Desplazar el ángulo correspondiente
    servoMotor.write(i);
    // Pausa e 25 ms
    delay(25);
  }
}


Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.