SERVOMOTORES

Un servomotor es un dispositivo electromecánico que nos permite mover una pieza girando su eje una cierta cantidad de grados. Hay servomotores pequeños, que son los que comunmente encontramos en aplicaciones como ser juguetes, vehículos radiocontrolados, o pequeños robots didácticos. Son como los que se ven en la figura:

Otros, en cambio, son de mayor potencia y tamaño, y se usan en aplicaciones industriales, como máquinas automáticas, y robots industriales.
Estos motores se controlan desde equipos industriales sofisticados y costosos, generalmente conectados a los conroladores industriales llamados PLC. Son como los que se ven en la imagen de abajo.

En nuestro curso nos ocuparemos de los servomotores más pequeños, que podemos controlarlos de forma relativamente sencilla, con un circuito oscilador (por ejemplo con 555) o con un microcontrolador Arduino.
Estos pequeños servos se conectan mediante tres cables, dos de ellos usados para a alimentación y el tercero para la señal, qe nos indicarà de forma analògica la posición del eje del servomotor. Generalmente usan la siguiente combinación de colores:

Cable Rojo    : +5V
Cable Marrón:  0V
Cable Naranja: Señal

La señal que se entrega al servomotor consiste en una señal pulsante de 5V de amplitud, donde la duración del estado alto de dicha señal determinará el angulo que girará el eje del servomecanismo.

Los pulsos se repiten con un período que puede variar aproximadamente entre 20 a 50 milisegndos (ms)  y la duración de los pulsos va de aprox. 1ms para los 0grados a 2,5 ms para los 180grados. Estos valores son aproximados y pueden variar con la marca y modelo del servomotor.

A la relación entre el tiempo que la señal está en alto y el período total de la señal se la conoce como “Ciclo Activo” (Duty Cicle).

Si por ejemplo el tiempo que la señal está en alto y en bajo es igual, entonces el ciclo activo será del 50%. Si la señal está en alto durante 1ms y el período de la señal es de 10ms, entonces el ciclo activo será del 10%.

A esta técnica que varía el ancho del puslo para controlar el valor desado se la denomina PWM, por las siglas en inglés de “Pulse Width Modulation”, es decir Modulación del Ancho del Pulso.

Esa señal de control podemos generarla con un circuito discreto, por ejemplo con un oscilador astable con 555 como se ve en la figura de abajo

O con un microcontrolador, en la animación que está abajo, podemos ver un servomotor conectado a un microcontrolador Arduino, el cual genera la señal para hacerlo girar los grados desados, en ese ejemplo 0, 45, 90, 135 y 180 grados.

Los pulsos son generados por el programa de forma muy sencilla, utilizando una biblioteca ya programada llamada Servo, con la cual solo tenemos que declarar un objeto de la clase servo mediante una instrucción como la siguiente:

Servo mi_servo;

y luego solo indicar el ángulo que queremos que gire el eje, por ejemplo para girar 45 grados escribimos en nuestro código la siguiee instrucción:

mi_servo.write(45);

El código completo usado es el que aparece aquí abajo

#include <Servo.h>
#define PIN_MOTOR 10

int retardo = 1000;  //2000 milisegundos=2segundos.
int tiempo1 = 1000;
Servo mi_servo;  //Crea una instancia llamada mi_motor.

void setup()
{
  mi_servo.attach(PIN_MOTOR);  // Indica que el servo está conectado al pin 10.
}
void loop()
{
  mi_servo.write(0);  
  delay(tiempo1);
  mi_servo.write(45);  
  delay(tiempo1);
  mi_servo.write(90);  
  delay(tiempo1);
  mi_servo.write(135);  
  delay(tiempo1);
  mi_servo.write(180);  
  delay(tiempo1);
  mi_servo.write(90);  
  delay(tiempo1);
}

¿Qué fuerza tienen los servomotores?, ¿Como se mide la fuerza en un servomotor?

Para referirnos a la “fuerza” que un motor, o un servomotor entregan sobre su eje, debemos explicar el concepto de TORQUE. Cuando usamos un destornillador, o apretamos una tuerca, o pedaleamos en una bici, o se mueven las ruedas de un automóvil, a esa fuerza que el eje realiza para poder girar se la conoce como TORQUE. En un motor el torque es la cantidad de energía que se transfiere al eje para mover el sistema mecánico.

El torque se obtiene multiplicando la fuerza por la distancia. En el caso de la llave la distancia va del centro de la tuerca al punto dónde se aplica la fuerza. En la bicicleta, la distancia va del centro de la corona dentada al centro del eje del pedal. La unidad del torque es el Kg.m

Normalmente la fuerza de los servomotores la vemos representada como kilogramos de fuerza por centímetro.

Uno de los servomotores más comunmente usados en aplicaciones educativas, controlado con microcntroladores Arduino, es el conocido servo SG90, donde los datos del fabricante nos informan que posee un torque de 1,5Kg.cm.  En muchas publicaciones comerciales puede aparecer el torque expresado simplemente en Kg, pero nosotros sabemos que en realidad la unidad en la que se debe expresar es Kg.cm

Por ejemplo, si usamos este servomotor y la distancia de la carga mecánica al centro de eje es 2cm, entonces el máximo peso que podrá mover es de 0,750Kg, es decir 750 gramos, ya que:

0,75Kg x 2cm = 1,5 Kg.cm, que es la máxima fuerza para ese motor.

En el siguiente video podemos ver un resumen de esta explicación:

Conclusión:

  • Los servomotores se utilizan para controlar la posición de un mecanismo. Hay desde pequeños y accesibles hasta
    más potentes, muy sofisticados y costosos.
  • En los pequeños el giro del eje se controla con el ciclo activo de una señal pulsante.
  • Esa señal podemos generarla con un circuito discreto, o con un microcontrolador mediante un programa.
  • Los motores, y los servomotores también entregan un cierto TORQUE en su eje, que es la capacidad de transferir energia para moer un mecanismo.
  • El torque se mide en unidades de fuerza por distancia.