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:

PinDescripción
VmotAlimentación para los motores entre 8 y 35v.
GNDDisponemos de dos pines GND, el primero de Vmot y el segundo de Vdd, ambas deben ser unidas entre sí.
2A y 2BLos pines a los que conectaremos el primer bobinado.
1A y 1BPines para el segundo bobinada.
VddAlimentación para la lógica del driver, de 3 a 5v.
EnableComo su nombre indica permite habilitar o inhabilitar los motores.
MSnPines digitales que nos permiten jugar con el microstepping.
RESETPosibilidad de hacer reset en el driver.
SLEEPActivar sleep del módulo.
StepNos permite controlar los pasos que da el motor.
DirEstablece 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