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.
Indice de contenidos
- 1 ¿Qué es y para qué sirve un motor paso a paso?
- 2 ¿Cómo funciona un motor paso a paso?
- 3 Tipos de motores paso a paso
- 4 Características a la hora de elegir un motor paso a paso
- 5 Motores NEMA 17 y NEMA 23
- 6 Motor paso a paso 28BYJ-48 y driver ULN2003
- 7 Programando el motor paso a paso
- 8 Driver para motores paso a paso L298N
- 9 Cómo controlar un motor paso a paso con Arduino y L298N
- 10 Conclusiones sobre el motor paso a paso
¿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:
- Paso completo (full-step)
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.
- Medio paso (half-step)
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.
- Micropaso (microstep)
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:
- Al ser un motor sin escobillas es más confiable y duradero
- Trabaja en lazo abierto, no necesita retroalimentación (encoders)
- Excelente respuesta en el arranque y en la parada del motor
- Mayor facilidad para controlar su velocidad
- Mejor precisión en los desplazamientos
- Gran rango en la velocidad de rotación
- Aunque el par motor disminuye al aumentar la velocidad, es superior en baja velocidad a un motor DC
- Torque de detención, que significa que se mantiene firme en su posición cuando no está girando
- Rápido arranque por el torque elevado a baja velocidad
Desventajas:
- No son convenientes si la inercia del sistema es alta, o sea, que el tiempo de aceleración y desaceleración sea largo.
- No hay forma de conocer dónde está ubicado el motor paso a paso en el momento del arranque, por eso necesita algún tipo de sensor de fin o inicio de carrera, los servomotores superan esta dificultad; aunque al colocar el motor paso a paso en un circuito de lazo cerrado, esta dificultad queda salvada y se mejoran las características del motor paso a paso.
- Necesitan de una programación (software) específico para la activación secuencial correcta de las fases del motor, para lograr su adecuado funcionamiento.
- Mayor gasto de energía, al consumir en reposo y en funcionamiento.
Tipos de motores paso a paso
Según su construcción, podemos decir que un motor paso a paso puede ser de tres tipos:
- Motor paso a paso de imán permanente
- El rotor es un imán permanente magnetizado radialmente
- El par motor es alto
- El paso puede estar entre 45 y 90° (baja resolución)
- Aumentando los polos del rotor, el paso puede bajar a 7.5°
- La velocidad es relativamente lenta
- Motor paso a paso de reluctancia variable
- El rotor es dentado y de hierro dulce
- Buen torque de retención
- Alta velocidad
- Son poco usados
- Bajo par
- Motor paso a paso híbrido
- Es el más usado
- El rotor es de imán permanente magnetizado axialmente
- Alto torque
- El paso puede estar entre 0.9 a 5° (buena resolución)
- Pueden ser operados a alta velocidad de pasos
Según la configuración de sus bobinas podemos tener:
- Motor paso a paso unipolar
- Funciona con una polaridad de corriente
- Pueden tener 5 o 6 cables (uniendo o no los cables comunes)
- Es más simple de controlar
- La interfaz de potencia o driver es sencilla
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.
- Motor paso a paso bipolar
- Funciona con dos polaridades de corriente
- Este tipo de motor paso a paso tiene 4 cables
- Más complejo de controlar ya que para realizar un movimiento requieren un cambio en la dirección del flujo de corriente en las bobinas en una secuencia apropiada
- Como interfaz de potencia o driver necesita 2 puentes H
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:
- Modelo
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.
- Tipo de motor
Aquí se hace referencia a si es bipolar o unipolar.
- Número de conductores
Es la cantidad de cables que vemos salir del motor paso a paso.
- Fases
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.
- Resistencia del devanado
Es la resistencia eléctrica de los bobinados y determina el consumo de corriente del motor. A menor resistencia, mayor corriente podrá circular.
- Inductancia
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).
- Tensión de alimentación
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.
- Pasos por revolución
Cuántos saltos o pasos debe dar el motor para que su eje realice un giro completo.
- Ángulo por paso
De los 360° del giro completo, cuántos grados gira el eje del motor paso a paso en cada paso.
- Velocidad
Este dato nos indica las revoluciones o vueltas por minuto (rpm) que da el eje del motor paso a paso.
- Reducción
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.
- Consumo de corriente
Se mide en Amperios o en mA y nos indica el consumo de corriente de cada bobina del motor paso a paso.
- Frecuencia máxima
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.
- Torque o par motor
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.
- Diámetro del eje
Importante para conseguir la polea del motor paso a paso.
- Estilo de eje
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
- Modelo: 17HS3001-20B
- Tipo de motor: bipolar
- Número de conductores: 4
- Fases: 2
- Resistencia del devanado: 1.7 Ω
- Tensión de alimentación: 3.3-24 VDC
- Pasos por revolución: 200
- Ángulo de paso: 1.8°
- Consumo de corriente: 1.2 A / fase
- Torque: 0.4 Newton/metro o 4 kg/cm
Motor paso a paso NEMA 23
- Modelo: 57H1876-420-8-21B
- Tipo de motor: bipolar
- Número de conductores: 4
- Fases: 2
- Resistencia del devanado: 0.6 Ω
- Tensión de alimentación: 5-36 VDC
- Pasos por revolución: 200
- Ángulo de paso: 1,8°
- Consumo de Corriente: 4.2 A / fase
- Torque: 1.8 Newton/metro o 18 kg/cm
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 paso–driver 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
- Modelo: 28BYJ-48
- Tipo de motor: unipolar
- Número de conductores: 5
- Fases: 4
- Resistencia del devanado: 50 Ω
- Tensión de alimentación: 5-12 VDC
- Potencia: 20 W
- Pasos por revolución del eje del motor: 32 (paso completo)
- Ángulo por paso: 11.25°
- Reducción de velocidad: 1:64 (por la caja reductora)
- Consumo de corriente: 240 mA
- Frecuencia máxima: 100 Hz que equivale a un delay de 10 ms
- Torque: 0.034 Newton/metro o 0.34 kg/cm
- Temperatura de operación: -45°C a +125°C
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
- Puede funcionar con 5-12 VDC
- 4 LED que indican cuando se excita una bobina
- 4 resistencias para proteger los LED
- Chip ULN2003 en una base o zócalo
- 1 condensador de desacoplo en los pines de alimentación del chip
- 4 entradas para el controlador, por donde entran los pulsos
- Puentes (jumpers) para seleccionar el voltaje de funcionamiento (5V o 12V)
- Hay que puentear el voltaje que no se utiliza
- Conector Molex para el motor; no hay forma de equivocarse en su conexión
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
/* Creado: Luis del Valle (ldelvalleh@programarfacil.com Movimiento por ola motor 28BYJ-48 https://programarfacil.com */ // Definimos los pines donde tenemos conectadas las bobinas #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 // Secuencia de pasos (par máximo) int paso [4][4] = { {1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1} }; void setup() { // Todos los pines en modo salida pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); } void loop() { for (int i = 0; i < 4; i++) { digitalWrite(IN1, paso[i][0]); digitalWrite(IN2, paso[i][1]); digitalWrite(IN3, paso[i][2]); digitalWrite(IN4, paso[i][3]); delay(10); } } |
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
/* Creado: Luis del Valle (ldelvalleh@programarfacil.com Movimiento normal motor 28BYJ-48 https://programarfacil.com */ // Definimos los pines donde tenemos conectadas las bobinas #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 // Secuencia de pasos (par máximo) int paso [4][4] = { {1, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 1, 1}, {1, 0, 0, 1} }; void setup() { // Todos los pines en modo salida pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); } void loop() { for (int i = 0; i < 4; i++) { digitalWrite(IN1, paso[i][0]); digitalWrite(IN2, paso[i][1]); digitalWrite(IN3, paso[i][2]); digitalWrite(IN4, paso[i][3]); delay(10); } } |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
/* Creado: Luis del Valle (ldelvalleh@programarfacil.com Movimiento por ola motor 28BYJ-48 https://programarfacil.com */ // Definimos los pines donde tenemos conectadas las bobinas #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 // Secuencia de pasos (par máximo) int paso [8][4] = { {1, 0, 0, 0}, {1, 1, 0, 0}, {0, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 1, 0}, {0, 0, 1, 1}, {0, 0, 0, 1}, {1, 0, 0, 1} }; void setup() { // Todos los pines en modo salida pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); } void loop() { for (int i = 0; i < 8; i++) { digitalWrite(IN1, paso[i][0]); digitalWrite(IN2, paso[i][1]); digitalWrite(IN3, paso[i][2]); digitalWrite(IN4, paso[i][3]); delay(10); } } |
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
/* Creado: Luis del Valle (ldelvalleh@programarfacil.com Utilización librería Stepper con motor 28BYJ-48 https://programarfacil.com */ // Incluímos la librería para poder utilizarla #include <Stepper.h> // Esto es el número de pasos por revolución #define STEPS 4096 // Número de pasos que queremos que de #define NUMSTEPS 100 // Constructor, pasamos STEPS y los pines donde tengamos conectado el motor Stepper stepper(STEPS, 8, 9, 10, 11); void setup() { // Asignamos la velocidad en RPM (Revoluciones por Minuto) stepper.setSpeed(5); } void loop() { // Movemos el motor un número determinado de pasos stepper.step(NUMSTEPS); delay(2000); } |
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.
- El circuito integrado L298N es el driver que utiliza el módulo, tiene un doble puente H completo, lo que le permite manejar dos motores DC o un motor paso a paso bipolar
- La corriente máxima que soporta es de 2 amperios
- Los diodos de protección del driver, se encuentran en el módulo
- Necesita una tensión interna o externa de 5 V para su lógica
- La tensión de entrada al módulo (Vin), está comprendida entre 5 V hasta los 35 V
- Si usamos un Vin hasta 12V dejamos colocado el puente (J)
- Posee un regulador de tensión de 5 V (78M05), cuya salida está marcada como 5 V en la bornera
- Si usamos un Vin mayor de 12 V quitamos el puente (J) y el terminal marcado como 5 V actúa como entrada y debemos colocar allí una fuente de tensión de 5 V para la lógica del driver L298N
- Los pines habilitadores (EnA y EnB) activan los motores con HIGH (puentes conectados)
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <Stepper.h> Stepper myStepper(200, 8, 9, 10, 11); void setup() { myStepper.setSpeed(100); } void loop() { myStepper.step(200); delay(1000); myStepper.step(-200); delay(1000); } |
Invocamos a la librería Stepper.
1 |
#include <Stepper.h> |
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.
1 |
Stepper myStepper(pasos, 8, 9, 10, 11); |
En la función principal setup() definimos la velocidad del motor con la función setSpeed().
1 |
myStepper.setSpeed(100); |
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.
1 2 |
myStepper.step(200); delay(1000); |
Finalmente hacemos girar el motor paso a paso una vuelta completa en dirección opuesta y hacemos una pausa nuevamente.
1 2 |
myStepper.step(-200); delay(1000); |
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.