Tutorial de Arduino, lección 2, vamos con los servomotores

¿Qué es un Servo motor?

Un servomotor es un motor de baja velocidad y alto par que viene en una variedad de tamaños. Distinto de los motores de la C.C. y de pasos el servomotor no hace girar normalmente una rotación completa de 360 grados. En su lugar, se limita a un rango de 180, 270 o 90 grados.

Se envía una señal de control al servo para posicionar el eje en el ángulo deseado. Esta disposición con una sola señal lo hace simple para ser utilizado en diseños de radio y control remoto, así como con microcontroladores.

Un servo es perfecto si necesita colocar el timón en un barco o el elevador en un avión. Son realmente útiles en trabajos de robótica para posicionar cámaras, sensores o apéndices de robots. Los servos también se pueden utilizar como medidores analógicos como velocímetros y tacómetros.

Tipos de servomotores

Un servomotor es esencialmente un motor que tiene una entrada para una señal de control que se utiliza para especificar la posición del eje del motor.

Los servos se utilizan tanto en la industria como en aplicaciones de hobby. Los servomotores industriales son a menudo motores AC con entradas de control digital que cuestan cientos o miles de dólares.

Los servomotores para proyectos sencillos son generalmente motores DC que pueden ser controlados con una señal digital o analógica.

Los servos digitales se utilizan en aplicaciones que requieren respuestas rápidas como el elevador en un avión o el timón en un helicóptero. No vamos a hablar de este tipo de servo, aunque la conexión y el código utilizado para su funcionamiento con un Arduino es idéntico al que utilizaremos para los servos analógicos.

Veremos servomotores analógicos ordinarios, el tipo más popular para el uso de los aficionados. Son baratos y fáciles de obtener. El hardware de montaje también es muy fácil de encontrar ya que estos servos son de un conjunto estándar de tamaños.

Hay que tener en cuenta sin embargo que mientras que no trabajaremos con los motores servos digitales hoy son más utilizados que los análogicos. Utilizan las mismas señales de control PWM que los servomotores analógicos y pueden ser controlados utilizando los mismos circuitos y códigos.

Servomotores analógicos

Los servomotores analógicos son económicos y están disponibles en una amplia variedad de tamaños y capacidades. Perfecto cuando se necesita un pequeño motor de alto par que se pueda posicionar con precisión y que no rompa el proyecto.

La parte «analógica» del servomotor analógico es la señal de control. Los servomotores analógicos responden a una modulación de ancho de pulso o a una señal PWM para posicionar el eje del motor.

PWM es un medio de control ideal. Puede ser generado por un simple circuito temporizador o con un microcontrolador. Puede enviarse por un solo cable o transmitirse por radio o haz de luz.

El Arduino tiene una serie de pines de salida con capacidad PWM, lo que lo hace ideal para controlar servomotores.

¿Cómo funcionan los servos?

Un servomotor es un motor con un «servomecanismo» incorporado.

El servomecanismo utiliza un sensor para monitorizar la posición del eje del motor y un controlador para controlar el motor. Se alimenta una señal que indica la posición en la que se debe ajustar el eje. A continuación, desplaza el motor a la posición deseada.

En los servomotores analógicos trabajaremos con esa señal de control que es una señal PWM cuyo ancho de pulso determina el ángulo en el que se debe posicionar el eje del motor. El motor en sí es un simple motor de corriente continua con muchos engranajes para reducir su velocidad y aumentar su par.

Para funcionar correctamente, el servomotor necesita un sensor que pueda medir con precisión la posición de su eje. En algunos servomotores industriales y de gama alta esto se hace usando un disco interruptor óptico, pero en la mayoría de los servomotores de aficionados estándar el sensor es un potenciómetro. Esto funciona bien ya que estos servos típicamente viajan de 180 a 270 grados, dentro del rango de un potenciómetro. Sin embargo, la precisión de los potenciómetros, especialmente en servomotores de bajo coste, puede afectar a la precisión global del servomecanismo.

Servo motores de rotación continua

