Para un proyecto que tengo entre manos, construir un arpa láser, quiero explorar el funcionamiento de los motores paso a paso (steppers) con Arduino. Tengo varios motores y también varios controladores, por lo que haré diversas pruebas con todos ellos.
Esta entrada es más bien una recopilación de datos, enlaces y apuntes míos, pocas explicaciones por el momento, me temo.
Busco conseguir la máxima velocidad del motor, sin requerir un gran par, simplemente para mover un espejo que está pegado a su eje y que he de poder girar a diversas posiciones muy rápido. Al apuntar un láser al espejo, y encenderlo y apagarlo de forma sincronizada con los cambios de posición del motor, quiero conseguir la ilusión de tener varios haces de laser, por persistencia de la visión.
Para hacer funcionar un stepper no basta con enchufarles una corriente continua y listo. Constan de una serie de bobinas que hay que ir accionando consecutivamente para conseguir el movimiento del motor, paso a paso. Además, accionando a la vez varias de las bobinas en secuencias determinadas podemos conseguir micropasos. Para realizar esto empleamos controladores (drivers) que se encargan de todo el proceso.
Motores
Tengo los siguientes motores:
28BYJ-48
Ya he escrito sobre el uso de este motorcito en esta entrada. Es el motor que viene en todos los kits de Arduino. Se suele controlar con el ULN2003. Compré uno junto con su controlador aquí, por poco más de 2€.
GZGW09
Comprado aquí.
Características:
- Step angle: 1.8 degree
- Rated voltage: DC 4.83V
- Rated current: 0.84A
- Phase impedance: 5.75 Ohm + / – 10 degree centigrade
- Phase inductance: 9.3 mH + / – 20 degree centigrade (1kHz 1V RMA)
- Holding torque: 0.48Nm Min
- Shaft diameter: 5mm / 0.188 (3/16)
- Shaft length: 20mm
- Motor height: 34mm
- Number of lead wire: 4 wires
- Driven X-axis and Y-axis movement, sprinkler wire wheel to scroll
- Great for DIY project
- Dimensions: 5.8 cm x 4.2 cm x 4.2 cm
- Weight: 220 g
Motor NEMA 17 JK42HS40-1704 13A
Comprado aquí por 12.50 €.
Características:
- Número de parte: JK42HS40-1704 13A
- Tamaño de marco: NEMA17
- Ángulo del paso: 1,8 grados
- Voltaje: 3.4V
- Corriente: 1,7 A/phase
- Resistencia: 2,0 ohmios/fase
- Inductancia: 3,0 mH/phase
- Llevar a cabo el esfuerzo de torsión: 4000g-cm 58.30 OZ-IN
- Inercia del rotor: 54 g-cm2
- Esfuerzo de torsión de la muesca: 0,22 kilogramo-cm
- Número de ventajas de alambre: 4
- Peso: 0,24 kilogramos
- Longitud: 40m m
- Eje del motor: 5mm
- Longitud del árbol delantero: 20 mm
- Certificación: CE, ROHS, ISO9001
MITSUMI M35SP-9
Lo saqué de una vieja impresora. Venía con etiqueta, así que puede investigar el modelo y características, ahorrándome mucho trabajo. Es un MITSUMI M35SP-9, y por lo visto es (era) muy típico en impresoras, escáneres, faxes, etc. Es un motor paso a paso (stepper) unipolar.
La ficha puede consultarse aquí, de donde he sacado las siguientes tablas y figuras:
Y aquí hay un vídeo italiano empleando el motor con Arduino UNO y un controlador ULN2003A:
Motor de Adafruit
El motor que finalmente empleé fue este de Adafruit, comprado aquí.
Drivers
Y tengo los siguientes controladores:
ULN2003
Muy simplón.
L2930
A4988
En esta entrada explico cómo usar un motor con este controlador.
DRV8825
Es una versión mejorada del driver A4988.
Características principales:
- Para motores bipolares
- Permite microstepping de hasta 1/32
- 1.5 por fase o 2.2A si se dispone de ventilación forzada de aire o disipadores
- Interfaz casi idéntica al A4988
- 45 V máximo
- Control de corriente máxima con un potenciómetro
Puede consultarse sus características e información adicional en la página de Pololu.
En esta entrada explico cómo utilizarlo con Arduino, y en esa otra con una Raspberry Pi.
Esta página compara y explica en mucho detalle los drivers DRV8825 y el A4988, muy recomendable.
Para controlar los motores con este driver, se puede emplear la librería StepperDriver.
http://www.hobbytronics.co.uk/drv8825-stepper-motor-driver
Uno de los motores que voy a emplear con este driver tiene una corriente de 1.7 A por fase, por lo que le colocaré un disipador al driver.
Ajustar la corriente:
A3967 Easydriver
El que yo compré es la versión v4.4 (aunque hay una versión más reciente, la 4.5). Sirve para controlar motores bipolares, y permite micropasos hasta 1/16.
Se puede consultar las especificaciones técnicas del chip A3967 aquí, y del propio modulo EasyDriver aquí.
Lo compré aquí, por poco más de 4€.
- The EasyDriver is a simple to use stepper motor driver,
compatible with anything that can output a digital 0 to 5V pulse (or 0 to 3.3V pulse if you solder SJ2 closed on the EasyDriver) - EasyDriver requires a 7V to 30V supply to power the motor and can power any voltage of stepper motor.
- The EasyDriver has an on board voltage regulator for the digital interface that can be set to 5V or 3.3V.
- Connect a 4-wire stepper motor and a micro controller and got precision motor control!
- EasyDriver drives bi-polar motors, and motors wired as bi-polar. I.e. 4,6, or 8 wire stepper motors.
- MS1 and MS2 pins broken out to change micro stepping resolution to full, half, quarter and eighth steps (defaults to eighth)
- Compatible with 4, 6, and 8 wire stepper motors of any voltage
- Adjustable current control from 150mA/phase to 750mA/phase
- Power supply range from 7V to 30V. The higher the voltage, the higher the torque at high speeds
- Board size: 47 x 20mm
- Pin header size: 51 x11mm
- Net weight: 7g
Ejemplos de uso:
https://www.sparkfun.com/tutorials/400
Con el motor GZGW09, la conexión al EasyDriver es:
- A1: rojo (morado)
- A2: gris (gris)
- B1: amarillo (blanco)
- B2: verde (negro)
Con el motor de Adafruit 200 pasos 12 V 350mA, la conexión al EasyDriver es:
- A1: rojo
- A2: amarillo
- B1: verde
- B2: gris
Motor JK42HS40-1704, la conexión al EasyDriver es:
- A1: azul (azul)
- A2: rojo (morado)
- B1: verde (verde)
- B2: negro (gris)
Referencias
About Steppers on Adafruit Learn
Stepper motor page on RepRap wiki
http://www.orientalmotor.com/technology/articles/stepper-motor-basics.html
https://www.sparkfun.com/tutorials/400
http://bildr.org/2011/06/easydriver/
http://www.instructables.com/id/Stepper-Motor-Easy-Driver/?ALLSTEPS
http://www.instructables.com/id/Drive-a-Stepper-Motor-with-an-Arduino-and-a-A4988-/
Pingback: Diseño y construcción de un arpa láser | Carlini's Blog
Pingback: Manejar un motor stepper con un driver DRV8825 y Arduino | Carlini's Blog