En el mercado podemos encontrar gran cantidad de motores de distintas características que nos permitirán realizar unas tareas u otras dependiendo de sus características de construcción. Un tipo clásico es el motor paso a paso y su uso se a popularizado gracias al uso de las impresoras 3D.

Un motor paso a paso se caracteriza por ser de Corriente continua, sin escobillas y que pueden ser controlados por circuitos digitales.

La clave de este tipo de motores es que podemos hacer que gire, de forma controlada, un valor concreto de grados incrementales. Mediante un pulso digital podemos conseguir que el motor gire, por ejemplo, 1.8°.

Hay que tener en cuenta que aunque sean pulsos digitales no podemos conectar directamente el motor a un microcontrolador, debemos utilizar un driver para motores paso a paso. Esto es debido a que en realidad, los motores paso a paso no se controalr por tensión, sino por corriente. Un microcontrolador no puede entregar la energía suficiente de la forma adecuada al motor.

Tipos de motor paso a paso

Existen dos tipos de motores paso a paso en función de como estén conectadas las bobinas

1.-Unipolar: Este tipo de motor se caracteriza por que todas las bobinas tienen un polo común y por tanto tendremos 5 o 6 cables. En el caso de ser 6 las bobinas están unidas dos a dos y es que existen dos comunes y cada uno de ellos corresponde a dos bobinados.

Este tipo de motores se puede controlar conectando el común (o comunes) a masa y, en el orden correcto, ir conectando y desconectando cada una de las bobinas a Vcc tal y como se ve en el siguiente diagrama de forma de onda, en el que cada linea corresponde a una bobina.

Forma de onda motor unipolar
Forma de onda motor unipolar

2.-Bipolar: Este motor tiene 4 cables y es que la mitad de las bobinas están conectadas de manera estratégica a dos de los cables y la otra mitad a los otros 2 cables.

¿Cómo están construidos?

Una representación básica de un motor bipolar podría ser la siguiente, en la cual se observan 4 electroimanes que forman parte del estátor (parte fija) y un imán que forma parte del rotor (zona móvil).

Paso a paso - Conexión de las bobinas
Paso a paso – Conexión de las bobinas

Te animo a que veas el vídeo para ver paso a paso como funciona el motor internamente.


Motor paso a paso bipolar

¿Cómo controlarlo?

Vamos a hacerlo fácil, vamos a usar Arduino, un motor bipolar y el driver A988 de Pololu.

A988 Fuente: Pololu
A988 Fuente: Pololu

¡¡Atent@!!

Recuerda que antes de usar el driver debes conocer que cables corresponden a cada bobina para conectarlos correctamente y calibrar el driver.

Digamos que el driver tiene 16 pines, pero, qué no cunda el pánico, es relativamente fácil de conectar:

Pin Descripción
Vmot Alimentación para los motores entre 8 y 35v.
GND Disponemos de dos pines GND, el primero de Vmot y el segundo de Vdd, ambas deben ser unidas entre sí.
2A y 2B Los pines a los que conectaremos el primer bobinado.
1A y 1B Pines para el segundo bobinada.
Vdd Alimentación para la lógica del driver, de 3 a 5v.
Enable Como su nombre indica permite habilitar o inhabilitar los motores.
MSn Pines digitales que nos permiten jugar con el microstepping.
RESET Posibilidad de hacer reset en el driver.
SLEEP Activar sleep del módulo.
Step Nos permite controlar los pasos que da el motor.
Dir Establece de forma digital la dirección de giro del motor.

La configuración de los pines no deja de ser fácil. Como norma general se pueden obviar los pines MS1 – MS2 – MS3 puesto que internamente están conectados con resistencias pull-down que configuran el módulo en Full-step. Sin embargo si quieres profundizar más en el tema puedes analizar esta tabla:

Step resolution Fuente: Polo
Step resolution Fuente: Polo

Los pines de control que conectamos, en este caso a Arduino, serán STEP, DIR y ENABLE y los llevamos a tres pines digitales.

  • STEP lo usaremos para mandar las ordenes al motor. Cada vez que enviamos un pulso, el motor girará un paso, para este ejemplo 1.8°.
  • El pin DIR permite cambiar la dirección de giro del motor. Si está a nivel alto el motor gira en un sentido y si está a nivel bajo el motor gira en el sentido contrario.
  • El pin ENABLE realiza precisamente lo que su nombre indica, si se encuentra a nivel bajo habilita el giro del motor, si se encuentra a nivel alto lo inhabilita.
Recuerda que los drivers se pueden llegar a calentar, por tanto es buena idea usar disipadores y en caso necesario crear una corriente de aire para mejorar la disipación de calor por convección.

Los pines de RESET y SLEEP los uniremos entre sí para el correcto funcionamiento del driver.

2A 2B 1A y 1B son los pines a los cuales conectaremos el motor. Uno de los bobinados del motor lo conectaremos entre 1A y 1B y el otro bobinado entre 2A y 2B.

Vcc será la alimentación de la lógica del driver y lo conectamos al pin de 5v de Arduino.

Por último tenemos Vmot que es el pin donde conectaremos la fuente de alimentación de tensión constante que alimentará a los motores y sera de una tensión comprendida entre 8 y 35v (por limitaciones del driver) y que deberemos asegurarnos que proporciona suficiente corriente para que el motor pueda funcionar con normalidad.

Añade un condensador de 100μF entre Vmot y GND para ayudar durante los transitorios de el motor paso a paso.

El código básico para Arduino y motores step

El siguiente ejemplo hace girar el motor 360 grados (200 pasos) en una dirección, cambia la dirección y gira otros 360°

/*
Simple stepper motor
By: Enrique
Rincón Ingenieril
Date: July 4th, 2016
License: This code is public domain.
*/

int dir = 8;
int paso = 7;
int enable = 6;

void setup(){
//Sets as OUTPUT pins
pinMode(dir,OUTPUT);
pinMode(paso,OUTPUT);
pinMode(enable,OUTPUT);
//Enable the motor
digitalWrite(enable, LOW);
}

void loop(){
//Set direcction
digitalWrite(dir, LOW);
for(int i = 0; i < 200; i++){
digitalWrite(paso, HIGH);
delay(10);
digitalWrite(paso, LOW);
delay(10);
}
//Change direction
digitalWrite(dir, HIGH);
for(int i = 0; i < 200; i++){
digitalWrite(paso, HIGH);
delay(10);
digitalWrite(paso, LOW);
delay(10);
}
delay(2000);
}

Si te interesan otros tipos de motores puedes aprender a controlar un motor de corriente continua

Enrique Gómez

Ingeniero Electrónico Industrial y Automático, amante de la comunicación audiovisual y de la divulgación ingenieril y científica. Friki de Star Wars, cuenta más de lo que parece. Puedes saber más sobre mi y sobre mis trabajos en www.enriquegomez.me
Suscribete
Notificame
guest
5 Comments
Nuevos
Antiguos Más votados
Inline Feedbacks
View all comments
Abigail
Abigail
3 años hace tiempo

Hola buen día
Con este tipo de Driver también se puede tener una opción de encendido del motor y apagado, esque lo estoy intentando con enable que vi en tu vídeo y con una condición if pero no eh podido hacerlo quería saber si este driver tiene esta opción.
Gracias

Juan Serrano Sala
Juan Serrano Sala
3 años hace tiempo

Como mover el motor paso a paso a cuatro posiciones con pulsadores y volver al inicio.
Gracias

fernando
fernando
4 años hace tiempo

hola.. tengo motores de impresora.. que voltage maximo le aplico?