Icono del sitio Home Assistant Fácil

Motor Paso a Paso 28BYJ-48 con Arduino junto al driver ULN2003 y el L298N

Si eres un aficionado a la electrónica o estás interesado en el mundo de la tecnología, debes saber que tarde o temprano necesitarás en tus proyectos realizar algún tipo de movimiento, y para ello nada mejor que un motor.

En un artículo anterior vimos los conceptos fundamentales de un Motor DC con Arduino, ahora continuamos con el stepper motor o motor paso a paso (PaP), su funcionamiento básico, sus características y la forma de controlarlo utilizando Arduino y los drivers ULN2003 y L298N.

Puedes ingresar a la segunda parte de este artículo, donde hablamos sobre los drivers A4988, DRV8825 y TMC2209.

El motor paso a paso es muy utilizado actualmente ya que podemos obtener con él un control de movimiento y un posicionamiento preciso, algo que no podemos lograr con un motor DC. Lo podemos encontrar en todo tipo de impresoras, máquinas CNC, escáneres, lentes de cámaras, equipos biométricos y un largo etcétera.

Así que, prepárate una buena taza de café y empecemos.

¿Qué es y para qué sirve un motor paso a paso?

Un motor paso a paso es un dispositivo electromecánico que convierte unos pulsos eléctricos en movimientos mecánicos discretos, es decir, que su eje gira por saltos o pasos cada vez que unos pulsos eléctricos se aplican en él correctamente. Cada paso es una rotación en un ángulo determinado por el fabricante del motor.

El motor paso a paso es un motor DC sin escobillas (brushless) y se utiliza cuando se necesitan giros lentos y de precisión. Estos beneficios no se pueden lograr con un motor DC convencional, debido a la inercia al momento de arrancar o parar y ese es un valor difícil de determinar ya que depende de muchas variables. Su torque o par motor, es mayor a baja velocidad y se decrementa a las velocidades altas.

En la imagen inferior observamos la forma física característica de un motor paso a paso.

Son muchas las aplicaciones que podemos dar a un motor paso a paso. Debido a que se puede colocar y alinear de forma muy precisa, es la solución ideal en cualquier proceso automatizado. Se utiliza en el posicionamiento de la unidad láser de Blu-Ray, impresoras de todo tipo, automóviles, robots, drones, equipos médicos y en maquinaria industrial, entre otros.

Como puedes ver, los usos del motor paso a paso van desde nuestro hogar hasta la industria aeroespacial.

En la imagen superior, observamos el motor paso a paso de la unidad de alimentación de filamento (feeder drive) en la extrusora de una impresora 3D.

¿Cómo funciona un motor paso a paso?

Al igual que un motor DC, un motor paso a paso consta de una parte fija llamada estator donde están colocadas las bobinas y una parte móvil llamada rotor que puede o no estar construido de un imán permanente. Aquí podemos encontrar una primera diferencia respecto a un motor DC común donde el estator es un imán permanente y el rotor tiene las bobinas.

Podemos observar en la imagen superior los múltiples polos, tanto en el estator como en el rotor.

Aunque parece que en el estator hay 8 bobinas diferentes, en realidad solo hay 2, divididas en varias bobinas pequeñas.

Para comprender el funcionamiento de un motor paso a paso, repasemos unos conceptos básicos.

Magnetismo

Algunos materiales naturales o sintéticos, tienen una propiedad llamada magnetismo. Esta característica les permite atraer o repeler a cierto tipo de materiales. Generalmente, llamamos a los materiales que poseen magnetismo, imanes.

Los imanes pueden tener diversas formas, pero notamos que en sus extremos, llamados polos, aparecen dos letras N (norte) y S (sur). Estos polos surgen de micro corrientes internas que dan lugar a líneas de campo magnético cerradas que salen del material y vuelven a entrar en él, por sus polos.

Ahora bien, una propiedad fundamental de la interacción entre los imanes es que los polos iguales se repelen o rechazan y los polos opuestos se atraen.

Electromagnetismo

Al estudio conjunto de los fenómenos eléctricos y magnéticos se le llama electromagnetismo. El motor eléctrico es uno de los muchos dispositivos que se basan en el principio electromagnético.

