Se va a usar Arduino para controlar un motor paso a paso. Un motor paso a paso es un tipo de motor que permite controlar la posición de su eje. Excitando las bobinas adecuadas se mueve el eje a la posición deseada. En este caso se usará un controlador de motores paso a paso para que haga la mayoría del trabajo. Este es el material que se necesita para el tutorial.
Un motor paso a paso, en este caso se va a usar un motor paso a paso bipolar, con ángulo de paso 1.8º es decir 200 pasos por vuelta. Además la tensión de alimentación es de 12V y tiene un consumo aproximado de 0.33A. Y quizás el dato más importante a la hora de comprar un motor, un torque de 2.4 Kg/cm.
Se usará el Arduino Uno aunque cualquiera que trabaje a 5V funciona, como el Mega. Para hacerlo funcionar solo se necesitan dos pines disponibles.
Con este controlador es posible mover el motor paso a paso desde el Arduino. Simplemente se deben conectar dos pines del Arduino a los pines DIR y STEP, además de los pines del motor.
Además de los componentes anteriores también es necesario algún tipo de fuente que proporcione 12V y se recomienda al menos 1A.
Para empezar se hace el conexionado de los componentes. Primero con el motor. Según el datasheet del motor:
El siguiente código de colores se utiliza:
Las conexiones del motor van a los pines del easy driver que pone MOTOR. Y los pines 12 y 11 del Arduino a los de DIR y STEP. Además, en el conector PWR IN, se conecta GND a la masa y M+ a 12V (en caso de que el motor sea de 12V) de la fuente de alimentación. En la siguiente imagen se puede ver:
Para poder controlar el motor con el pin DIR se indica una dirección u otra, y cada pulso que se envíe a STEP hará que el motor avance un paso en la dirección indicada. En el ejemplo, el motor da una vuelta (200 pasos) y luego vuelve a su posición inicial cambiando el sentido. Una vez ejecutado el programa se para y el motor queda en espera. Es importante no desconectar el driver si el motor está en movimiento, ya que podría dañarse.
Con los pines MS1 y MS2 se selecciona la resolución del paso. En este caso no se ha conectado nada y, debido a las pull-up, se obtiene un micropaso de 1/8. Una vuelta completa serían 200*8 = 1600 pasos. En el ejemplo se usan 2000, por lo que es un poco más de una vuelta.
Además, con el potenciómetro marcado como CUR se selecciona el límite de corriente. En las versiones anteriores a la v4.4 las letras del silk están al revés y donde pone MAX es mínimo. Según el datasheet, con el potenciómetro al máximo, la corriente que podría pasar como tope es 750 mA por bobina. En esta web se puede ver la información del fabricante de la placa.
Aquí se puede ver su funcionamiento.
Como ejemplo de uno de los posibles usos de un motor paso a paso, se muestra otro caso que hace girar el motor en un sentido u otro según el valor de un botón. Para ello, en el pin 10 se debe poner un botón a GND, o también se puede colocar un cablecito desde el pin 10 a GND, y al quitarlo, gracias a la pull-up, leerá el 1 lógico.
En este caso el motor hace girar un tubo de rosca conectado a una plataforma. Mediante el giro se desplaza linealmente la plataforma en un eje. En este ejemplo el paso está a 1/8 y además el delay en 200 microsegundos. Si se disminuye el delay y el paso se pone en full-step, va bastante más rápido.