- Componentes requeridos
- Descripción de pin del motor paso a paso
- Diagrama de circuito para control de motor paso a paso usando el módulo ULN2003
- Diagrama de circuito para el control del motor paso a paso usando el módulo L293D:
- Control del motor paso a paso con AVR ATmega16
Los motores paso a paso son motores sin escobillas de CC que pueden girar de 0 0 a 360 0 en pasos. El motor paso a paso utiliza señales electrónicas para hacer girar el motor en pasos y cada señal gira el eje en incrementos fijos (un paso). El ángel de rotación se controla aplicando cierta secuencia de señales. A diferencia del servomotor, los motores paso a paso se pueden accionar utilizando pines GPIO del microcontrolador en lugar de pines PWM y pueden girar en (+360 0) y (-360 0). El orden de las señales decide el sentido horario y antihorario del motor paso a paso. Para controlar la velocidad del motor, solo necesitamos cambiar la tasa de señales de control aplicadas. Los motores paso a paso giran en pasos. Hay varios modos de pasos para operar el motor paso a paso, como paso completo, medio paso y micro paso. Para saber más sobre los conceptos básicos, la teoría y el principio de funcionamiento del motor paso a paso, siga el enlace.
Anteriormente interconectamos el motor paso a paso con muchos microcontroladores:
- Interfaz del motor paso a paso con ARM7-LPC2148
- Interfaz del motor paso a paso con Arduino Uno
- Interfaz del motor paso a paso con MSP430G2
- Interfaz del motor paso a paso con STM32F103C8
- Interfaz del motor paso a paso con el microcontrolador PIC
- Interfaz del motor paso a paso con el microcontrolador 8051
- Interfaz de motor paso a paso con Raspberry Pi
En este tutorial interactuaremos el motor paso a paso 28BYJ-48 con el microcontrolador Atmega16 AVR usando Atmel Studio 7.0. El motor paso a paso está clasificado para funcionar en 5V. Conectaremos el motor paso a paso con los dos controladores del motor, es decir, ULN2003 y L293. Ambos serán impulsados por un suministro de 5V. Para simplificar la interconexión, estamos utilizando un módulo de preconstrucción de ambos controladores de motor. También puede utilizar circuitos integrados independientes ULN2003 y L293D. La cantidad de cables y puentes puede ser mayor, así que tenga cuidado al conectar todas las conexiones.
Componentes requeridos
- Motor paso a paso (28BYJ-48)
- Módulo ULN2003 / Controlador de motor L293D
- Microcontrolador Atmega16 IC
- Oscilador de cristal de 16Mhz
- Dos condensadores de 100nF
- Dos condensadores de 22pF
- Presionar el botón
- Cables de puente
- Tablero de circuitos
- USBASP v2.0
- Led (cualquier color)
Descripción de pin del motor paso a paso
Diagrama de circuito para control de motor paso a paso usando el módulo ULN2003
Conecte todos los componentes como se muestra en el diagrama a continuación cuando utilice ULN2003. De manera similar, lo interconectaremos usando L293D en el siguiente paso. Estamos usando PORTA de Atmega16 para conectar el motor paso a paso para ambos controladores de motor. No es necesario conectar el pin de 5 V del motor paso a paso. Solo se requieren los pasadores de la bobina para mover el motor paso a paso. El orden de los pines es muy importante para impulsar el motor paso a paso, ya que la activación de las bobinas debe ser para lograr los pasos. En este proyecto se utilizan cuatro entradas de ULN2003 y cuatro salidas de ULN2003. Las entradas se conectarán a los pines PORTA y las salidas se conectarán a los pines de señal del motor paso a paso. Además, conecte un botón en el pin de reinicio para reiniciar Atmega16 cuando sea necesario. Conecte Atmega16 con el circuito oscilador de cristal adecuado. Todo el sistema estará alimentado por un suministro de 5V.
A continuación se muestra la imagen real del módulo de controlador de motor ULN2003:
A continuación, hemos proporcionado conexiones de pines Atmega16 con ULN2003 y L293D para hacer girar el motor paso a paso. La interconexión del motor paso a paso con el módulo L293D se explica en la sección posterior, recuerde que solo se requiere un módulo ULN2003 o L293D para el control del motor paso a paso.
Las conexiones de clavijas para INPUT son las siguientes:
Atmega16 |
ULN2003 |
L293D |
A0 |
IN1 (PIN1) |
IN1 (PIN2) |
A1 |
IN2 (PIN2) |
IN2 (PIN7) |
A2 |
IN3 (PIN3) |
IN3 (PIN10) |
A3 |
IN4 (PIN4) |
IN4 (PIN15) |
Las conexiones de los pines para SALIDA son las siguientes:
Motor paso a paso |
ULN2003 |
L293D |
naranja |
SALIDA1 (PIN16) |
SALIDA1 (PIN3) |
Amarillo |
SALIDA2 (PIN15) |
SALIDA2 (PIN6) |
Rosado |
SALIDA3 (PIN14) |
SALIDA3 (PIN11) |
Azul |
SALIDA4 (PIN13) |
SALIDA4 (PIN14) |
Diagrama de circuito para el control del motor paso a paso usando el módulo L293D:
Control del motor paso a paso con AVR ATmega16
Como ya se dijo, a diferencia del servomotor, los motores paso a paso necesitan controladores externos, por ejemplo, controlador de motor ULN2003 o L293D. Así que simplemente conecte el circuito como se indicó anteriormente y cargue el programa main.c que se proporciona al final.
El boceto muestra el motor paso a paso girando en ambos lados, es decir, en sentido horario y antihorario. Si desea rotar el paso a paso en una dirección, simplemente comente las líneas de código de otra dirección en el boceto.
A continuación se proporciona el código AVR completo para controlar el motor paso a paso. El código es simple y se puede entender fácilmente. A continuación se proporcionan dos códigos, uno para motor paso a paso giratorio con ULN2003 y el segundo con módulo L293D.
Conecte su USBASP v2.0 y siga las instrucciones en este enlace para programar el microcontrolador Atmega16 AVR usando USBASP y Atmel Studio 7.0. Simplemente cree el boceto y cárguelo usando una cadena de herramientas externa.
A continuación se proporciona el código completo con el video de demostración.