Interface do motor de passo com o microcontrolador 8051 (89c51,89c52)

Motor paso a paso de interfaz con microcontrolador 8051 (89c51,89c52)

Aquí hay un tutorial sencillo sobre cómo conectar el motor paso a paso con el microcontrolador 89c51. El motor paso a paso, como su nombre indica, realiza pasos para completar una rotación circular completa de 360 ​​grados. Podemos girar el paso en el sentido de las agujas del reloj y en el sentido contrario a las agujas del reloj. También se puede variar la velocidad del motor paso a paso. Hay muchos tipos de motores de más de cuatro, ocho o dieciocho pasos. Los motores paso a paso se clasifican según los pasos que da un motor específico para completar una rotación completa de 360 ​​grados. Nos centramos en el motor de cuatro pasos. Una vez que esté familiarizado con el motor paso a paso de cuatro pasos, podrá manejar cualquier tipo de motor paso a paso.

Motor paso a paso funcionando

Usaré cuatro motores paso a paso empinados en este proyecto. Por lo general, salen 5 o 6 cables de un motor paso a paso de cuatro curvas. En 5 cables, uno es nuestro vcc (voltaje externo) y los 4 renombrados son cables escalonados. En 6 cables, 2 son nuestro vcc (voltaje externo) y los cuatro renombrados son cables escalonados.

  • ¿Para saber cómo funciona el motor paso a paso? Aquí tienes un buen tutorial. BUEN TUTORIAL DE WIKIPEDIA.


El motor paso a paso funciona desde 5 voltios hasta 12 voltios. El motor paso a paso que estoy usando en este tutorial es NEMA 17. Es un motor paso a paso bipolar. Cada paso dado por el motor paso a paso nema 17 representa un aumento de 1,8 grados. Por lo tanto, en 200 pasos, nema 17 completa una rotación de 360 ​​(200 * 1,8 = 360) grados. Nuestra preocupación en este tutorial es simplemente girar el motor paso a paso.

motor paso a paso nema 17

motor paso a paso nema 17

Consumo de energía del motor paso a paso

El motor paso a paso consume de 0,1 a 1 amperio de corriente durante la rotación escalonada bajo carga. Los microcontroladores no pueden producir esta cantidad de energía. Por lo tanto, no podemos conectar directamente motores paso a paso con microcontroladores como el microcontrolador 89c51, cuyos pines pueden producir un máximo de 0,045 amperios de corriente.

Usando el controlador ULN2003 para motor paso a paso

Para cubrir la restricción de potencia del motor paso a paso anterior, necesitamos una fuente de alimentación externa que pueda impulsar cargas pesadas y proporcionar suficiente energía para el funcionamiento del motor paso a paso. ULN2003 es un IC que contiene pares de transistores con configuración Darlington. El ULN2003 recibe una entrada de baja potencia y emite una señal de mayor potencia. Decidí usar este controlador IC para accionar el motor paso a paso.

Controlador ULN2003

Controlador ULN2003

Motor paso a paso del microcontrolador 8051 – Circuito de diseño

Conecte el puerto n.° 1 del microcontrolador 8051 (89c51) cuatro bits más abajo al controlador ic ULN2003. El microcontrolador 89c51 no puede producir suficiente voltaje/corriente para accionar un motor, por lo que se requiere un controlador IC para cumplir con los requisitos de voltaje/corriente del motor. La salida del ULN2003 está conectada a nuestro motor paso a paso. Asegúrese de insertar el mismo cable en el motor que está especificando en el paso de su código. Haga el pin de tierra 8 ULN2003. Aplique el mismo voltaje al pin 9 del ULN2003 que está aplicando a su motor.

A continuación se muestra el diagrama de circuito de la interfaz del motor paso a paso con el microcontrolador 89c51. Observe los pasos realizados por el motor paso a paso en la imagen GIF a continuación. Para cada paso, tenemos que realizar cada paso con alfileres altos y seguir el patrón que se muestra en la imagen GIF. Los pines/cables del motor paso a paso están coloreados en amarillo, marrón, negro y verde, etc. Primero, debemos estar seguros del patrón del cable de paso. El patrón del motor paso a paso Nema 17 se muestra en la imagen GIF.

Nota: El patrón debe estar en el orden correcto para hacer girar el motor paso a paso. Preste atención al código de colores de los cables del motor más empinados a continuación.

Motor paso a paso con microcontrolador 89c51 y controlador uln2003.

Motor paso a paso con microcontrolador 89c51 y controlador uln2003.

Interfaz de motor paso a paso con microcontrolador 8051 – Código de proyecto

El código es muy simple. Está escrito en lenguaje C++ utilizando keil ide como herramienta de software para escribir y compilar el código. Primero se incluye el archivo necesario reg51.h . Luego se crea una función de retraso para proporcionar algunos retrasos en los pasos. Este retraso es muy importante, úselo para evitar la contraemf (fuerza motriz eléctrica) generada por el motor; de lo contrario, su controlador se dañará por esta contraemf producida por el motor paso a paso. También puede acelerar la rotación del motor reduciendo el tiempo de retraso. En la función principal utilicé algunos comandos para girar el motor paso a paso. Los comandos se explican a continuación. Los comandos están en formato hexadecimal.

P1=0x01 Hacer que el puerto 1 bit 0 sea alto para el primer paso. Equivalente binario=00000001
P1=0x00 Haciendo que el puerto 1 todos los bits sean 0 para el siguiente paso. Equivalente binario=00000000
P1=0x02 Haciendo que el puerto 1 bit 1 sea alto para el segundo paso. Equivalente binario=00000010
P1=0x00 Haciendo que el puerto 1 todos los bits sean 0 para el siguiente paso. Equivalente binario=00000000
P1=0x04 Poner el puerto 1 bit 2 en alto para el tercer paso. Equivalente binario=00000100
P1=0x00 Haciendo que el puerto 1 todos los bits sean 0 para el siguiente paso. Equivalente binario=00000000
P1=0x08 Poner el puerto 1 bit 3 en alto para el cuarto paso. Equivalente binario=00001000

También puedes declarar individualmente los bits y hacerlos altos y bajos para suficientes pasos. El bucle while(1) hace funcionar continuamente el motor en el sentido de las agujas del reloj. También puede invertir la dirección en sentido antihorario simplemente invirtiendo los comandos, colocando el último comando (0x08) al principio e invirtiendo el
Ordena de la misma forma para el resto de comandos.

Con una ligera modificación en el código se puede variar la velocidad del motor paso a paso con el microcontrolador 89c51. Simplemente disminuya el retraso o elimínelo. Para rotar en un ángulo determinado, calcule los pasos necesarios para alcanzar el ángulo y coloque los pasos en el bucle for. Espero que tenga sentido para ti.

A continuación se enumeran más proyectos que involucran motores paso a paso y diferentes microcontroladores. Cada diseño es único y un microcontrolador dedicado controla el motor paso a paso. Todos los proyectos son de código abierto. Puedes modificarlos según tus necesidades.

Motor paso a paso controlado por web usando nodemcu

Controlador de motor paso a paso vía Bluetooth con aplicación para Android

Motor paso a paso controlado con microcontrolador STM32 de 32 bits

Descargue archivos de proyecto y código compilado en keil uvision 4. El código está escrito en lenguaje c. Si tiene alguna pregunta sobre la publicación, simplemente deje un comentario a continuación. El vídeo del proyecto también se proporciona a continuación.

Vea el vídeo de diseño de la interfaz del motor paso a paso 89c51

Código de motor paso a paso 8051

Volver al blog

Deja un comentario

Los comentarios deben ser aprobados antes de su publicación.