Un servo motor analógico estándar está restringido en su rotación, normalmente a 180 o 270 grados (180 es, con mucho, el más común). Su engranaje interno proporciona una unidad de potencia de alto par en un paquete pequeño y económico.

Esta combinación de pequeño tamaño y gran par de torsión también hace que los servos sean atractivos para utilizarlos como sustitutos de los motores de corriente continua estándar en el diseño de pequeños dispositivos como pequeños juguetes y robots. Esto llevó a varias personas a modificar los servos analógicos estándar quitando el potenciómetro para permitir que el servo girara 360 grados.

Los fabricantes se dieron cuenta de ello y ahora ofrecen «servomotores de rotación continua«, esencialmente servomotores con el servomecanismo desconectado.

En un servomotor de rotación continua, la velocidad y la dirección de rotación del eje son controladas por la misma señal PWM que se utiliza en un servomotor analógico convencional.

Al tener una simple señal de control de un solo cable y el mismo paquete físico que un servomotor estándar, los servomotores de rotación continua son atractivos para una serie de aplicaciones.

Señales de control del servo motor

Para poder utilizar servomotores analógicos es necesario saber cómo controlar su funcionamiento mediante PWM. Las dos variedades, convencional y de rotación continua, utilizan las mismas señales de tiempo pero responden a ellas de forma ligeramente diferente.

Especificaciones del servo motor

Hay literalmente cientos de servomotores analógicos disponibles, saber cómo leer sus especificaciones es esencial para elegir el correcto para su aplicación.

Estos son algunos de los parámetros clave que encontrarás al elegir un servomotor.

Tamaño del motor

El tamaño físico de un servomotor es naturalmente una consideración importante, lo más probable es que su aplicación exija que el motor cumpla con las restricciones de tamaño específicas. Hay un número de tamaños de servomotores estándar, esto hace que sea mucho más fácil encontrar soportes de montaje y hardware para acomodar tu servo motor.

Los tamaños de los servomotores se especifican a menudo de la siguiente manera:

  • Nano
  • Sub-Micro
  • Micro
  • Mini
  • Estándar
  • Grande

También hay tamaños especiales. Los tamaños Micro y Standard son los más utilizados por los experimentadores de Arduino.

Material del engranaje

Los servos tienen una serie de engranajes internos más engranajes directamente en el eje de salida, que sirven para reducir la velocidad del motor y aumentar su par.

Los engranajes se pueden fabricar en plástico o en metal. Los engranajes metálicos ofrecen un mejor rendimiento, normalmente soportan pares más altos y son menos susceptibles al despojo del inodoro. Los servos de engranajes metálicos también tienen un costo más alto.

Los engranajes de plástico son más susceptibles al desencofrado y no tienen la capacidad de torsión de sus contrapartes metálicas. Sin embargo, son más silenciosos y menos costosos que los servomotores con engranajes metálicos.

A menudo se puede obtener el mismo servomotor con una selección de engranajes. Un motor de experimentación común es el SG90, un servomotor de tamaño Micro con engranajes de plástico. Su contraparte metálica es el MG90. Como vienen en el mismo estuche y tienen los mismos requisitos de voltaje y parlantes, son intercambiables, y el MG90 ofrece un rendimiento superior debido a sus engranajes metálicos.

La calidad del servomotor también se ve afectada por el tipo de rodamientos y el número de los mismos. Los motores con cojinetes múltiples tienen una rotación más suave y precisa.

Velocidad

La velocidad de un servomotor se especifica como el tiempo necesario para mover el eje del servomotor en 60 grados. Un ejemplo de clasificación es 0,25 seg/60°, lo que significa que se tarda un cuarto de segundo en viajar 60 grados.

La velocidad del servomotor es más aplicable a los servomotores convencionales, los motores de rotación continua están clasificados en RPM máximas como cualquier motor de corriente continua.

Los servos de alta velocidad se utilizan en aplicaciones de modelos de aviones y helicópteros para controlar elevadores y timones que a menudo necesitan ser movidos rápidamente. Muchos de ellos utilizan control digital y sensores de posición ópticos internos en lugar de potenciómetros para permitir un movimiento más rápido.

