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.
Índice
Que é un 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
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
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:
-
Servo de entrega AZ MG90S Micro: soporta ata 13.4 kg.
- Innovateking-UE: con ata 25 kg / cm.
- Innovateking-UE: outro modelo impermeable e con ata 35 kg / cm.
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
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:
- Abra Arduino IDE.
- Vaia a Programa.
- A continuación, Inclúe biblioteca.
- 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); } }
Sexa o primeiro en opinar sobre