Microcontrolador Stm32f103 que controla o motor de passo pelo módulo de driver de motor de passo A4988

Microcontrolador Stm32f103 que controla el motor paso a paso mediante el módulo controlador de motor paso a paso A4988

Los motores paso a paso, como su nombre indica, se mueven por pasos. Son populares en la industria debido a su capacidad para girar su eje en una ubicación precisa y producir un par elevado con movimientos angulares bajos. También es posible controlar la velocidad y el ángulo del motor paso a paso con precisión sin necesidad de un mecanismo de retroalimentación. Aunque consumen mucha energía y la configuración de su software no es fácil de entender, una vez que se aprenden profunda y adecuadamente, todos los estereotipos sobre ellos desaparecerán. Los motores paso a paso son motores de CC que avanzan y mueven su eje cuando se suministran pulsos digitales a través de sus pines. Los motores paso a paso se utilizan en operaciones que requieren precisión, como brazos robóticos, impresoras 3D, escáneres, rotadores de discos y máquinas CNC.
Los motores paso a paso son motores de CC sin escobillas. Tienen bobinas e imanes permanentes que hacen girar el eje. Generalmente, existen dos tipos de motores paso a paso categorizados en sus configuraciones de bobina unipolar y bipolar. Los motores unipolares tienen un cable de señal común cuya señal permanece fija en todo momento. Los motores bipolares son independientes del cable común. No voy a profundizar en la diferencia entre motores paso a paso. Acabo de escribir arriba la principal diferencia entre los dos motores paso a paso.

Proyecto principal

Conectaré el motor paso a paso con el microcontrolador stm32. Mi tarea principal es enseñar cómo interconectar, programar y controlar el motor paso a paso con el microcontrolador stm32f103 usando el configurador de código stm32cubemx.

Hardware del proyecto

  • Motor paso a paso NEMA 17
  • Microcontrolador stm32f103c8t6
  • Controlador de motor paso a paso A4988

Motor de paso

Para este proyecto utilizaré un motor paso a paso bipolar. El nombre del motor es NEMA 17. Se usa comúnmente en impresoras 3D y es popular entre los fabricantes de circuitos de bricolaje. Es un motor paso a paso bifásico de 4 hilos. Consume de 1 amperio a 1,5 amperios de corriente. Los requisitos de voltaje son un mínimo de 2,4 voltios. El ángulo de paso es de 1,8 grados. Para una rotación completa de 360 ​​grados (360/1,8=200) se requieren 200 pasos.

Controlador de motor paso a paso A4988

Los motores paso a paso consumen 1 amperio de corriente durante el funcionamiento normal. Por lo tanto, necesitamos una fuente de alimentación que pueda proporcionar 1 amperio de corriente continua. La técnica antigua consiste en construir un circuito de puente H utilizando transistores o mosfets que puedan suministrar suficiente cantidad de energía y accionar motores fácilmente. Hacer un circuito de puente H requiere mucho tiempo y mucho esfuerzo. Afortunadamente, hoy en día existen en el mercado controladores de puente H premontados, que no sólo son económicos sino también muy fáciles de controlar. Entonces decidí usar un circuito de puente H preensamblado en este proyecto. El controlador de motor paso a paso bipolar A4988 es el más adecuado para nuestro proyecto. El A4988 puede entregar de 1 a 2 amperios de corriente continua con voltajes de 8 a 35 voltios. Requiere de 3 a 5 voltios para su funcionamiento. La distribución de pines y el circuito equivalente del producto se encuentran a continuación.

Circuito equivalente del controlador del motor paso a paso A4988

Circuito equivalente del controlador del motor paso a paso A4988
Aplique de 3 a 5 voltios a los pines VDD y Gnd del controlador del motor A4988. 1A, 1B, 2A y 2B son pines de salida. Estos pines deben estar correctamente conectados a las 2 fases del motor paso a paso bipolar. VMOT y GND son pines de alimentación que les conectan la fuente de alimentación. Puede suministrar de 8 a 35 voltios entre VMOT y GND. Siempre que se aplica una señal de onda cuadrada digital a través del pin STEP, el motor paso a paso en la salida da un paso. El pin DIR controla la dirección del motor paso a paso. La señal alta en DIR hace girar el eje del motor en una dirección y la señal baja en DIR invierte la dirección. El pin SLEEP pone el módulo en modo de suspensión y deja de funcionar. El pin RESET devuelve el motor a su posición inicial. El pin de habilitación activa el módulo. MS1, MS2 y MS3 son pines de selección de modo paso a paso. A través de este módulo podremos mover el eje del motor de 5 maneras. Los modos de resolución con configuraciones se detallan a continuación.

Lógica de control de resolución del controlador del motor paso a paso A4988

