Tutorial: Control de servomotores con Arduino

Publicado por en Tutoriales el 26/09/2010
Comentarios: 0

Hola de nuevo a todos los Brico-Fans de BricoGeek.com!

Hoy os traigo un tutorial, sobre el funcionamiento de los servomotores y control de estos sobre arduino.

Todo de una manera sencilla y gráfica para simplificar todo el proceso, siendo sin duda un buen ejemplo para iniciarse en el uso de Arduino + Servomotores.

No me ha sido posible grabar ningun video para este tutorial, pues aun no dispongo de un medio de grabación de calidad, pero pronto tendré uno, y grabaré todo el proceso + pruebas de funcionamiento.

De momento os dejo este tutorial.

Todo esto, aqui en BricoGeek.com!

Antes de nada, mencionaré los elementos necesarios para completar este tutorial, todos disponibles en la tienda:

-Arduino Duemilanove o Arduino Mega (El que se usará en este tutorial)

-Servomotor/es (En este caso he usado un servomotor miniaturizado, por su reducido consumo de energia, apto para arduino)

-Cables M/M para conexión facil, fiable y flexible entre Arduino, ProtoBoard y Servo, aunque recomiendo cojer el pack de 100, por un precio asequible y no tener que andar estirando nunca mas (Pack de 100 cables premium M/M)

-Placa de protipado (Si no se dispone ya de una)

Si tenemos todo esto, es el momento de empezar a montar...

Pero antes un poco de teoria sobre servomotores.

La interfaz de conexión del servomotor consta normalmente de 3 cables o conductores, generalmente de 3 colores distintos,a saber:

-Rojo

-Marrón o Negro

-Azul, Amarillo u otros

Donde por norma general el cable Rojo es el positivo o fase, el Marrón o Negro es el tierra o masa, y el restante de varios posibles colores es el señal, que nos permitirá controlar el servomotor con precisión.

Normalmente el señal de controla con PWM, osea pulsos de ancho modular, con los que podemos mover con precisión el servomotor a cualquier punto de su radio de ación.

Y como podemos provocar dichos pulsos?

Pues muy sencillo usando uno de los pines marcados como PWM en arduino.

Vamos pués a conectar nuestro servo con arduino:

Tal como se observa en el gráfico, se conecta el servo al positivo que nos da arduino, y al GND tmabién proporcionado por nuestro arduino, y por ultimo conectamos el señal (amarillo) al pin numero 2, marcado como PWM.

Si mas o menos te has enterado de lo explicado ya estarás deduciendo como va a funcionar :)

Ahora vamos crear un codigo que nos permita mover el servomotor, asi que atentos:

 

#include <Servo.h>
 
Servo servo1;  // Crea un Objeto servo
int posicion;    // Variable de la posicion del servo
 
void setup()
{
  servo1.attach(2);  // Selecionamos el pin 2 como el pin de control para els ervo
}
 
void loop()
{

  posicion = 150;            // Establecemos el valor de la posicion a 150º
  posicion = map(posicion, 0, 1023, 0, 179);     // Establecemos la relacion entre los grados de giro y el PWM
  /* Con el mapa de valores anterior establecemos una relacin proporcional */
  /* entre el pulso minimo 0 con el grado minimo, 0 tambien y el pulso maximo*/
  /* 1023 con el grado maximo, 179*/
  servo1.write(posicion);                  // Escribimos la posicion con el mapa de valores al servo
  delay(150);                           // Y le damos un tiempo para que sea capaz de moverse
}

 

Como veis, no es especialmente dificil, solo hace falta tener las cosas claras.

Conectamos nuestro arduino al usb del pc, cargamos este programa con las conexiones especificadas anteriormente y moveremos nuestro servo a la posicion 150º

Espero que lo disfruteis, y ya sabeis, criticas, sugerencias o pedidos de tutoriales, son bienvenido.

Si te ha gustado, compártelo con tus amigos!
Google Plus 

Ver comentarios antiguos...