Motores Servo


Servomotores

 

     Los servomotores o "servos" son pequeños dispositivos que se utilizan frecuentemente en radiocontrol de modelismo para el control de la aceleración de un motor o de la dirección. Su pequeño tamaño, bajo consumo, robustez y precisión, los hacen ideales para su utilización en la microrobótica.

 

Constitución

     Un servomotor está constituido por un pequeño motor de corriente continua, unas ruedas dentadas que trabajan como redutoras, lo que le da una potencia considerable, y un circuito electrónico necesario para su control.

     La siguiente figura muestra el despiece de un servomotor.

 

 

  

Funcionamiento

     La tensión de alimentación de los servomotores suele estar comprendida entre los 4 y 6 voltios.

     El control de un servo se limita a indicar en qué posición se debe situar el eje del motor, mediante una señal cuadrada modulada en anchura de pulsos PWM (Pulse Width Modulation). La duración del nivel alto de la señal indica la posición donde queremos poner el eje del motor y el potenciómetro que el servomotor tiene unido por las ruedas dentadas de la reductora al eje del motor indica al circuito electrónico de control mediante una retroalimentación, si éste ha llegado a la posición deseada.

 

 

     La duración de los pulsos indica el ángulo de giro del motor. Cada servomotor tiene sus márgenes de operación, que se corresponde con el ancho del pulso máximo (2,1 ms), giro de 180º, y mínimo (0,3 ms), giro de 0º. Este pulso se han de repetir en un período que puede oscilar entre 10 ms y 30 ms, si se deja de repetir el envio del pulso el eje de motor pierde la fuerza y la posición puede perderla si sobre el eje del motor actúa una fuerza externa.

 

Conexiones con Arduino

 

Cuando utilizamos la placa MOTOR_SHIELD, algunos de los contactos de Arduino quedan ocultos, (e/s analógicas/digitales) sin embargo se pueden hacer algunos arreglos (ver fotos).

 

De todas maneras aunque consigamos tener accesibles todas las e/s, hay algunas que son utilizadas por la placa motorshield y que por tanto no debemos utilizar:

 

Digital pin 2 LIBRE

Digital pin 3: DC Motor #2 / Stepper #1.  Sólo si se usa el motor 2/1

Digital pin 4: Sólo ocupado si se usa los motores DC/Stepper

Digital pin 5: DC Motor #3 / Stepper #2. Sólo si se usa el motor 3/2

Digital pin 6: DC Motor #4 / Stepper #2. Sólo si se usa el motor 4/2 

Digital pin 7: Sólo ocupado si se usa los motores DC/Stepper

Digital pin 8: Sólo ocupado si se usa los motores DC/Stepper

Digital pin 9: Servo #1. Sólo ocupado si se usa el servo1

Digital pin 10: Servo #2. Sólo ocupado si se usa el servo2

Digital pin 11: DC Motor #1 / Stepper #1

Digital pin 12: Sólo ocupado si se usa los motores DC/Stepper

Digital pin 13 LIBRE

 

Las entradas analógicas (ANALOG  IN) pueden ser utilizadas como pins digitales (referenciándolas como pines del 14 al 20)

 

 

 

 

Power Supply

 

Para que los motores funcionen correctamente necesitamos mantener un nivel de corriente considerable. Tenemos varias opciones:

 

1.- Utilizar la corriente de Arduino:

 

          No se recomienda puesto que además de reducir considerablemente la vida de la batería principal, puede haber problemas con la ejecución del código sobre Arduino, y malfuncionamiento para el reseteo de la placa. Para ello deberemos utilizar el jumper  (PWR) del motorshield.

 

2.-Añadir una fuente de corriente externa (recomendado):

 

Alimentaremos de forma independiente la Arduino y los motores. Debemos eliminar el jumper(PWR) de  la motorshield y alimentar la Arduino de forma independiente (USB o Vin); y conectar una fuente externa al conector EXT_PWR del motorshield.

 

 

En cualquiera de los 2 casos deberemos estar atentos al led del motorshield, si no está encendido, algo va mal.

 

 

Control de servomotor con Arduino