You are on page 1of 14

Laboratorio de Robtica: Introduccin a los servomotores

2015

Qu es un servomotor?
Un servomotor (tambin llamado servo) es un dispositivo similar a un motor de
corriente continua que tiene la capacidad de ubicarse en cualquier posicin dentro de
su rango de operacin, y mantenerse estable en dicha posicin.
Est conformado por un motor de corriente continua, un tren de engranajes (caja
reductora) y un circuito electrnico de control.
En la imagen N 1 se observan las partes constitutivas de un servomotor estndar

Imagen N1.
Motor de corriente continua: convierte la potencia elctrica en movimiento rotacional.
Tren de engranajes: se encarga transformar y adaptar la rotacin y par del motor al eje
de salida.
Potencimetro: realimenta la informacin de posicin al circuito de control.
Circuito electrnico de control: se encarga de transformar la informacin recibida a
travs de la seal de control en la cantidad de desplazamiento, o movimiento,
necesario y comanda al motor elctrico a tal efecto.

E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 1

Laboratorio de Robtica: Introduccin a los servomotores

2015

Funcionamiento
Los servomotores hacen uso de la modulacin por ancho de pulsos (PWM) para
controlar la direccin o posicin de los motores de corriente continua. El pulso se
alimenta al servo a travs de una lnea de control. La lnea de control no suministra
energa al motor directamente, solo es una entrada a un chip de control en el interior
del servo, y como tal, no tiene que suministrar corriente al servo. En consecuencia, si
se est diseando un controlador de servo se puede usar casi cualquier tecnologa
(CMOS, TTL, componentes discretos) para impulsar la lnea de control.
Un cable de alimentacin independiente suministra la energa a la servo. El cable de
masa de potencia es tambin utilizado como punto comn para la lnea de control.
Aunque slo hay tres cables, los fabricantes no han estandarizado las pines de
conexin. La mayora de los conectores estn cableados de la misma forma, pero hay
excepciones como el conector Airtronics donde se invierte el cable de alimentacin y
tierra. La conexin de un servo que est cableado incorrectamente puede llevar a la
destruccin del servo.
En la imagen N 2 se puede observar las diversas variantes de cables de conexin
segn el fabricante del servo.

E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 2

Laboratorio de Robtica: Introduccin a los servomotores

2015

Imagen N2.

Seales elctricas
La tensin en la lnea de control debe ser 0 voltios para una seal de baja (lgica 0) y 5
voltios para una seal de alto (1 lgico).
La posicin del motor servo se establece por la longitud de un pulso. El servo espera
recibir un pulso cada 20 milisegundos aproximadamente. Si ese pulso se mantiene en
nivel alto durante 1 milisegundo, entonces el ngulo servo ser cero, si es de 1,5
milisegundos, entonces ser en su posicin central y si es 2 milisegundos ser a 180
grados.
Los puntos finales del servo pueden variar y muchos servos solamente giran 170
aproximadamente. Tambin es posible conseguir servos 'de rotacin continua' que
pueden 360 grados.

E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 3

Laboratorio de Robtica: Introduccin a los servomotores

2015

Imagen N3.

E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 4

Laboratorio de Robtica: Introduccin a los servomotores

2015

El servo MG996R
El MG996R es un servo digital de alto torque que cuenta con engranajes metlicos que
le permiten ejercer 10Kg-cm de torque. Se destacan sus caractersticas mejoradas de
resistencia al impacto, un PCB rediseado y sistema de control de IC que hacen que
sea mucho ms preciso que su predecesor, el servo MG995. El tren de engranajes y el
motor tambin se han actualizado para mejorar el ancho de banda muerto y el
centrado.
Especificaciones:

Peso: 55 g
Dimensiones: 40,7 x 19,7 x 42,9 mm aprox.
Par Stall: 9,4 kgfcm (4,8 V), 11 kgfcm (6 V)
Velocidad de funcionamiento: 0,17s/60 (4,8 V), 0,14s/60 (6 V)
Tensin de funcionamiento: 4,8 V a 7,2 V
Consumo de corriente nominal: 500mA 900mA (6V).
Corriente Stall: 2,5 A (6V)
Ancho de Banda muerta: 5 us
Rango de temperatura: 0C - 55C

Imagen N4.

E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 5

Laboratorio de Robtica: Introduccin a los servomotores

2015

Modificacin de un servo para rotacin contina


Tpicamente el rango de rotacin de los servomotores estndar est en el rango de 0 a
180. Sin embargo, ciertas aplicaciones de robtica requieren servomotores que
permitan una rotacin de 360 de forma continua.
El objetivo es reemplazar el potencimetro de realimentacin de posicin del servo por
un divisor resistivo. De esta forma estaremos haciendo creer al circuito de control que
siempre est en la posicin correcta, permitiendo de esta forma una rotacin continua
del eje de transmisin. Por otro lado, los servos cuentan con limites mecnicos que
tambin se debern eliminar.
A continuacin se detallan los pasos a seguir para convertir un servomotor estndar en
uno de rotacin continua.

PASO N 0: Herramientas y elementos necesarios.


12345678-

Destornillador tipo Philips chico.


Soldador de estao.
Estao.
Cinta desoldante.
Alicate chico.
Pinza de punta chica.
Vaina Termo-contrable.
Dos resistencias de 2.2Kohm 5%.

PASO N1: Quitar los cuatro tornillos que sujetan la tapa inferior y superior al cuerpo
der servo.
1- Valindose de un destornillador Philips retirar los cuatro tornillos que unen la
tapa superior e inferior del servo al cuerpo del mismo.
2 Guardar los tornillos en un lugar seguro.

E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 6