Ahora bien, los motores tienen en su interior bobinas o inductores, que son componentes eléctricos que debido al fenómeno de autoinducción, generan un flujo o campo electromagnético cuando se hace circular por ellas una corriente eléctrica.

Si observamos el campo electromagnético generado en una bobina cuando por ella circula corriente eléctrica, como se muestra en la imagen inferior, y lo comparamos con las líneas de campo magnético de un imán, notaremos una gran similitud. Se coloca un núcleo de material ferromagnético a la bobina para concentrar las líneas de campo electromagnético.

También vemos la generación de polos norte y sur. Podemos decir que una bobina mientras sea recorrida por una corriente eléctrica, se vuelve un imán, por eso se le suele llamar electroimán o solenoide (del griego «solen», que significa tubo).

Luego de este rápido repaso, volvamos al motor paso a paso y analicemos su funcionamiento básico, indicaremos acá el llamado de paso completo, también existe el medio paso y el micro paso, como veremos más adelante.

Una representación gráfica simplificada para nuestro motor sería como la que se muestra en la imagen inferior.

Tenemos la Bobina 1, con sus dos terminales llamados A y B, por otro lado, la Bobina 2 y sus terminales C y D. Observamos también el rotor, que en nuestro caso es un imán permanente con sus polos norte y sur.

Para hacer rotar el motor paso a paso 90° a la izquierda, coloquemos una tensión en la Bobina 1.

El campo electromagnético generado en la Bobina 1 atraerá al polo norte del rotor, haciéndolo girar 90°.

Ahora energicemos la bobina 2.

El campo electromagnético generado en la Bobina 2 atraerá al polo norte del rotor, haciéndolo girar otros 90°.

Ahora invirtamos la polarización de las bobinas como se muestra en la figura inferior; esto hará fluir su campo electromagnético en dirección contraria al anterior y ahora atraeremos al polo sur del rotor.

Finalizamos el giro completo de 360° alimentando a la Bobina 2, pero con la polaridad opuesta como se indica abajo.

Aunque la explicación está bastante simplificada, es suficiente para concluir que si ajustamos cuidadosamente la polarización de las bobinas podemos hacer girar el motor paso a paso en la dirección deseada y al variar la frecuencia de esos pulsos, lograremos el control de la velocidad del motor.

Seguro estarás pensando que con saltos de 90°, nuestro motor imaginario sería bastante torpe en su movimiento :) y tienes razón. La solución para lograr movimientos más suaves se logró de manera ingeniosa.

En la práctica, para suavizar el movimiento de nuestro motor imaginario, debemos dividir internamente las dos bobinas 1 y 2 como muestra la figura inferior y también hacer múltiples hendiduras o dientes tanto en el rotor como en el estator, logrando de esta forma micro polos magnéticos. Para mejorar su alineación magnética y por tanto su precisión, el rotor tiene más dientes que el estator y no todos los dientes del rotor y del estator se alinean al mismo tiempo.

En este ejemplo y para simplificar el funcionamiento del motor paso a paso, explicamos uno que da saltos de 90°; allí alimentamos solo una bobina (monofásico), pero generalmente se energizan las dos bobinas (bifásico) en forma adecuada, logrando así aumentar la velocidad y el torque, claro que con un mayor consumo de potencia.

Hacer girar un motor paso a paso no es tan simple como hacer girar un motor DC, se requiere un circuito de control que deberá ajustar las señales de avance de paso, sentido de giro y velocidad con la correcta secuencia de energización de las bobinas.

Pasos por revolución en un motor paso a paso

Según como se polaricen las bobinas de un motor paso a paso, podemos tener tres tipos de funcionamiento:

También llamado movimiento por ola (wave drive). Aquí se excita una bobina y luego la otra, se consigue un buen torque y consumo medio de potencia.

Sabemos que el círculo se divide en 360° y el eje de un motor paso a paso al hacer un giro completo, puede hacerlo en una determinada cantidad de pasos, que dependerán del fabricante del motor.

Para calcular el número de grados por cada giro completo del eje del motor paso a paso, usamos la siguiente fórmula:

