Controlar un motor paso a paso (stepper) 28BYJ-48 con Arduino

Voy a jugar con un motor paso a paso (stepper motor) con Arduino.
Para saber lo que es un motor paso a paso y cómo funcionan puedes consultar aquí o aquí.

Para manejar el motor con Arduino emplearemos el controlador ULN2003 (el mío en concreto es ULN2003AN). Es muy frecuente encontrar este controlador como parte de un módulo «didáctico» que viene con unos leds que indican qué bobina está funcionando en cada momento.

Motor paso a paso (stepper) 28BYJ-48

Motor paso a paso (stepper) 28BYJ-48

Motor paso a paso (stepper) 28BYJ-48

Motor paso a paso (stepper) 28BYJ-48

El motor tiene dos «modos» de funcionamiento: de paso completo (full-step mode) y de medio paso (half-step mode).

Controlador ULN2003 (suelto, y como parte de un módulo habitual)

Controlador ULN2003 (suelto, y como parte de un módulo habitual)

 

IMG_1375

Tanto el motor como este controlador suelen venir en casi cualquier kit de aprendizaje de Arduino.

El stepper que yo tengo es un 28BYJ-48. Funciona a 5V DC y es muy barato (en torno a 2€).

El esquema de conexión es el siguiente:

700px-Stepper_schematic

Wiring

Conectado quedaría así:

IMG_1369

 

O si empleamos el módulo sería de la siguiente forma:

IMG_1372

Que podemos ahorrarnos los cables si conectamos el módulo directamente a los pines 8, 9 10 y 11 del Arduino, como se muestra en las dos siguientes figuras:

IMG_1370IMG_1371

 

Lo ideal es alimentar el motor desde una fuente externa y no desde la placa de Arduino, ya que en teoría se necesita más corriente de la que Arduino puede proporcionar.

Código

En el IDE de Arduino vienen varios ejemplos que hacen uso del stepper.

 

 

Referencias

Arduino Stepper Motor Control