Documentos de Académico
Documentos de Profesional
Documentos de Cultura
www.olimex.cl
info@olimex.cl
cursos.olimex.cl
CONTENIDO
CONTENIDO ......................................................................................................................................... 3
INTRODUCCIÓN ................................................................................................................................... 4
MATERIALES NECESARIOS ................................................................................................................... 4
ENSAMBLANDO LA TARJETA EASY DRIVER A UN PROTOBOARD ........................................................ 4
CONEXION DE EASY DRIVER ................................................................................................................ 7
PROGRAMACION DE ARDUINO ........................................................................................................... 9
INTRODUCCIÓN
Los motores paso a paso o también conocidos como “stepper motor”, pueden girar y pararse con
una precisión del orden de centésimas de milímetro. Esta alta precisión y su fiabilidad los destina a
ser utilizados en una gran cantidad de aparatos electrónicos como por ejemplo, discos, impresoras,
fotocopiadoras, robots, impresoras 3D, maquinas CNC, etc.
Un motor paso a paso es un tipo de motor que permite controlar la posición de su eje mediante la
excitación las bobinas internas adecuadas que posee el motor. En nuestro caso usaremos un
controlador de motores paso a paso llamado “Easy Driver” junto a una tarjeta de control PICARO
Arduino compatible que ejecute la mayoría del trabajo para nosotros.
MATERIALES NECESARIOS
En el transcurso de este manual de usuario, necesitaras de distintos tipos de materiales,
herramientas, tarjetas y componentes electrónicos dentro de los cuales recomendamos los
siguientes:
Para realizar esta etapa del manual necesitaras los siguientes materiales:
Soldadura [MCI-EDS-00535]
Protoboard [MCI-PRT-00170]
Pin Header 40 pines [MCI-PRT-00177]
Nota: Se destaca que la temperatura que alcanza el cautín es mayor a 370°C, por lo tanto toma
las precauciones adecuadas. Si eres menor de edad, pide la ayuda de un adulto.
Lo primero que aremos será tomar la tira de pin Headers y la separaremos en 5 sectores de 2 pines
y 1 sector de 3 pines.
Estos pin Headers los colocaremos sobre nuestro protoboard, como muestra la siguiente imagen:
Sobre los pin Headers colocados sobre nuestro protoboard instalaremos nuestra tarjeta Easy
driver y la acomodaremos para que quede lo más asentada posible. La siguiente imagen muestra
como deberá verse nuestra tarjeta:
Posteriormente soldaremos con nuestro cautín los pin heades en la tarjeta Easy Driver. Si esta es
la primera vez que realizas una soldadura te recomendamos que primero practiques con alguna
otra tarjeta en desuso, para que tomes impulso y experiencia en este tema.
La siguiente imagen muestra los pin Headers soldados a la tarjeta controladora de motores paso a
paso:
En la imagen anterior también se muestra que se han soldado 4 pin Header en la sección “Motor”
de la tarjeta Easy Driver. Esta parte es literalmente tu decisión, ya que puedes soldar directamente
los pines de tu motor paso a paso a esta tarjeta, pero antes, debes de conocer como es la
distribución de cables entre motor y tarjeta Easy Driver. Esta distribución se discutirá en siguiente
tema.
A continuación se muestran 2 esquemas de conexionado, uno de ellos para un motor paso a paso
de 4 pines y otro para un motor paso a paso de 6 pines (modelo 17HS4002) :
Si los colores de los cables de tu motor paso a paso no los mismos que los de las imágenes
anteriores (Verde, Rojo, Azul y Amarillo), te invitamos a leer nuestro tutorial de motores paso a
paso que dejaremos en este link de aquí.
Arduino se utilizara con el fin de dar una orden de movimiento del motor paso a paso. Esta orden
se realiza mediante el envío de pulsos y por cada uno de estos pulsos el motor girara 1.8°. Estas
señales pueden provenir desde un computador, un microcontrolador (tarjeta Arduino) o un
circuito cualquiera que entregue 2 estados, 0 volts y 5 volts. Según sean estos pulsos se realizara
un giro del motor con una velocidad y sentido de giro específico.
Nuestra tarjeta Easy Driver realizara el control tanto de corriente como de voltaje para nuestro
motor, junto con los datos necesarios para interpretar lo que la tarjeta PICARO Arduino esta
ordenando realizar y poder realizarlo en el estándar que el motor paso a paso lo requiera. Además
la tarjeta Easy Driver posee un potenciómetro para controlar la corriente que se dejara circular por
el motor paso a paso. Si tu motor no gira correctamente, mueve este potenciómetro para
entregarle una corriente adecuada y que de esta manera posea la fuerza necesaria para tu
proyecto.
Si los colores de los cables de tu motor paso a paso no los mismos que los de la imagen anterior
(Verde, Rojo, Azul y Amarillo), te invitamos a leer nuestro tutorial de motores paso a paso que
dejaremos en este link de aquí.
PROGRAMACION DE ARDUINO
El siguiente código de Arduino no requiere de librerías externas. Lo puedes seleccionar, copiar y
pegar en tu ventada de Arduino IDE y cargarlo en tu tarjeta PICARO Arduino compatible.
Este código posee 2 funciones principales, pero en una de ellas tu puedes mencionar el número y
los grados que quieres rotar tu motor y otra que menciona el número de micro pasos (8 por paso)
por vuelta.
Las velocidades que se soportan en este código pueden ir desde los 0,01 hasta 1 (0 a 100%). Entre
menos velocidad se entregue al motor, más fuerza adquirirá, pero si al contrario, se entrega mayor
velocidad se reducirá un poco su fuerza de giro
#define DIR_PIN 2
#define STEP_PIN 3
void setup() {
pinMode(DIR_PIN, OUTPUT);
pinMode(STEP_PIN, OUTPUT);
}
rotateDeg(360, 1);
delay(1000);
rotateDeg(-360, .1); //reversa
delay(1000);
rotate(1600, .5);
delay(1000);
rotate(-1600, .25); //reversa
delay(1000);
}
steps = abs(steps);
digitalWrite(DIR_PIN,dir);
float usDelay = (1/speed) * 70;
for(int i=0; i < steps; i++){
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(usDelay);
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(usDelay);
}
}
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(usDelay);
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(usDelay);
}
}