Lógica de control de resolución del controlador del motor paso a paso A4988

Circuito de diseño

Se utiliza una batería de 9 voltios para suministrar energía al motor paso a paso. Está conectado entre los pines VMOT y GND del controlador del motor paso a paso A4988. Se inserta un condensador de 100 microfaradios entre los rieles de alimentación para evitar sobretensiones y sobretensiones de CA. El motor paso a paso Nema 17 tiene 4 pines/cables de salida. Cuatro cables significan 2 pares de bobinas. Cada hilo tiene un color diferente. Normalmente, el rojo y el azul son un par y el verde y el negro son otro par. En algunos motores, se usa amarillo en lugar de azul y gris en lugar de negro. Por lo tanto, asegúrese primero del bobinado de las bobinas antes de realizar cualquier conexión. El controlador del motor paso a paso A4988 se alimenta con una fuente de alimentación de salida de 3,3 voltios del microcontrolador stm32. Stm32 también produce 5 voltios. Entonces, si desea alimentar el controlador del motor con 5 voltios, simplemente cambie la conexión. A mí me funcionaron 3,3 voltios. Los pines Restablecer y Suspender están interconectados. El pasador de reinicio es un pasador flotante y el pasador de suspensión normalmente se levanta (consulte el circuito equivalente del controlador más arriba). Entonces, conectar Restablecer con Suspensión hace que el pin de Restablecimiento esté alto, ahora el controlador nunca se restablecerá. El pin de habilitación está abierto. También está internamente bajado, lo que significa que el controlador del motor siempre está en modo habilitado.
Voy a hacer funcionar el motor en modo Paso completo. Para el modo paso a paso completo, debe dejar los pines del modo del controlador del motor paso a paso A4988 en niveles bajos. Los pines del modo de accionamiento del motor Ms1, Ms2 y Ms3 permanecen intactos. Han permanecido abiertos y trabajan para mí. Aunque a mí me funcionó, recomiendo conectar Ms1, Ms2 y Ms3 a tierra para el modo de paso completo. Luego, el pin paso del controlador del motor se conecta al pin n.° 4 del puerto A del microcontrolador stm32f103. El pin de dirección está conectado al pin n.º 3 del puerto A del microcontrolador stm32. El diagrama de circuito del proyecto se proporciona a continuación.

Motor paso a paso nema 17 controlado con microcontrolador stm32

Motor paso a paso nema 17 controlado con microcontrolador stm32
El código del proyecto está escrito y compilado en keil arm v5 ide. El configurador de código Stm32cubemx se utiliza para configurar los ajustes stm32f103c8t6. El oscilador interno hc de 8 Mhz se utiliza para proporcionar la fuente de reloj para el sistema de microcontrolador, buses y otros periféricos del microcontrolador. Se declaran dos pines stm32 Port-A como salida y se les dan nombres. Si es nuevo y no tiene experiencia previa con Stm32cubemx, debe seguir el tutorial de introducción. Después de seguir el tutorial, podrá comprender fácilmente las instrucciones del código a continuación. Haz clic en el botón para hacer el tutorial.

Comenzando con stm32cubemx y keil arm ide

La lógica principal del código anterior está en la función while(1). Primero, el pasador de dirección se coloca en la posición alta. Esto hará que el motor paso a paso se mueva en el sentido de las agujas del reloj.

HAL_GPIO_WritePin(GPIOA, DIR_Pin, GPIO_PIN_SET); //Rotación en el sentido de las agujas del reloj

Luego, un bucle for mueve el motor. Los pasos del bucle for se proporcionan al motor. Recuerde que el motor paso a paso Nema 17 requiere 200 pasos para dar una rotación completa de 360 ​​grados (ángulo de paso de 1,8 grados). Por lo tanto, el bucle for se ejecuta 200 veces para completar una rotación. Luego, el pasador de dirección se coloca en un nivel bajo y ahora el motor retrocederá unos pasos. En este estado, el motor paso a paso también realiza 200 pasos. Regresa a su posición inicial.

Trabajo futuro

Este tutorial es una lección básica sobre cómo operar un motor paso a paso con microcontroladores stm32 usando keil ide y stm32cubemx. Para el futuro puedes probar el motor paso a paso con micropasos. Cambie los modos A4988 y pruebe cada modo 1/4, 1/8 y 1/16. También puede cambiar la frecuencia de rotación o controlar la velocidad de rotación del eje. Como este tutorial se basa en un motor paso a paso bipolar, podrá probar el motor unipolar en el futuro con modificaciones menores en el circuito y el código.
Descarga el código del proyecto. La carpeta contiene los archivos stm32cubemx y keil arm. El código es de código abierto. Por favor envíenos sus comentarios sobre el proyecto.
Código/Archivos

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.