Servomotor en Arduino con un joystick analógico

Para usar un servomotor en arduino se requiere usar una biblioteca especial. En este tutorial , además de controlarlo con la biblioteca, se usará un joystick, analógico. Este tipo de control se hará con una entrada del ADC.Un servomotor es un motor de DC con un potenciometro como retroalimentación que ubica un angulo. El rango de trabajo de un servo-motor es de 180 grados. También se pueden modificar un servomotor para rotar continuamente, pero con esto se pierde la principal ventaja que es poderlo ubicarlo en una posición dada. La posición se ubica, gracias a una retro-alimentación mediante un potenciometro, para fijar la posición.  Por lo tanto son muy usados para posicionar superficies  u objetos en control, ya sea para el movimiento de palancas, pequeños ascensores, timones, radio control y por supuesto en robots.

Servomotor en Arduino

Servomotor Arduino con joystick

Material de servomotor en Arduino:

En la tienda virtual de HeTPro puedes encontrar todos los materiales www.hetpro-store.com
Los controladores y software Arduino lo puedes encontrar en: www.arduino.cc

Servomotor Arduino:

El motor del servo tiene circuitos internos y un potenciómetro para realizar control. Este control se realiza por la retroalimentación del potenciometro que está  conectado al eje central del motor. Ten en cuenta que el potenciómetro le permite al circuito supervisar el ángulo actual del servo. Entonces, por lo tanto si el eje está en el ángulo correcto, el motor se apagará. Sin embargo, por el contrario si el circuito detecta que el servo no está en la posición que debería de estar, en consecuencia el motor se encenderá y se pondrá en el lugar adecuado.  Los servos normalmente se usan para controlar movimientos angulares de entre 0° a 180 °.
En este proyecto de servomotor Arduino el servo a utilizar es un mini de la marca TowerPro modelo SG90, sin embargo, funciona para otros servomotores.

Pines en los servomotores

  • positiva: Recibe la corriente que alimentará al motor.
  • negativa: referencia a la tierra del motor.
  • entrada de señal: recibe la señal para controlar al servomotor.

Los colores de los pines en los servomotores, o del cable de cada terminal varía con cada fabricante: el cable de la terminal positiva siempre es rojo; el de la terminal negativa puede ser marrón o negro; y el de la terminal de entrada de señal  suele ser de color blanco, naranja o amarillo. En este ejemplo de servomotor, las terminales son marron, rojo y amarillo.
Los servomotores funcionan por control PWM (modulación por ancho de pulso). Entonces este sistema consiste en generar una onda cuadrada en la que se varía el tiempo que el pulso está en nivel alto. Esto es para modificar la posición del servo según se desee. Por mucho que se desee es posible que tu servomotor tenga una desviación en el control PWM por lo que siempre tienes que calibrar tus servomotores con un programa de prueba.

Control del servomotor en Arduino

Para controlar al los servomotor en Arduino, se les envían pulsos cada 20 ms es decir cada 50Hz. La anchura del pulso en nivel alto es lo que codifica el ángulo de giro, está anchura varía según el servo pero normalmente va entre 1 y 2 ms. De forma que si se quiere que el servo se posicione en un ángulo de 0° se envía una señal de 1 ms y por los 19 ms restantes no se envía nada para que se haga el total de los 20 ms. Del mismo modo si se quiere que el servo se ponga en una posición de 180° entonces se manda una señal de 2 ms y 18 ms no se envía nada, como se ve en la siguiente imagen.
Es especialmente relevante si vas a usar varios servomotores realizar un programa para identificar que valor de PWM corresponde físicamente a 0° a 90° y a 180°. Al final te explicamos como calibrar varios servos en este tutorial de servomotor Arduino.

pwm servomotor en arduino

PWM para el servomotor.

Diagrama de conexión de servomotor en Arduino

Finalmente conecta los componentes para este ejemplo de servomotor en Arduino. Ten en cuenta que el joystick , te indica en sus pines la conexión con GND. Para la corriente y la señal de salida, esta señal la puedes conectar en cualquiera de los dos ejes el «Y» o el «X». En consecuencia el eje que conectes sera el de control para el joystic.

Sevomotor control

Servomotor conectado con Arduino UNO y con joystick de control

Calibración de servomotor en Arduino

Realiza un programa que con un potenciómetro controles el PWM. Toma tu servo y con un transportador marca 0°, 90° y 180°. Escribe para cada cuaderno el valor de esos 3 grados en el valor introducido al PWM. Define para cada servomotor un valor de máximo y mínimo. Corrobora que la mitad corresponda a 90°. Determina un coeficiente de multiplicación basado en la ecuación de la recta para cada servomotor. y=mx+b.

Código de un servomotor en Arduino:

Escríbenos tus dudas o comentarios

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Usamos Cookies en nuestro sitio WEB

Por favor confirma, si aceptas nuestras cookies de rastreo. También puedes negar el uso de cookies de rastreo y seguir navegando sin que ninguna información sea enviada a servicios de terceros.