Servo: como usar o servo motor con Arduino

servo, servo motor

Se queres usar un servo motor, ou servo, Con Arduino, neste artigo aprenderás o que necesitas para comezar. Xa vimos noutros artigos o necesario para usar motores eléctricos, motores paso a paso, e tamén outros conceptos necesarios para comprender o funcionamento deste tipo de dispositivos, como o artigo sobre PWM.

Agora podes engadir outro novo compoñente electrónico a a lista de dispositivos analizado e que podes ir integrando os teus proxectos de bricolaxe para engadir novas funcionalidades.

Que é un servo?

servo

Un servomotor, ou simplemente servo, é un motor electrónico con similitudes cos motores de corrente continua convencionais, pero con algúns elementos que os fan especiais. Neste caso, ten a capacidade de manter unha posición indicada, algo que os motores eléctricos non permiten.

Por outra banda, o servo tamén pode precisamente controlar a velocidade de xiro, grazas a unha serie de engrenaxes internas e un sistema que permite un control moito mellor do que se podería facer noutros tipos de motores.

Estas características fan que sexa especialmente interesante para aplicacións robótica, ou para outros dispositivos nos que é necesario controlar o movemento e a posición, como unha impresora ou un coche controlado a distancia. Neste tipo de vehículos controlados por radio hai un motor convencional para conducir o coche e un servo para a dirección, co que controlar o xiro con precisión.

Diferenza entre motor paso a paso e servo motor

nema 17

Se te preguntas a diferenza entre un servo motor e un motor paso a paso, a verdade é que poden confundirse, xa que no motor paso a paso ou paso a paso tamén se pode controlar a rotación con bastante precisión e as aplicacións son moi similares ao servo. Pola contra, hai algunhas diferenzas.

E é que normalmente usan os servomotores imáns de terras raras, mentres que os motores paso a paso utilizan imáns máis baratos e convencionais. Polo tanto, un servo pode lograr un desenvolvemento de par superior, a pesar de ser compacto. Polo tanto, a forza de xiro será moi alta.

Características técnicas

Sempre que mercar un servo, debe consultar a súa ficha técnica ou ficha técnica. Deste xeito, asegurará o características técnicas ten, pero tamén os límites aos que pode sometelo, como tensión, intensidade, carga máxima, par, etc. Lembre que cada modelo pode ser bastante diferente.

Por exemplo, se observas un dos máis populares, o Micro Servo 9G SG90 de a coñecida firma Tower Pro, entón terás unhas características moi peculiares, aínda que a programación e a conexión dos modelos son máis ou menos iguais e todo o que aquí se di é útil para calquera.

No caso deste modelo, é un motor de alta calidade, cun ángulo de xiro que permite un varrer entre -90 e 90º, é dicir, un xiro total de 180º. A resolución que podes acadar é moi alta, polo que poderás avanzar moi pouco a pouco. Por exemplo, coas limitacións de sinal PWM de Arduino UNO, incluso podería obter un avance de nota en nota.

Do mesmo xeito, o sinal PWM tamén imporá outro límite, e é o número de veces que cada posición pode cambiar por unidade de tempo. Por exemplo, xa que os pulsos funcionan con entre 1 e 2 ms e con Períodos de 20 ms (50Hz), entón o servo pode moverse unha vez cada 20 ms.

Ademais, terá un peso de 9 gramos e, a pesar dese peso e tamaño compacto, pode desenvolver un torque ou par de 1.8 kg / cm con 4.8v. Isto é grazas ao seu conxunto de engrenaxes POM.

Finalmente, xa sabes que, dependendo do que queiras conseguir, debes escoller un ou outro modelo para que teña o funcións necesarias para o seu proxecto. É dicir, non é o mesmo que queres que un motor mova unha carga X, que un para XX ...

Onde mercar un servo

servomotor

Se queres comezar a usar este tipo de servomotor, podes atopalo barato en moitas tendas especializadas e tamén podes obtelo en liña en Amazon. Por exemplo, aquí tes algúns exemplos de produtos recomendados que che poida interesar:

Todos eles teñen un ángulo de xiro bastante bo, pero diferéncianse basicamente no par que cada un pode tolerar. Incluín tres modelos diferentes. O primeiro, e máis barato, pode ser suficiente para a maioría das aplicacións. Pero se precisas un con maior resistencia para outras aplicacións, tes o 25 e o 35, que xa son bastante notables ...

Integración Arduino

servo arduino
Como podes ver na imaxe superior, o servo conéctase moi facilmente a Arduino. Só ten tres cables que pode conectar deste xeito:

  • Vermello con 5V
  • Negro con GND
  • Amarelo cun pin Arduino PWM, neste caso con -9.

Para programar un esbozo para comezar a usar este tipo de motores, ten varias opcións. Pero, antes de nada, para comezar, hai que facelo engadir biblioteca IDE Arduino para accionar este tipo de servomotores:

  1. Abra Arduino IDE.
  2. Vaia a Programa.
  3. A continuación, Inclúe biblioteca.
  4. Servo

En canto a código de esbozoPodería ser tan sinxelo no que o servo atravesará as súas posicións, parando a 0º, 90º e 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);
}

Agora se queres móvea de grao en grao, entón sería así:

// 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);
  }
}


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

Sexa o primeiro en opinar sobre

Deixa o teu comentario

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados con *

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.