Para proyectos sencillos como el control de la posición de una cámara de vídeo o la velocidad de un sensor ultrasónico no suele ser un factor crítico.

Torque

El Torque es un parámetro muy importante, literalmente especifica cuán fuerte es un motor. El Torquese define como la cantidad de fuerza que un servo puede aplicar a una palanca o, en otras palabras, el peso que puede soportar.

Un servomotor tiene una capacidad nominal de 5 kg-cm.

El servomotor puede soportar hasta 5 kg de carga en una palanca a una distancia de 1 centímetro del centro del eje.

A una distancia del doble de la distancia, la carga se reduciría a la mitad, por lo que a 2 cm del eje la palanca podría soportar 2,5 kg.

La mitad de la distancia duplica la carga que se puede soportar hasta 10 kg.

Los servomotores más grandes tienden a tener mayores capacidades de par, mientras que los motores con mayor par tienden a ser más caros. También pesan más y consumen más corriente.

Voltaje de operación

La mayoría de los servos analógicos de aficionados tienen una tensión nominal de 4,8 a 6 voltios y alcanzan su máximo rendimiento a la mayor tensión.

También se ofrecen más servos con tensiones nominales máximas de 7,5 a 8,5 voltios. Estos se están volviendo más populares debido a la disponibilidad de baterías LiPo de 7.4 voltios para modelos de aviones, barcos, vehículos y cuadricópteros.

Los servomotores, especialmente los modelos de alto par, pueden consumir una gran cantidad de corriente, lo que debe tenerse en cuenta a la hora de seleccionar una fuente de alimentación o una batería para su proyecto.

Accesorios

La mayoría de los servomotores tienen un eje de engranaje que está roscado para un tornillo central.

Para hacer uso del servo necesitarás conectar el cambio a otro componente de tu diseño – una plataforma, una marcha, una rueda o lo que sea que estés intentando mover con el servo.

Los servomotores vienen con un surtido de palancas y discos de diferentes formas que se pueden acoplar al eje para facilitar la fijación del servomotor a su diseño. Estas piezas se denominan a menudo «cuernos» o «brazos». Se fijan al eje del servomotor y se fijan en posición con el tornillo central y pueden ser de plástico o de metal.

Además de los cuernos y los brazos, también deberías recibir un surtido de accesorios de montaje y tornillos con tu servo, incluyendo el tornillo central para el eje (no lo pierdas ya que tienden a diferir entre los diferentes tipos de servo).

También puede comprar placas de montaje diseñadas para aceptar servo tamaños populares como Micro y Standard.

La disponibilidad e intercambiabilidad de los servomotores, brazos, herramientas de montaje y accesorios facilita la incorporación de servomotores en sus diseños.

Prueba de servo motores

Como con cualquier componente, es útil saber cómo probar un servomotor para asegurar el funcionamiento correcto.

Esto puede ser muy útil cuando estás a punto de montar el servo en una aplicación de misión crítica, o simplemente en algo que sería una molestia tener que desmontar si el servo resulta ser defectuoso.

También es útil poder girar el servoeje en una posición preestablecida (por ejemplo 90 grados) antes de montar el servo en su proyecto para que todo se alinee correctamente.

Hay varios métodos que puedes usar para probar un servo. Un simple boceto de Arduino y una conexión como las que verás aquí más adelante será un excelente método para probar un servo y posicionar su eje en una posición preestablecida.

Otra forma de hacerlo es utilizando un servo tester dedicado.

Comprobadores de servo motores

Como puedes imaginarte, un servomotor tester es un dispositivo que se utiliza para probar servo motores. Son muy útiles y pueden ser muy económicos, dependiendo de las características que desees.

Los servo probadores más avanzados tienen controles de velocidad y centrado para múltiples motores, algunos también tienen medidores de corriente.

Estas unidades necesitan ser alimentadas por la misma fuente de alimentación (o equivalente) que usted usará para alimentar los motores. Pueden conectarse a un conector de servomotor estándar y tomarán el control del servomotor.

