Guia MCI Servo motor con Arduino
Revisión Diciembre 2009
Desarrollada por:
Christopher Thompson
cthompson@olimex.cl
Revisada por:
Paul Aguayo
paguayo@olimex.cl
Guía servo motor Arduino
2
1 Introducción
Arduino es una plataforma de código abierto, basada en una sencilla placa con entradas y salidas
analógicas y digitales. Posee un entorno de desarrollo basado en el lenguajeProcessing/Wiring.
Puede recibir señales de una variedad de sensores y afectar su entorno controlando luces, motores
o actuadores, ya sea trabajando de manera autónoma o a través de un programa corriendo en un
computador (por ejemplo, Macromedia Flash, Processing, Max/MSP, Pure Data, SuperCollider). Se
compone de un micro controlador Atmel AVR que viene pre-programado con una secuencia de
arranque (BootLoader), por lo que no necesita un programador externo.
En esta guía daremos un ejemplo fácil de cómo conectar y controlar un Motor servo estándar de
360º y de 180º. Controlándolo a través de una entrada analógica, en este caso un potenciómetro.
Un motor servo es un dispositivo actuador que tiene la capacidad de ubicarse en cualquier posición
dentro de su rango de operación, y de mantenerse estableen dicha posición. Está formado por
un motor de corriente continua, una caja reductora y un circuito de control, y su margen de
funcionamiento generalmente es de menos de una vuelta completa.
El punto de referencia o setpoint — que es el valor de posición deseada para el motor— se indica
mediante una señal de control cuadrada. El ancho de pulso de la señal indica el ángulo de
posición: una señalcon pulsos más anchos (es decir, de mayor duración) ubicará al motor en un
ángulo mayor, y viceversa. En el caso del motor servo 360º el cambio del ancho del pulso reducirá
la velocidad o cambiara el sentido de dirección de este.
La tarjeta Arduino Duemilanove posee 6 salidas de PWM, Pulse-Width Modulation en ingles y
Modulación de Ancho de Pulso en español, las cuales utilizaremos para controlarlos motores.
2 Componentes a utilizar.
•
•
•
•
•
•
Duemilanove ATMega328
Servo motor estandar DYS3003 (180º)
Servo Motor estandar DYS0209 (360º)
Resistencia variable 10k
Fuente de 5v DC 1000mA
Proto Board
Ingeniería MCI Ltda. – Luis Thayer Ojeda 0115 of 402, Providencia, Santiago, Chile
www.olimex.cl Fono: + 56 2 3339579 Fax: +56 2 3350589
Guía servo motor Arduino
3
3 Esquema conexión3.1.1 Conexiones
•
•
•
•
Conectamos la tarjeta Arduino al USB del PC o bien a una fuente de 9V.
Conectamos el Servo Motor a una fuente de 5V externa. No se debe conectar el servo
motor a la salida de 5V de la tarjeta Arduino debido a alto consumo. Los pines de salida de
Arduino pueden entregar hasta 40 mA, sin embargo, los motores pueden tener peaks de
alrededor de 700mA.
Conectamos el cable deseñal del servo motor a una de las salidas PWM de la tarjeta
Arduino. En este ejemplo utilizaremos la salida 3 PWM del Arduino, el cable de señal del
motor servo es el naranjo.
Conectamos el potenciómetro (resistencia variable) a una fuente de 5v y una de las
entradas analógicas de la tarjeta Arduino (en este caso ocupamos la número Analog IN 2)
Ingeniería MCI Ltda. – Luis Thayer Ojeda 0115 of 402,Providencia, Santiago, Chile
www.olimex.cl Fono: + 56 2 3339579 Fax: +56 2 3350589
Guía servo motor Arduino
4
GND
Salida PWM (3)
señal servo
GND
Entrada Analoga (2)
VIN
SEÑAL
VCC 5V
GND
GND
VCC 5V
SEÑAL
Cuadro de conexión:
LUGAR DE CONEXIÓN
ARDUINO
VIN
GND
SERVO MOTOR
CABLE ROJO CABLE CAFÉ
ANALOG IN 2
PWM 3
-
SEÑAL SERVO
POTENCIOMETRO PIN 1
PIN3
PIN2
-
FUENTE 5V
GND
--
5v +
Ingeniería MCI Ltda. – Luis Thayer Ojeda 0115 of 402, Providencia, Santiago, Chile
www.olimex.cl Fono: + 56 2 3339579 Fax: +56 2 3350589
Guía servo motor Arduino
5
La conexión del servo motor puede variar según el fabricante, a continuación algunas
configuraciones para marcas conocidas.
Fabricante
Voltaje positivo
Tierra
Señal de control
Futaba
Rojo
Negro
Blanco
Dong Yang...
Regístrate para leer el documento completo.