- Motor paso a paso:
- Controlador de motor paso a paso ULN2003:
- Componentes requeridos
- Diagrama de circuito y explicación
- Explicación del código
El motor paso a paso es un motor especialmente diseñado que gira en pasos. La velocidad del motor paso a paso depende de la tasa de señal eléctrica que se le aplique. Diferentes patrones pueden controlar la dirección y el tipo de rotación del motor paso a paso. Están disponibles principalmente dos tipos de motores paso a paso, unipolar y bipolar. Unipolar es más fácil de operar, controlar y también más fácil de conseguir. Aquí, en este tutorial, estamos interconectando el motor paso a paso con el microcontrolador PIC PIC16F877A.
Estamos utilizando un motor paso a paso 28BYJ-48 para este proyecto, que es económico y está fácilmente disponible. Es un motor paso a paso unipolar de 5 V CC. También estamos utilizando un módulo disponible con este motor que consiste en IC de controlador de motor paso a paso ULN2003. ULN2003 es una matriz de pares Darlington, que es útil para impulsar este motor, ya que el microcontrolador PIC no podía proporcionar suficiente corriente para conducir. ULN2003A es capaz de impulsar 500 mA de carga con 600 mA de corriente máxima.
Motor paso a paso:
Veamos la especificación del motor paso a paso 28BYJ-48 de la hoja de datos.
Cómo girar el motor paso a paso:
Si vemos la hoja de datos, veremos el pin-out.
Dentro del motor hay dos bobinas con rosca central disponibles. El cable rojo es el común para ambos que se conectarán a VCC o 5V.
Otros 4 cables rosa, rojo, amarillo y azul controlarán la rotación en función de la señal eléctrica. Además, dependiendo del movimiento, este motor se puede controlar mediante 3 pasos. El modo de tracción permanente, el modo de media en coche y el modo de avance de la onda.
Tres modos de conducción del motor paso a paso:
Impulsión total: si dos electroimanes del estator se energizan a la vez, el motor funcionará a par máximo, lo que se denomina modo de secuencia de accionamiento total.
Paso |
Azul |
Rosado |
Amarillo |
naranja |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Half-Drive: Cuando alternativamente una y dos fases están energizadas, el motor funcionará en modo de mitad de drive. Se usa para aumentar la resolución angular. El inconveniente es que se produce menos torque en este movimiento.
Paso |
Azul |
Rosado |
Amarillo |
naranja |
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 |
Wave Drive: en este modo, se enciende un electroimán del estator. Sigue 4 pasos igual que el modo de conducción completa. Consume poca potencia con un par bajo.
Paso |
Azul |
Rosado |
Amarillo |
naranja |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Anteriormente hemos interconectado el motor paso a paso con otros microcontroladores:
El motor paso a paso también se puede controlar sin ningún microcontrolador, consulte este Circuito controlador de motor paso a paso.
Controlador de motor paso a paso ULN2003:
Entendamos la placa de ruptura que consiste en ULN2003 IC. Es importante comprender el pin out.
La parte amarilla se usa para conectar el motor. La parte roja muestra un puente. Es importante colocar el puente, ya que permitirá la protección del diodo de marcha libre para el motor . La entrada rosa es para la conexión del microcontrolador.
Giraremos el motor en el modo de accionamiento completo en el sentido de las agujas del reloj y lo volveremos a rotar con el modo de accionamiento por onda en el sentido contrario a las agujas del reloj. Vea el video de demostración al final.
Componentes requeridos
- Pic16F877A
- Kit de programación
- Tablero de circuitos
- 20Mhz de cristal
- Condensador de disco de 33pF - 2 piezas
- Resistencia de 4.7k
- Alambres y pines Berg
- Placa de conexión ULN2003A junto con el motor paso a paso 28BYJ-48.
- Cables adicionales para conectar
- Unidad de fuente de alimentación de 5 V o adaptador de pared con clasificación de 500 mA
Diagrama de circuito y explicación
En el diagrama del circuito, en el lado izquierdo se muestra el PIC16F877A y en el lado derecho se muestra la conexión ULN2003A. El ULN2003 y la parte del motor paso a paso están dentro de la placa de conexión.
La conexión de la placa de conexión a la unidad del microcontrolador será-
A. IN1 => Pin33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin36
Conecté todos los componentes y su hardware para girar el motor paso a paso con el microcontrolador PIC listo.
Si es nuevo en el microcontrolador PIC, siga nuestros Tutoriales del microcontrolador PIC que indican cómo comenzar con el microcontrolador PIC.
Explicación del código
El código completo para este controlador de motor paso a paso basado en PIC se proporciona al final de este tutorial con un video de demostración. Como siempre, primero, necesitamos establecer los bits de configuración en el microcontrolador pic y luego comenzar con void main function.
Estas son las macros para los bits de configuración de la unidad del microcontrolador y los archivos de encabezado de la biblioteca.
#define _XTAL_FREQ 200000000 // Crystal Frequency, usado en el retardo #define speed 1 // Speed Range 10 a 1 10 = más bajo, 1 = más alto #define pasos 250 // cuánto paso tomará #define en sentido horario 0 // sentido horario macro #define anti_clockwise 1 // macro en sentido antihorario
En la primera línea definimos la frecuencia del cristal que se necesita para la rutina de retardo. Se utilizan otras macros para definir opciones relacionadas con el usuario.
Si ve el código, hay tres funciones definidas para conducir el motor en tres modos con sentido horario y antihorario. Aquí están las tres funciones:
1. void full_drive (dirección de caracteres)
2. void half_drive (dirección de caracteres)
3. void wave_drive (dirección de caracteres)
Compruebe las definiciones de estas funciones en el código completo que se proporciona a continuación:
Ahora, en la función principal nula , estamos conduciendo el motor en el sentido de las agujas del reloj usando el modo de transmisión completa dependiendo de los pasos y, después de unos segundos de retraso, volvemos a girar el motor en sentido antihorario usando el modo de transmisión por onda.
void principal (vacío) { system_init (); while (1) { / * Conduce el motor en modo de conducción completa en el sentido de las agujas del reloj * / for (int i = 0; i
Así es como podemos rotar el motor paso a paso con el microcontrolador PIC. Los motores paso a paso son muy útiles en máquinas CNC, robótica y otras aplicaciones integradas.