Por ejemplo, el motor paso a paso NEMA 17, que es uno de los más utilizados, gira una revolución completa en 200 pasos y por tanto si dividimos 360°/200, resulta que cada paso del motor equivale a 1.8°.

Otro motor paso a paso muy utilizado es el 28BYJ-48, da 64 pasos por revolución, por tanto 360°/64 nos resulta 5.62° para cada paso del motor.

En ocasiones nos darán el número de grados y nos pedirán el número de pasos o saltos para realizar una vuelta completa.

Si nuestro motor paso a paso gira en saltos de 90° ¿cuál será el número de pasos en un giro completo del eje?

Es decir, el número pasos para dar un giro completo son 4.

Aquí se excitan dos bobinas simultáneamente, se consigue el máximo torque, pero también el mayor consumo de potencia.

En este caso el número de grados por paso se divide entre dos. Por ejemplo, un motor paso paso NEMA 17 gira una revolución completa en 200 pasos o 1.8° por paso, trabajando en modo paso completo, en funcionamiento de medio paso sería de 0.9° por paso o 400 pasos por giro.

Para lograr esto y como se muestra en la imagen superior se deben energizar las dos bobinas con las polaridades adecuadas para colocar el rotor en una posición intermedia por estar atraído por ambas bobinas.

En el caso que ya hemos estudiado de paso completo, eran 4 pasos por giro completo del motor, ahora serán 8. Como consecuencia, al duplicar la resolución angular, lograremos mayor torque y suavidad en el desplazamiento.

En este modo el ángulo de paso natural de un motor paso a paso puede ser dividido en ángulos mucho menores, generalmente entre 10 y 256.

Como ejemplo el motor paso a paso NEMA 17, que gira 1.8° por cada paso, con una división entre 10 se movería a 0.18° por paso, lo que equivale a 2000 pasos por revolución.

Para trabajar en modo micropaso, la corriente que se proporciona a las dos bobinas del motor paso a paso debe ser limitada y debe ser controlada en forma secuencial. Un método que se utiliza para lograrlo es mediante la técnica de modulación de ancho de pulso PWM (Pulse Width Modulation).

En el funcionamiento por micropasos se logra la mayor suavidad en el desplazamiento y la mayor resolución en los pasos del motor.

Ventajas y desventajas de un motor paso a paso

Ventajas:

Desventajas:

Tipos de motores paso a paso

Según su construcción, podemos decir que un motor paso a paso puede ser de tres tipos:

Según la configuración de sus bobinas podemos tener:

Para reconocer las bobinas del motor paso a paso unipolar se debe utilizar el multímetro y medir la resistencia de los devanados, se puede reconocer el punto común o derivación central ya que su resistencia será la mitad con respecto a los extremos de la bobina.

Al no tener derivación central las dos bobinas de un motor paso a paso bipolar, es fácil medir la resistencia eléctrica de las mismas con un multímetro. También se puede colocar un diodo emisor de luz (LED) y girar el eje del motor paso a paso, invirtiendo el LED de ser necesario, hasta lograr la iluminación del mismo.

Características a la hora de elegir un motor paso a paso

Las características más importantes para escoger un motor paso a paso para nuestros proyectos son:

Es la más importante ya que de este parámetro dependen todas las demás características del listado. Podemos encontrarlo en el chasis del motor.

Aquí se hace referencia a si es bipolar o unipolar.

Es la cantidad de cables que vemos salir del motor paso a paso.

Hace referencia al número de bobinas a las que podemos acceder, no necesariamente de forma independiente, ya que pueden tener derivaciones centrales independientes o las mismas estar unidas en las dos bobinas con una salida común.

Es la resistencia eléctrica de los bobinados y determina el consumo de corriente del motor. A menor resistencia, mayor corriente podrá circular.

La inductancia es una propiedad de las bobinas que nos indica cuánto se opone la bobina a los cambios de la corriente a través de ella. La unidad de medida es el Henrio o una fracción de él (mH).

Muestra el rango de tensiones posible que se puede aplicar al motor paso a paso; como siempre debemos respetar esos valores especificados por el fabricante.

Cuántos saltos o pasos debe dar el motor para que su eje realice un giro completo.

De los 360° del giro completo, cuántos grados gira el eje del motor paso a paso en cada paso.