Los servoprobadores te permitirán mover manualmente el motor y centrarlo en la posición de 90 grados. Esto te permite comprobar el correcto funcionamiento del motor y alinear la posición del eje antes de sujetar las bocinas o los brazos al mismo.

Cómo se conecta un servomotor a Arduino, Conexiones

Los servomotores analógicos suelen tener un conector de 3 pines. En algunos motores más caros, el cable del motor se puede quitar en la base del motor y sustituirlo si es necesario, otros motores tienen el conector permanentemente conectado a un cable corto de 3 hilos.

Los códigos de color utilizados en los servomotores para aficionados varían según el fabricante. Sin embargo, la mayoría de los fabricantes observan el mismo pinout, como se muestra en el siguiente diagrama:

Pinout del servo motor

Las tres conexiones a los servomotores son las siguientes:

  • Tierra – La tierra común para el motor y la lógica.
  • Potencia – La tensión positiva que alimenta el servo.
  • Control – La entrada para la señal de control PWM.

El conector más común es el tipo estándar de DuPont con una separación de 0,1 pulgadas. Esto facilita la conexión de servomotores a su proyecto utilizando tiras de encabezado estándar de DuPont.

También puedes insertar los cables de la protoboard directamente en el conector de 3 pines de los servomotores para que puedas hacer prototipos con ellos.

Utilizar un Servo Motor con Arduino

Los servos motores son una de las partes esenciales de cualquier kit de Arduino incluyendo los de iniciación. Son esenciales en prácticamente todas las construcciones de robots, desde controlar los brazos y las piernas hasta las ruedas motrices y sus marchas. Los servos normalmente giran hasta 180 grados siendo la posición central el punto medio de 90 grados, y pueden colocarse en cualquier punto intermedio. Al reemplazar el potenciómetro de realimentación de posición dentro de un servo se puede hacer girar completamente en cualquier dirección y hacer que controle las ruedas motrices de un robot o un coche.

Así que, vamos a aprender a controlar un servo con nuestro Arduino Uno.

Carga el siguiente código en el IDE arduino. Comenzamos incluyendo el archivo . Este archivo contiene toda la codificación necesaria para controlar los servos. A continuación tenemos que crear nuestro objeto servo. Nuestro servo se llamará servoMain, cualquier nombre que se te ocurra valdrá perfectamente. A continuación viene la función setup () y en el interior adjuntamos nuestro objeto servo en el pin 10.

Ahora estamos listos para enviar comandos a nuestro servo. En la función loop () principal mandamos una serie de comandos para rotar el servo a varias posiciones, con un retardo de 1 segundo entre cada comando.

Antes de nada recordar que en el servomotor tendrás 3 cables. Normalmente negro, rojo en el centro y naranja o blanco. Se puede ver en la siguiente imagen.

Utilizando un cable de conexión de un solo cable, conecta el cable negro a uno de los pines de 0V del Arduino. Conecta el cable rojo, el central, al pin de 5V Arduino. Y finalmente conecta el cable naranja o blanco al pin 10. Ahora toca probarlo y experimentar.

/*
Codigo para el Arduino Servo
*/
#include <Servo.h>
Servo servoMain; // Definir servo

void setup()
{
   servoMain.attach(10); // servo on digital pin 10
}

void loop()
{
   servoMain.write(45);   //  Gire el servo izquierdo a 45 grados
   delay(1000);          // Espera 1 segundo
   servoMain.write(0);   // Gire el servo izquierdo a 0 grados
   delay(1000);          // Espera 1 segundo
   servoMain.write(90);  // Gire el servo de nuevo a la posición central (90 grados)
   delay(1000);          // Espera 1 segundo
   servoMain.write(135); // Gire Servo Derecho a 135 grados
   delay(1000);          // Espera 1 segundo
   servoMain.write(180); // Gira servo derecho a 180 grados
   delay(1000);          // Espera 1 segundo
   servoMain.write(90);  // Gire el servo de nuevo a la posición central (90 grados)
   delay(1000);          // Espera 1 segundo   
   }

Lección 1, encender un LED

Pin It on Pinterest

Shares