Laboratorio de Robtica: Introduccin a los servomotores

2015

Imagen N5.

PASO N 2: Remover la tapa inferior para acceder al circuito de control electrnico del
servo.
1- Retirar la tapa inferior teniendo cuidado de no daar el cable de conexin del
servo.

Imagen N6.

PASO N 3: Desconectar los tres cables que unen el circuito de control al


potencimetro de realimentacin de posicin.
1- Acceder al circuito de control electrnico.
2- Retirar circuito de control electrnico para poder acceder a los cables de
conexin del potencimetro de realimentacin de posicin.
E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 7

Laboratorio de Robtica: Introduccin a los servomotores

2015

3- Valindose de la pinza de punta desconectar los cables que unen el


potencimetro a la placa de control electrnico.

Imagen N7.

PASO N 4: Desoldar cables de conexin del potencimetro de la placa del circuito de


control del servo.
1- Valindose del soldador de estao retirar los cables de conexin del
potencimetro de la placa de control electrnico.
2- Utilizando el soldador de estao y la malla desoldante retirar el exceso de estao
que pueda existir en los vas de conexin de los cables de conexin del
potencimetro. Evitar el exceso de calor en los vas, puede causar dao
irreversible en los mismos.

Imagen N8.
E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 8

Laboratorio de Robtica: Introduccin a los servomotores

2015

PASO N 5: Preparar divisor resistivo para su colocacin en el circuito de control.

Imagen N9.

PASO N 6: Soldar divisor resistivo en circuito de control

Imagen N10.
E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 9

Laboratorio de Robtica: Introduccin a los servomotores

2015

PASO N 7: Remover tapa superior para acceder al tren de engranajes y eje de


transmisin.

Imagen N11.

PASO N 8: Remover engranaje central del tren de engranajes.

Imagen N12.

PASO N 9: Quitar lmite mecnico del eje de transmisin.

E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 10

Laboratorio de Robtica: Introduccin a los servomotores

2015

Imagen N13.

PASO N 10: Quitar lmite mecnico impuesto por el eje del potencimetro.

Imagen N14.

E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 11

Laboratorio de Robtica: Introduccin a los servomotores

2015

PASO N 11: Ensamblar nuevamente el servo.

Imagen N15.

E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 12

Laboratorio de Robtica: Introduccin a los servomotores

2015

Ejemplos de cdigo para placa Pingino


/*----------------------------------------------------Autor: Ing. Leonardo Javier Alvarez.
Fecha: 2015-08-29
Descripcion:
Cdigo de ejemplo de programacin de un
servomotor estandar
-----------------------------------------------------*/
// Declaracin de variables globales
void setup() {
// Cdigo de inicializacin. Este cdigo se ejecuta solo una vez al iniciar
el sistema.
pinMode(0,OUTPUT); // Fijo el pin D0 como salida digital
// Ligo el pin D0 al control por software del servo
servo.attach(0);
// Fijo el maximo ancho de pulso en microsegundos (180 grados).
servo.setMaximumPulse(0,2000);
// Fijo el minimo ancho de pulso en microsegundos (0 grados).
servo.setMinimumPulse(0,1000);
}
void loop() {
// Cdigo que se ejecuta en forma de lazo infinito.
servo.write(0,0); // Fijo la posicin del servo a 0 grados
delay(1000); // Delay de 1000ms
servo.write(0,45); // Fijo la posicin del servo a 45 grados
delay(1000); // Delay de 1000ms
servo.write(0,90); // Fijo la posicin del servo a 90 grados
delay(1000); // Delay de 1000ms
servo.write(0,135); // Fijo la posicin del servo a 135 grados
delay(1000); // Delay de 1000ms
servo.write(0,180); // Fijo la posicin del servo a 180 grados
delay(1000); // Delay de 1000ms
}

E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 13

Laboratorio de Robtica: Introduccin a los servomotores

2015

/*----------------------------------------------------Autor: Ing. Leonardo Javier Alvarez.


Fecha: 2015-08-29
Descripcin:
Cdigo de ejemplo de programacin de un
servomotor de rotacin continua.
El funcionamiento difiere del servo estndar.
Se deja al lector la resolucin de la incgnita
velocidad de rotacin en lugar de ngulo de rotacin
-----------------------------------------------------*/
// Declaracin de variables globales
void setup() {
// Cdigo de inicializacin. Este cdigo se ejecuta solo una vez al iniciar
el sistema.
pinMode(0,OUTPUT);
// Ligo el pin D0 al control por software del servo
servo.attach(0);
// Fijo el maximo ancho de pulso en microsegundos (180 grados).
servo.setMaximumPulse(0,2000);
// Fijo el minimo ancho de pulso en microsegundos (0 grados).
servo.setMinimumPulse(0,1000);
}
void loop() {
// Cdigo que se ejecuta en forma de lazo infinito.
servo.write(0,0);// Fijo maxima velocidad CW
delay(1000);// Delay de 1000ms
servo.write(0,45);// Fijo velocidad media CW
delay(1000);// Delay de 1000ms
servo.write(0,100);// Fijo baja velocidad CW
delay(1000);// Delay de 1000ms
servo.write(0,90);// Fijo cero velocidad
delay(1000);// Delay de 1000ms
servo.write(0,116);// Fijo baja velocidad CW
delay(1000);// Delay de 1000ms
servo.write(0,135);// Fijo velocidad media CCW
delay(1000);// Delay de 1000ms
servo.write(0,180);// Fijo maxima velocidad CCW
delay(1000);// Delay de 1000ms
}

E.S.E.T.P. N 748 Trelew Chubut Ing. Leonardo Alvarez

Pgina 14

You might also like