Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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?
Control de Motores 2
8vo Ingeniería en Mecatrónica
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.
Control de Motores 2
8vo Ingeniería en Mecatrónica
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).
Ventajas:
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.
Control de Motores 2
8vo Ingeniería en Mecatrónica
• 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.
Para realizar las conexiones que aparecen en el diagrama pictórico inferior, utilicemos
como guía la siguiente tabla.
Control de Motores 2
8vo Ingeniería en Mecatrónica
Paso Completo
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.
Control de Motores 2
8vo Ingeniería en Mecatrónica
Código en Arduino
// 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);
}
}
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);
}
}
Código en Arduino
// 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);
}
}
Las librerías nos facilitan mucho la existencia, lo comprobamos con este sencillo programa
que utiliza la librería Stepper.
Control de Motores 2
8vo Ingeniería en Mecatrónica
Código en Arduino
// 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);
}