0% encontró este documento útil (0 votos)
102 vistas9 páginas

Tutorial Uso de Servomotor Con Arduino

El documento explica qué es un servo, cómo funciona y cómo conectarlo y controlarlo con Arduino. Un servo es un actuador que puede posicionarse en ángulos entre 0° y 180° mediante una señal de control de pulsos. Se detallan tres servos comunes (SG90, MG90S, MG996R) que varían en tamaño y torque. La conexión a Arduino es sencilla, alimentando el servo y enviando señales de pulso a un pin digital. La librería Servo de Arduino facilita el control del ángulo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
102 vistas9 páginas

Tutorial Uso de Servomotor Con Arduino

El documento explica qué es un servo, cómo funciona y cómo conectarlo y controlarlo con Arduino. Un servo es un actuador que puede posicionarse en ángulos entre 0° y 180° mediante una señal de control de pulsos. Se detallan tres servos comunes (SG90, MG90S, MG996R) que varían en tamaño y torque. La conexión a Arduino es sencilla, alimentando el servo y enviando señales de pulso a un pin digital. La librería Servo de Arduino facilita el control del ángulo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

CONTROLAR UN SERVO CON

ARDUINO

6 JUNIO, 2016

¿QUÉ ES UN SERVO?
Un servo es un tipo de accionador ampliamente empleado en electrónica. A
diferencia de otros tipos de motores en los que controlamos la velocidad de giro, en un
servo indicamos directamente el ángulo deseado y el servo se encarga de
posicionares en este ángulo.

Típicamente los servos disponen de un rango de movimiento de entre 0 a


180º. Es decir, no son capaces de dar la vuelta por completo (de hecho disponen de
topes internos que limitan el rango de movimiento)

Internamente un servo frecuentemente consta de un mecanismo reductor. Por


tanto proporcionan un alto par y un alto grado de precisión (incluso décimas de
grado). Por contra, las velocidades de giro son pequeñas frente a los motores de
corriente continua.
Los servos se admiten una tensión de alimentación entre 4,8V a 7,2V, siendo el valor
más adecuado es 6V. Con tensiones inferiores el motor tiene menos fuerza y velocidad.
Con tensiones superiores a 6,5V los servos empiezan a oscilar demasiado, lo cual los hace
poco útiles.

Anuncio:

Los servos son cómodos de emplear, ya que ellos mismos realizan el control de
posición, que con otro tipo de motores debe hacerse de forma externa. Por este motivos
son ampliamente empleados en proyectos de robótica, como brazos robóticos, robots
con patas, controlar el giro de torretas, u orientar sensores como sensores de
ultrasonidos o sensores de temperatura a distancia.

PRECIO
Existe una gran variedad de servos, que varían en tamaño, fuerza, velocidad, y
precisión. Los servos que emplearemos en nuestros proyectos cuestan unos pocos
euros pero, incluso dentro del campo de los hobbies podemos encontrar servos de 100-
150€, y de miles de euros en el ámbito industrial.

Para nuestros proyectos caseros usaremos principalmente dos tamaños de servo.


Dentro de los distintos modelos destacaremos tres por su calidad/precio. Podéis
encontrarlos fácilmente en vendedores internacionales de eBay o AliExpress.

SG90
Es el servo de tamaño "pequeño" estándar dentro de los proyectos de electrónica.
Es un servo pequeño, ligero, y barato, que dispone de engranajes de plástico. Muchos
dispositivos, como torretas y partes de robots, están diseñados para instalar servos de
este tamaño.

• Torque: 1.4 kg·cm

• Velocidad: 0.1 seg/60º (4.8V) y 0.08 seg/60º (6V)

• Dimensiones: 21.5 x 11.8 x 22.7mm

• Peso: 9g

• Precio: 1.20€
MG90S
El MG90S es similar al SG90 pero dispone de engranajes y el acoplamiento
metálicos. A cambio pesa un poco más y es más caro. Físicamente es compatible con los
accesorios del SG90.

Usaremos este servo como sustituto del SG90 cuando tengamos una aplicación en
la que realmente necesitemos ejercer fuerza, y las partes de plástico podrían ceder y
quedarse "redondas".

• Torque: 1.8 Kg·cm

• Velocidad: 0.1 seg/60º (4.8V) y 0.08 seg/60º (6V)

• Dimensiones: 22.8 x 12.2 x 28.5mm

• Peso: 13.4g

• Precio: 2€
MG996R
Este es el servo de tamaño "grande" que usaremos frecuentemente. Este tipo de
servos es ampliamente utilizado en proyectos de robótica. Igual que con el SG90, muchos
dispositivos y kits como brazos robóticos, hexápodos, están diseñados para instalar este
tamaño de servo.

