Electrónica y programación para Microcontroladores.

Libros técnicos para electrónica programable.

Email
Contactanos en:

consultas@firtec.com.ar

Arduino

Los motores paso a paso se pueden ver como motores eléctricos sin escobillas.
Es típico que todos los bobinados del motor sean parte del estator, y el rotor puede ser un imán permanente o, en el caso de los motores de reluctancia variable, un cilindro sólido con un mecanizado en forma de dientes parecido a un engranaje construido con un material magnéticamente dócil como el hierro dulce.
La conmutación de las bobinas se maneja con un controlador o driver que a su vez recibe información desde un microcontrolador.
La frecuencia que se aplica a las bobinas está dentro del espectro de audio y se pueden lograr grandes velocidades con estos motores.
Estos motores paso a paso tienen un comportamiento muy diferente al de los motores de corriente continua. En primer lugar, no giran libremente, los motores paso a paso avanzan girando por pasos determinados por un tren de pulsos. También se diferencian de los motores comunes de continua en la relación par motor. Los motores de continua no son buenos para ofrecer un buen torque a baja velocidad sin la ayuda de una reducción mecánica, sin embargo los motores paso a paso trabajan de manera opuesta siendo su mayor capacidad de torque a baja velocidad.

Los motores paso a paso tienen una característica adicional, el llamado par de detención, que no existe en los motores de continua. El torque de detención hace que un motor paso a paso se mantenga firme en su posición cuando no está girando, esta característica es muy útil cuando el motor deja de moverse y, mientras está detenido, la fuerza de carga permanece aplicada a su eje eliminando  la necesidad de un mecanismo de freno mecánico.
Los motores paso a paso requieren de trenes de pulsos aplicados convenientemente en sus bobinas, esto significa que hacer girar un motor paso a paso no es tan simple como en un motor de continua al que solo basta con aplicar voltaje y este empieza a girar.
Se requiere un circuito de control, que será el responsable de convertir las señales de avance y sentido de giro en la correcta  secuencia de activación de los bobinados.
El siguiente es un ejemplo simple para mover un motor de este tipo con un popular driver fabricado por Pololu, el A4988 de uso común en la plataforma Arduino y las impresoras 3D.

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
# =========================================================
# - Ejemplo para el manejo de un motor Paso a Paso
# - Driver A4988
# - Firtec Argentina
# - www.firtec.com.ar
# =========================================================
# -*- coding: utf-8 -*-
import time                     
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)        
GPIO.setwarnings(False) 	
 
pinDir = 24                     # Pin para el sentido de giro
pinStep = 26                    # Pin para los pasos
numSteps = 220                  # Número de pasos del motor
microPausa = 0.003              # Tiempo entre los pasos
 
 
GPIO.setup(pinDir,GPIO.OUT)
GPIO.setup(pinStep,GPIO.OUT)
 
while True:
 
        GPIO.output(pinDir,0)           # La dirección puede ser (0 o 1)
 
        for x in range(0,numSteps):
                GPIO.output(pinStep, True)
                time.sleep(microPausa)
                GPIO.output(pinStep, False)
                time.sleep(microPausa)
 
        time.sleep(microPausa)
 
        GPIO.output(pinDir, 1)          # Cambio del sentido de giro
 
        for x in range(0,numSteps):
                GPIO.output(pinStep, True)
                time.sleep(microPausa)
                GPIO.output(pinStep, False)
                time.sleep(microPausa)
 
GPIO.cleanup()          # Sale prolijamente

 En el vídeo se puede ver el resultado obtenido al ejecutar el programa.