Este dato nos indica las revoluciones o vueltas por minuto (rpm) que da el eje del motor paso a paso.

Algunos motores paso a paso poseen caja reductora, así disminuye su velocidad y aumenta su torque; el factor de reducción nos indica cuántas vueltas debe girar el motor paso a paso para que podamos ver un giro completo en el eje exterior de la caja reductora.

Se mide en Amperios o en mA y nos indica el consumo de corriente de cada bobina del motor paso a paso.

Al ser el motor paso a paso un dispositivo mecánico debe vencer ciertas inercias y por tanto se debe tener en cuenta la frecuencia de los pulsos que se le apliquen. Si es superior a la que debe tener el motor para su funcionamiento correcto, puede girar erráticamente o vibrar y no arrancar.

Se refiere a la fuerza del motor. Aunque podemos definir varios torques:

Torque de retención (detent torque): se refiere al torque máximo aplicado cuando el motor está sin energizar y que no provoque la rotación del eje.

Torque de arranque (pull in torque): es el torque máximo para arrancar el motor paso a paso y vencer su inercia para alcanzar la velocidad deseada.

Torque de giro (pull out torque): nos indica el máximo torque que el motor paso a paso puede proporcionar sin perder pasos.

Torque de anclaje (holding torque): es el torque máximo aplicado al motor paso a paso estando detenido y energizado sin provocar la rotación de su eje.

Importante para conseguir la polea del motor paso a paso.

Para poder acoplar la polea al eje del motor paso a paso, debemos conocer la forma del eje del mismo.

Se especifica la longitud del eje en milímetros y su forma, los más comunes son los redondos y en forma de D.

Otras características deseables pueden ser la potencia, el código de colores de los cables para identificar las bobinas, el peso y el tamaño del motor, temperatura de operación, entre otras.

Como siempre, lo más indicado en caso de dudas, es recurrir a la hoja de datos técnica (datasheet) del fabricante del motor paso a paso.

Motores NEMA 17 y NEMA 23

Es probable que si estás empezando en la tecnología o en el mundo de Arduino, no hayas escuchado hablar de la Asociación Nacional de Fabricantes Eléctricos (National Electrical Manufacturers Association, NEMA).

NEMA es una asociación estadounidense de fabricantes de equipos eléctricos y electrónicos que define un conjunto de normas en la manufactura de estos equipos, que rigen en Estados Unidos y Canadá, pero el resto de países los emplea y se ajusta a sus normas.

Estas normas cubren varios aspectos, tales como nomenclatura, composición, construcción, dimensiones, tolerancias, seguridad, entre otras.

Cuando hablamos de un motor paso a paso NEMA, hacemos referencia a que su construcción aprobó los estándares de fabricación exigidos por la asociación.

Los motores paso a paso NEMA 17 y NEMA 23, son muy utilizados en impresoras 3D, máquinas CNC y robótica de precisión.

El número 17 o 23 se refiere al diámetro que tiene el motor, o sea el tamaño del marco (frame size); por ejemplo el NEMA 17 tiene dimensiones de encapsulado de 1.7 x 1.7 pulgadas, el motor paso a paso NEMA 23 mide 2.3 x 2.3 pulgadas.

Comparemos las características principales de estos dos motores:

Motor paso a paso NEMA 17

Motor paso a paso NEMA 23

Hemos tomado diez de las características técnicas básicas y podemos observar que la mayor diferencia la encontramos en el torque y la corriente (aunque estas diferencias varían de acuerdo con el modelo del motor paso a paso analizado); por estas características el motor paso a paso NEMA 17 es muy utilizado en impresoras 3D y cortadoras láser, donde no es necesario un gran torque y el motor paso a paso NEMA 23 es utilizado en Routers CNC y máquinas que requieran mayor torque, esto se verá también reflejado en el costo del motor.

Motor paso a paso 28BYJ-48 y driver ULN2003

Como has visto, al momento de trabajar en nuestros proyectos con motores paso a paso hay que tener en cuenta varios detalles. Lo más importante es definir qué controlador o driver y que motor paso a paso necesitaremos.

Para el controlador nada mejor en nuestro caso que utilizar el Arduino que tengamos a disposición.

Ya que un motor paso a paso consume una corriente elevada y puede necesitar una tensión mayor a los 5 VDC de nuestro Arduino, no podemos realizar una conexión directa entre ellos. Se requiere un manejador (driver) o interface para brindar al motor la tensión y la corriente necesarias.

Una de las parejas motor paso a pasodriver más utilizadas en proyectos donde la velocidad y el torque que se requieran no sean muy altos, es el motor paso a paso 28BYJ-48 y como driver el circuito integrado ULN 2003. Por comodidad, al momento de realizar los proyectos, se utiliza el módulo ULN2003.

En la imagen superior observamos al motor paso a paso 28BYJ-48. Este modelo en particular es de 5VDC.

Vemos que el eje del motor paso a paso 28BYJ-48 es excéntrico debido a la caja reductora que posee, la cual reduce la velocidad y aumenta el torque.

Resumen de las características principales del motor paso a paso 28BYJ-48

Veamos las especificaciones técnicas del motor paso a paso 28BYJ-48

Hay que tener en cuenta que la caja reductora reduce la velocidad del motor en una relación de 1:64. Es decir, el motor interno gira a 2048 pasos por vuelta en paso completo o 0.175° por paso.

En la imagen inferior el módulo ULN2003.

Veamos sus características principales

Driver para motores paso a paso ULN2003

El corazón del módulo driver ULN2003 es el circuito integrado ULN2003; como vemos en la imagen inferior está compuesto por 4 búfer (buffer) inversores de señal independientes; de manera resumida, cada búfer está conformado por transistores Darlington que amplifican e invierten la señal de entrada. Es decir, un nivel lógico bajo (0) en la entrada IN1 obtendrá un nivel alto (1) en la salida A y viceversa.

El motor paso a paso 28BYJ-48 tiene 5 cables, el código de color dado por el fabricante es:

Azul y amarillo para una bobina y rosa y naranja para la otra bobina. El punto común a las dos bobinas es de color rojo y va al positivo de la fuente de alimentación, por tanto, para excitar una bobina se debe aplicar un alto al driver ULN2003 ya que este invierte la señal de entrada y con el nivel bajo a la salida, se excitará la bobina.

Conectar motor paso a paso a Arduino

Para realizar las conexiones que aparecen en el diagrama pictórico inferior, utilicemos como guía la siguiente tabla.

Programando el motor paso a paso

Como de costumbre podemos programar utilizando una librería o de forma manual. Empecemos sin usar librerías realizando pruebas con el motor paso a paso 28BYJ- 48 y el driver ULN2003.

Debido a que el 28BYJ-48 es un motor unipolar (4 bobinas), lo podemos mover de tres maneras diferentes, movimiento por ola o paso completo, movimiento normal y movimiento de medio paso. Veamos como funcionan cada uno de estos movimientos.

Aquí utilizaré unos códigos creados por nuestro amigo Luis del Valle Hernández.

Programación manual de un motor paso a paso 28BYJ-48 y driver ULN2003

Paso completo

A esta altura del artículo podemos hablar ya un poco técnicamente y seguro lo puedes entender.

Podemos lograr el paso completo del motor paso a paso unipolar 28BYJ-48 de dos formas:

1. Movimiento por ola, como muestra la tabla inferior. Al energizar solo una bobina por paso, el torque y consumo son moderados.

2. Movimiento Normal (par maximo) . Como recomienda el fabricante según muestra la tabla de abajo, donde vemos que con un pequeño «truco» se logra el paso completo alimentando las dos bobinas en solo 4 pasos, logrando mayor torque, pero mayor consumo de potencia.

Movimiento de medio paso

Es una solución intermedia, que logra un movimiento lento y suave. Conseguimos el medio paso del motor paso a paso unipolar 28BYJ-48 alimentando sus 4 bobinas como muestra la tabla inferior:

Programación del motor paso a paso a través de una librería

Las librerías nos facilitan mucho la existencia, lo comprobamos con este sencillo programa que utiliza la librería Stepper.

Driver para motores paso a paso L298N

Para controlar un motor paso a paso bipolar, uno de los módulos más populares es el L298N.

Analicemos los componentes y la función de los pines del módulo L298N.

Aspectos generales en un motor paso a paso bipolar

Como sabemos un motor paso a paso bipolar tiene cuatro cables, dos para cada bobina, requieren que el flujo de corriente cambie de dirección en las bobinas en secuencias adecuadas y un circuito de control y driver más complicados que el de un motor paso a paso unipolar.

Los motores unipolares mantienen su punto común a positivo y por tanto la corriente no cambia de sentido, de allí su nombre. Con los bipolares necesitamos como driver dos Puente H, uno para cada bobina. La característica del puente H es que puede hacer circular la corriente de un motor en dos direcciones. También podemos usar un controlador-driver especializado para un motor paso a paso bipolar.

La tabla para controlar un motor bipolar se muestra en la imagen inferior.

Cómo controlar un motor paso a paso con Arduino y L298N

Podemos utilizar el motor paso a paso 28BYJ-48, que como sabemos es unipolar, pero no usaremos su terminal común de color rojo; también debemos separar la pista de cobre que une las dos derivaciones centrales de cada bobina, para ello quitamos la tapa donde están las soldaduras de los cables, como muestra la imagen inferior; de tal forma se comportará como si fuera un motor paso a paso bipolar.

O podemos usar un motor paso a paso NEMA 17, que es uno de los más populares.

Diagrama de conexiones

Recordemos que estamos alimentando con una fuente de tensión de 12 VDC y debe estar conectado el puente que habilita la salida de 5 V que usaremos para polarizar el Arduino.

Recuerda hacer comunes las tierras, (GND) del módulo driver L298N y GND de Arduino.

Código

Para facilitar el control de un motor paso a paso bipolar usamos la librería Steeper que viene en el IDE de Arduino y modificamos un poco uno de los ejemplos que incluye la librería.

La librería Stepper es básica y no permite realizar muchas funciones al motor paso a paso. Usaremos aquí el ejemplo para mover el motor paso a paso.

Invocamos a la librería Stepper.

Configuramos el motor: el primer parámetro es el número de pasos, como usamos el NEMA 17 será 200. Luego los 4 pines que usaremos del Arduino, 8, 9, 10, y 11, que irán a los pines del driver L298N llamados IN1, IN2, IN3 e IN4 respectivamente.

En la función principal setup() definimos la velocidad del motor con la función setSpeed().

En la función principal loop() hacemos girar una cantidad determinada de pasos, puede ser desde 0, o sea nada, hasta los giros que desees; media vuelta sería 100, por ejemplo. Para eso usamos la función step(). Aquí daremos una vuelta completa al eje del motor paso a paso en una dirección y hacemos una pausa de un segundo, antes de invertir el giro.

Finalmente hacemos girar el motor paso a paso una vuelta completa en dirección opuesta y hacemos una pausa nuevamente.

La librería stepper tiene otros ejemplos, como el MotorKnob (perilla del motor). En el mismo, se indica el enlace al sitio web oficial de Arduino, allí se explica la forma de controlar la velocidad del motor paso a paso unipolar o bipolar usando un potenciómetro y una entrada análoga.

Para simplificar el uso del motor paso a paso bipolar, se utilizan varios modelos de controlador-driver especializados, uno de los más usados es el A4988, también conocido como «Pololu». Este módulo es fiable y de bajo costo.

Con el módulo A4988 podemos controlar la resolución de los pasos del motor desde el paso completo hasta 1/16 de paso y limitar la corriente de las bobinas del motor paso a paso, el Arduino solo debe utilizar dos puertos de salida, uno para la dirección del motor y otro para generar un paso con la frecuencia deseada. Esto se logra sin incluir secuencias de pasos ni librerías.

Otro controlador muy utilizado es el TMC2208 o su versión actualizada el TMC2209.

Conclusiones sobre el motor paso a paso

Ha sido un poco extenso el artículo :) pero el tema de motores paso a paso y sus controladores lo ameritan.

Espero que hayas recordado un poco acerca de este tipo de motores o si apenas empiezas en el mundo maker hayas aprendido de este interesante tema.

Gracias por leer y hasta un próximo artículo.

Gracias a Depositphotos por la cesión de las imágenes.

Salir de la versión móvil