• Torque: 13kg·cm (4.8V) a 15kg·cm (6V)

• Velocidad: 0.17 seg/60º (4.8V) y 0.13 seg/60º (6V)

• Dimensiones: 40 x 19 x 43mm

• Peso: 56g

• Precio: 3.70€
Conviene aclarar que estos servos, sobre todos los comprados en china, destacan
por su calidad/precio. Pero, lógicamente, son modestos en sus características. Veréis en
comparativas que otros modelos más caros también son más rápidos y precisos.

Pero cuando hagamos proyectos como hexápodos o robots bípedos, que requieren
entre 18 a 24 servos, la diferencia de usar servos de 1.2€-3.7€ a servos de 80-100€ supone
pasar de un coste de 40-60€ por proyecto, a 2000-2400€, que es una diferencia enorme.

Por otro lado, usar servos baratos nos supondrá más problemas en calibración,
repetibilidad, pruebas y trabajo adicional. Pero después de todo, hacer robots es sencillo,
lo difícil es hacerlos baratos :D.

¿CÓMO FUNCIONA UN SERVO?


Internamente un servo está constituido por un motor de corriente continua,
acoplado a un reductor para reducir la velocidad de giro, junto con la electrónica
necesaria para controlar su posición.
Frecuentemente simplemente se dispone de un potenciómetro unido al eje del
servo, que permite al servo para conocer la posición del eje. Esta información es tratada
por un controlador integrado que se encarga de ajustar actuar sobre el motor para
alcanzar la posición deseada.

La comunicación de la posición deseada se realiza mediante la transmisión de un


señal pulsada con periodo de 20ms. El ancho del pulso determina la posición del servo.

La relación entre el ancho del pulso y el ángulo depende del modelo del motor. Por
ejemplo, algunos modelos responden con 0º a un pulso de 500 ms, y otros a un pulso
de 1000 ms

En general, en todos los modelos:


• Un pulso entre 500-1000 us corresponde con 0º

• Un pulso de 1500 ms corresponde con 90º (punto neutro)

• Un pulso entre 2000-2500us corresponde con 180º

Por tanto, variando la señal en microsegundos podemos disponer de una precisión


teórica de 0.18-0.36º, siempre que la mecánica del servo acompañe.

ESQUEMA DE MONTAJE
Conectar un servo a Arduino es sencillo. El servo dispone de tres cables, dos de
alimentación (GND y Vcc) y uno de señal (Sig).

El color de estos cables suele tener dos combinaciones:

- Marrón (GND), Rojo (Vcc) y Naranja (Sig)

- Negro (GND), Rojo (Vcc) y Blanco (Sig)

Por un lado, alimentamos el servo mediante el terminal GND ( Marrón / Negro) y


Vcc (Rojo).

En general, la alimentación a los servos se realizará desde una fuente de tensión


externa (una batería o fuente de alimentación) a una tensión de 5V-6.5V, siendo 6V la
tensión idónea.

Arduino puede llegar a proporcionar corriente suficiente para encender un servo


pequeño (SG90), suficiente para hacer unos cuantos proyectos de prueba.

Sin embargo no dispone de corriente suficiente para actuar un servo grande


(MG996R). Incluso varios servos pequeños, o hacer excesiva fuerza con ellos puede
exceder la capacidad de corriente de Arduino, provocando su reinicio.
Por otro lado, finalmente, para el control conectamos el cable de señal (naranja /
blanco) a cualquier pin digital de Arduino.

Al usar varias fuente de tensión recordar poner siempre en común todos los GND. De lo
contrario podríais dañar algún componente.

EJEMPLOS DE CÓDIGO
El control de servos en Arduino es muy sencillo, ya que el IDE Standard proporciona
la librería "servo.h", que permite controlar simultáneamente hasta 12 servos en Arduino
Uno/Nano y hasta 48 servos en Arduino Mega.

Entre los ejemplos típicos para ilustrar el funcionamiento de servos tenemos el


Sketch "Sweep", que realiza un barrido continuo con el servo.

Para ello incrementa el ángulo de 0 a 180º a razón de 1º cada 15ms, posteriormente


realiza la operación contraria de 180º a 0º, para finalmente reiniciar el bucle.
#include <Servo.h>

Servo myservo; // crea el objeto servo

int pos = 0; // posicion del servo

void setup() {
myservo.attach(9); // vincula el servo al pin digital 9
}

void loop() {
//varia la posicion de 0 a 180, con esperas de 15ms
for (pos = 0; pos <= 180; pos += 1)
{
myservo.write(pos);
delay(15);
}

//varia la posicion de 0 a 180, con esperas de 15ms


for (pos = 180; pos >= 0; pos -= 1)
{
myservo.write(pos);
delay(15);
}
}

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy