Tutorial Uso de Servomotor Con Arduino
Tutorial Uso de Servomotor Con Arduino
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.
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.
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.
• 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".
• 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.
• 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.
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
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).
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.
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);
}