AUTORES: M. ROCÍO GARCÍA DE LA FUENTE Y AGUSTÍN GONZÁLEZ REDONDO
El segundo tipo de motores capaces de controlar su posición de forma interna, los servomotores fueron los primeros que hemos tratado en anteriores artículos, son los motores paso a paso (figura 4. Varios modelos de motores paso a paso), dispositivos ampliamente empleados en impresoras e impresoras 3D por la necesidad de controlar con precisión la posición de los cabezales e impresión en las primeras y el extrusor en las segundas.
Existen tres tipos de motores paso a paso:
- De reluctancia variable: presenta un campo magnético variable.
- De Imán permanente: existen también dos tipos: unipolares y bipolares, nos centraremos en el primero de ellos por ser el más sencillo y adecuado para realizar pequeños proyectos.
- Híbridos: son una combinación de los dos anteriores.
Al igual que todos los motores, los motores paso a paso disponen un estator y un rotor, pero a diferencia de un motor de CC normal, el estator consta de conjuntos individuales de bobinas. El número de bobinas variará en función del tipo de motor paso a paso. El diagrama siguiente muestra un motor paso a paso de 4 polos, y el ángulo que se desplaza por paso (figura 5. Esquema eléctrico de un motor paso a paso).
En cuanto su funcionamiento, para conseguir el movimiento de rotación en uno de estos motores es necesario alimentar los distintos bobinados bajo secuencia particular, que en el caso de los motores unipolares hay tres tipos de secuencias de funcionamiento.
- Paso completo (figura 6. Secuencia de Paso Completo): se produce la alimentación de dos bobinados al mismo tiempo, el motor siempre avanza un paso, el par del motor es alto debido a esta doble alimentación. En la práctica, la siguiente tabla muestra con un 1, la fase que se alimenta, y con 0 la fase que no recibe tensión en cada instante.
Tabla 1. Secuencia de Paso completo o normal.
PASO | FASE 1 | FASE 2 | FASE 3 | FASE 4 |
1 | 1 | 1 | 0 | 0 |
2 | 0 | 1 | 1 | 0 |
3 | 0 | 0 | 1 | 1 |
4 | 1 | 0 | 0 | 1 |
- Wave (figura 7. Secuencia Wave): en este caso se activa una sola bobina cada vez, lo que ocasiona que el eje del motor gire hacia la bobina activa. Permite un funcionamiento más suave del motor, pero su par se ve reducido. En la práctica, la alimentación se produce en cada bobinado de la siguiente forma.
Tabla 2. Secuencia de alimentación Wave.
PASO | FASE 1 | FASE 2 | FASE 3 | FASE 4 |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
- Secuencia de Medio Paso (figura 8. Secuencia de Medio Paso): en este caso las bobinas se alternan de manera que en un periodo se activan dos bobinas al mismo tiempo, seguido de otro en el que solamente hay una bobina activada. El resultado que se obtiene es un paso más corto, la mitad que del paso de las secuencias anteriores). Para llevarlo a cabo, la alimentación de cada fase se lleva a cabo con la secuencia que se muestra en la siguiente tabla (1: fase alimentada, 0: fase sin carga).
Tabla 3. Secuencia de alimentación de Medio Paso.
PASO | FASE 1 | FASE 2 | FASE 3 | FASE 4 |
1 | 1 | 0 | 0 | 0 |
2 | 1 | 1 | 0 | 0 |
3 | 0 | 1 | 0 | 0 |
4 | 0 | 1 | 1 | 0 |
5 | 0 | 0 | 1 | 1 |
6 | 0 | 0 | 0 | 1 |
7 | 1 | 0 | 0 | 1 |
8 | 1 | 0 | 0 | 0 |
En la práctica, y en cuanto a Arduino se refiere, trataremos de realizar un ejemplo con un pequeño motor unipolar de 64 paso por vuelta el motor 28BYJ-48 (figura 9. Motor paso a paso 28BYJ-48). Para ello, existe una librería <Stepper.h> (https://www.arduino.cc/en/Reference/Stepper) que nos facilita notablemente el trabajo, e incluso, al igual que en el caso de los servomotores, también trae implementados ejemplos de partida con los que comenzar a trabajar, en este caso seleccionaremos “stepper_oneRevolution.ino” (figura 10: Acceso al ejemplo “stepper_oneRevolution.ino de la librería <Stepper.h>).
#include <Stepper.h>
const int stepsPerRevolution = 200; // ajusta el valor de pasos para dar una vuelta
// Crea un objeto motor nuevo conectado a los pines 8-11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
// fija la velocidad de giro a 60 rpm
myStepper.setSpeed(60);
// inicializa la comunicación con el puerto serie
Serial.begin(9600);
}
void loop() {
// realiza un giro completo en sentido de las agujas del reloj
Serial.println(«clockwise»);
myStepper.step(stepsPerRevolution);
delay(500);
// realiza un giro completo en sentido antihorario
Serial.println(«counterclockwise»);
myStepper.step(-stepsPerRevolution);
delay(500);
}
Cuyo esquema de conexión entre el motor y Arduino es el siguiente: (figura 11. Conexión de un motor motor 28BYJ-48):
Por último, animaros a utilizar estos dispositivos, dado que su conexión y programación no son muy complejos, nos permitirán abrir nuestro campo de trabajo a todos aquellos proyectos en los que controlar la posición sea un aspecto importante a tener en cuenta.