En línea

Tenemos 10 invitados conectado

Redes Sociales

feedfacebookyoutube

picasa

You are here: Home Tutoriales Arduino Arduino avanzado T00AA - Control de un servomotor con PWM
Arduino avanzado T00AA - Control de un servomotor con PWM PDF Imprimir E-mail
Lunes, 19 de Diciembre de 2011 00:00

Servo_Arduino_bb

 

Este tutorial tiene la finalidad de explicar el funcionamiento de un servomotor con la tarjetas Arduino; Lo primero que debemos conocer es que es un Servomotor; Un servomotor es un actuador  electromecánico que nos permite hacer aplicaciones de precisión, por ejemplo en el campo de la  robótica y el aeromodelismo, ya que podemos controlar la posición de los objetos que estén articulados a el.

La primera imagen que ves a la izquierda corresponde al montaje del primer ejemplo y la segunda correspode al segundo montaje, que debes realizar en tu placa Arduino, sobre la conexión de los componentes a esta se ha desarrollado el presente tutorial. El programa en el que se ha desarrollado este montaje se llama Fritzing y es muy interesante.

 

¿Cómo controlar un servomotor con Arduino?

En el arduino podemos generar una variable entera que podemos cargarla a una función que hace las señales cuadradas ahorandonos mucho tiempo, dicha señal debe tener valores de 0 a 255 ya que la resolución de la salida del microcontrolador es de 8bits. Además arduino tiene una librería de Servomotores que reconoce grados! entonces lo único que debemos hacer es cargar la función con grados de 0 a 179.

Servo2_Arduino_bb

Adquiere los componentes para este proyecto en:

tdr negro


En este Tutorial comprendemos el mejor contenido educativo

 

Tabla_Servomotores


Aquí tienes el video donde encuentras todo lo necesario para conocer más acerca de Arduino. Recuerda que este video ha sido desarollado en HD (Alta definición 720p) para que no pierdas ningún detalle.

 

 

Nota : El contenido desarollado para estos tutoriales aplica para todas las placas Arduino, se ha tomado a la placa Arduino Uno como referencia y no quiere decir que solo con esta se pueda llevar a cabo el desarollo de este magnifico curso.

A continuación encuentras el programa desarrollado, totalmente documentado para que puedas entender toda la sintaxis y te queda comotarea probarlo y modificarlo. Lo puedes copiar y pegar en tu software de Arduino:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*
/* -------------------------------------- CONTROL DE SERVOMOTOR EJEMPLO1 -------------------------------------- Este tutorial consiste en controlar un servomotor con señales de PWM. especificamente vamos a configurar una secuecia para mostrar la configuracion y puesta en marcha del servomotor. Cosas de Mecatrónica y Tienda de Robótica */ //-------------------------------------------------- //Declara puertos de entradas y salidas y variables //-------------------------------------------------- #include //Libreria Servo Servo myservo; //crea un objeto servo en la libreria Servo.h //------------------------------------ //Funcion principal //------------------------------------ void setup() //Se ejecuta cada vez que el Arduino se inicia { myservo.attach(9); //agisnamos el servo en el pin 9 } //------------------------------------ //Funcion ciclicla //------------------------------------ void loop() //Esta funcion se mantiene ejecutando { //cuando este energizado el Arduino myservo.write(0); //Cargamos la funcion con el valor en grados de 0 a 179º delay(1000); //Retardo entre coordenadas myservo.write(90); //Cargamos la funcion con el valor en grados de 0 a 179º delay(1000); //Retardo entre coordenadas myservo.write(179); //Cargamos la funcion con el valor en grados de 0 a 179º delay(1000); //Retardo entre coordenadas myservo.write(90); //Cargamos la funcion con el valor en grados de 0 a 179º delay(1000); //Retardo entre coordenadas } //Fin programa EJEMLO1

/*
 -------------------------------------- 
  CONTROL DE SERVOMOTOR EJEMPLO2
 --------------------------------------
 
  Este tutorial consiste en asignarle valores de 
  posicion al servomotor por medio de un potenciometro
  el cual nos funciona como referencia.
  
 Cosas de Mecatrónica y Tienda de Robótica
 
*/
 
//--------------------------------------------------
//Declara puertos de entradas y salidas y variables
//--------------------------------------------------
#include     // Libreria Servo
Servo myservo;        // crea un objeto servo en la libreria Servo.h
int potpin = 0;       // pin analogo de conexion del potenciometro
int val;              // Variable para guardar los datos  del potenciometro

//------------------------------------
//Funcion principal
//------------------------------------
void setup()          // Se ejecuta cada vez que el Arduino se inicia
{
  myservo.attach(9);  // agisnamos el servo en el pin 9 
}
 
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop()                          // Esta funcion se mantiene ejecutando
{                                    //  cuando este energizado el Arduino
  val = analogRead(potpin);          // leemos el valor de la entrada analoga
  val = map(val, 0, 1023, 0, 179);   //  Escalamos EL VALOR DE 0 A 179º
  myservo.write(val);                // Cargamos el valor en la funcion Servo
  delay(15);                         // Retardo entre coordenadas
  
}
 
//Fin programa EJEMPLO2

 

El funcionamiento del servomotor es muy interesante ya que es una integración! de varias ingenierias, mecánica, electrónica y control, el servomotor esta limitado por grados o cantidad de vueltas porque tiene un sensor que le permite conocer la ubicación real del eje, este normalmente  es un potenciométro; Este sensor va conectado a un controlador el cual cumple la función de comparar la posición que queremos con la esta actual esto se denomina (control en lazo cerrado).

La posición que le pedimos al motor se debe expresar en señales cuadradas o de PWM (pulse-width-modulation). Estas señales cuadradas nos dan el ciclo útil que es el porcentaje en que la señal esta en 1 lógico dependiendo del ciclo útil si dura mas en 1 que en 0 el eje da más grados.

Esa es la teoría del funcionamiento, el servomotor además tiene una caja reductora que nos permite mover objetos pesados, desde que las especificaciones técnicas lo permitan.Hay servomotores de muchos tamaños aunque el funcionamiento siempre es el mismo.


Agradecemos nos retribuyas el esfuerzo del Equipo de Cosas de Mecatrónica y la Tienda de Robótica con un comentario, recuerda que estos son muy valiosos para el pleno aprendizaje de toda la comunidad


De seguro quedaste con ganas de ver más Tutoriales de Arduino, visita nuestra extensa lista y elige

Laughing

Comentarios
Buscar
¡Sólo los usuarios registrados pueden escribir comentarios!

!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved."

Última actualización el Martes, 20 de Diciembre de 2011 08:28
 
Joomla! Template by Red Evolution - Joomla Web Design