Utilice un microcontrolador para controlar el motor paso a paso

Jaja, hermanos, pueden consultar algunas partes, jaja

El diseño de mi propio curso aún no se ha completado, así que se lo enviaré como referencia.

Título: Sistema de motor paso a paso controlado por microcomputadora de un solo chip

Resumen

Muchos equipos de control industrial tienen altos requisitos para la precisión del control del desplazamiento y el ángulo, y Es difícil para los motores generales realizarlo, y el motor paso a paso puede realizar con precisión el ángulo establecido y el número de revoluciones. Este diseño utiliza principalmente el microcontrolador 51 para controlar el sistema de motor paso a paso de cuatro fases y seis cables. El microcontrolador genera señales de impulso de accionamiento para controlar el motor paso a paso y producir un determinado ángulo de rotación en una determinada dirección a una determinada velocidad. Al mismo tiempo, el microcontrolador puede realizar la rotación hacia adelante, la rotación hacia atrás y el control de velocidad del motor, y mostrar la velocidad correspondiente en el tubo digital.

El artículo describe el circuito de hardware del sistema, el diseño del software y la interacción persona-computadora. Y cada módulo funcional se describe en detalle. Los contenidos principales incluyen los siguientes aspectos:

Los principios generales del control por microordenador de un solo chip de motores paso a paso.

Realización de accionamiento y control de motores.

Diseño general y descripción de la división de módulos del sistema de control.

Diagrama esquemático.

Código.

Palabras clave: microcontrolador; motor paso a paso; sistema; controlador

Resumen

Muchos equipos de control industrial tienen requisitos de alta precisión de control para el desplazamiento y el ángulo. con la mayoría de los motores. Pero los motores paso a paso pueden realizar exactamente el desplazamiento y el ángulo que usted establezca. Este diseño utiliza principalmente una microcomputadora de un solo chip para controlar el sistema de motor paso a paso. El motor paso a paso consta de seis cables y cuatro fases. La señal del pulso de conducción es generada por el microcontrolador. Controle el motor paso a paso para que gire en una dirección a una determinada velocidad para obtener un determinado ángulo de rotación.

Al mismo tiempo, puede utilizar un microordenador de un solo chip para realizar el control de avance, retroceso y velocidad del motor. Y use un tubo digital para mostrar la velocidad.

Este artículo brinda el diseño del circuito de hardware, el diseño del software, la interacción persona-computadora, etc. del sistema, y ​​describe cada módulo funcional en detalle. El contenido principal incluye los siguientes aspectos:

. (1) El principio general del control por microcomputadora de un solo chip de motores paso a paso.

(2) Implementación del accionamiento y control del motor

(3) Diseño general del sistema de control y descripción de la división del módulo

(4) Diagrama esquemático

(5) Código

Palabras clave: microcontrolador; sistema de motor paso a paso; controlador

Contenido

Introducción 4

1 Principios generales del control por microordenador de un solo chip de motores paso a paso 4

1.1 Motores paso a paso 4

1.1.1 Introducción a los motores paso a paso 4

1.1.2 Clasificación de los motores paso a paso motores 5

1.1.3 Índice técnico 5

1.1.4 Principio de funcionamiento del motor paso a paso 5

1.2 Microcontrolador 7

2 pasos Introducción a la implementación del variador de motor 8

2.1 Introducción 8

2.2 Selección del controlador 8

3 Diseño del hardware del sistema 9

3.1 Control del motor por microcontrolador 9

3.2 Teclado 9

3.3 Parte de la pantalla 10

Diagrama de flujo del programa 11

Resumen 12

Gracias usted 13

Referencia 13

Apéndice 13

c código 13

Introducción

Utilizado actualmente en control industrial producción e instrumentación. Por lo general, es necesario trasladar y rotar algunas piezas mecánicas, y el control del desplazamiento y el ángulo es muy exigente. A los motores normales les resulta difícil controlar con precisión la posición y el ángulo. En algunas situaciones con altos requisitos de inteligencia, el uso de controladores de chips analógicos y generadores de señales para el control es limitado. Se puede mejorar el rendimiento de los motores paso a paso controlados por microcontroladores. Los motores paso a paso pueden lograr ángulos y revoluciones precisos, tienen buenas características de paso y son los más adecuados para el control digital. Ha sido ampliamente utilizado en equipos de control industrial. El microcontrolador tiene las características de tamaño de chip pequeño, gran compatibilidad, bajo voltaje y bajo consumo de energía. Es la mejor unidad de caja vacía para accionar motores paso a paso. Por lo tanto, el sistema de motor paso a paso controlado por una microcomputadora de un solo chip tiene una alta precisión de control, un funcionamiento estable y puede usarse ampliamente.

1 Principios generales del control por microcontrolador de motores paso a paso

1.1 Motores paso a paso

1.1.1 Introducción a los motores paso a paso

Paso a paso El motor es un elemento de control de bucle abierto que convierte señales de pulsos eléctricos en desplazamiento angular o desplazamiento lineal.

En condiciones sin sobrecarga, la velocidad del motor y la posición de parada solo dependen de la frecuencia y el número de pulsos de la señal de pulso y no se ven afectadas por los cambios de carga. Es decir, cuando se agrega una señal de pulso al motor, el motor gira. a través de un ángulo de paso. La existencia de esta relación lineal, sumada al hecho de que el motor paso a paso solo tiene errores de período y no errores acumulativos, etc. Controlar la velocidad y la posición con un motor paso a paso es muy sencillo. Aunque los motores paso a paso se han utilizado ampliamente, no se pueden utilizar en el trabajo diario como los motores de CC y CA normales. Debe usarse en un sistema de control compuesto por señales de pulso de doble anillo y circuitos de accionamiento de potencia. Por tanto, no es fácil hacer un buen uso de los motores paso a paso, lo que implica muchos conocimientos profesionales en mecánica, motores, electrónica, informática, etc.

1.1.2 Clasificación de los motores paso a paso

Imanes permanentes. Generalmente es de dos fases, con pequeño par y volumen, y el ángulo de paso suele ser de 7,5 o 15.

Reacción (VR). Generalmente es trifásico para lograr una gran salida de par y el ángulo de paso es de 1,5.

Tipo híbrido (HB). Tiene las ventajas tanto del tipo de imán permanente como del tipo de reactancia, y se divide en dos fases y cinco fases. El ángulo de paso de dos fases es 1,8 y el ángulo de paso de cinco fases es 0,72.

1.1.3 Indicadores técnicos

Índice estático

Número de etapas

Ángulo de paso

Número de tiempos

Par de posicionamiento

Par de mantenimiento

Indicadores dinámicos de motores paso a paso

Precisión del ángulo de paso

Desafinado

Ángulo de dislocación

Frecuencia máxima de arranque sin carga

Frecuencia máxima de funcionamiento sin carga

Características del rango de frecuencia de funcionamiento

* * *Punto de vibración del motor

1.1.4 Principio de funcionamiento del motor paso a paso

Análisis (diagrama de desarrollo del motor paso a paso)

Paso a paso reactivo Tomando el Como ejemplo de un motor, su estructura típica se muestra en la Figura 1. Este es un motor paso a paso de cuatro fases. Cuando el devanado controlado por fase pasa corriente de pulso, el estator y el rotor de esta fase se alinean bajo la acción de la tracción magnética, y los dientes del estator y del rotor de las fases B y D adyacentes están escalonados. Si se activa la fase B, la fase B quedará fija y los dientes del rotor se alinearán (rotarán) mediante tracción magnética, mientras que los dientes del estator y del rotor de la fase C y la fase A adyacente a la fase B estarán escalonados, es decir, los dientes del rotor de la fase C y la fase A adyacente a la fase B estarán escalonados. El motor paso a paso girará en un ángulo de paso. ¿Qué pasa si presionas A →B →C →D →A? Cuando se alimenta en una secuencia de ciclo regular, un motor paso a paso gira en una dirección determinada. Si la secuencia de encendido se cambia a A → D → C → B → A, el motor girará en la dirección opuesta. Este método de control se llama cuatro fases de cuatro disparos. Si la energía se suministra en el orden AB → BC → CD → DA → AB o A → AB → B → BC → C → CD → D → DA → A, se denomina doble latido de cuatro fases o doble simple de cuatro fases. ocho tiempos. No importa qué método de control se utilice, el ángulo de rotación del motor paso a paso es siempre un ángulo de paso dentro de un ciclo de potencia. Por lo tanto, la dirección de rotación se puede cambiar cambiando la secuencia de los ciclos de activación del motor paso a paso, y su frecuencia angular se puede cambiar cambiando la frecuencia de activación. Usando la función de salida del microcontrolador, se envían cuatro señales a las fases A, B, C y D del motor paso a paso mediante programación, y la dirección de rotación del motor paso a paso y la frecuencia de la señal de salida se establecen a través del ciclo. secuencia de las señales de salida, estableciendo así Determinar la frecuencia de rotación del motor paso a paso.

Figura 1 Diagrama estructural del motor paso a paso reactivo

Principio de implementación

Utilice una microcomputadora de un solo chip para generar señales de cuatro fases de A, B, C, y d., es necesario configurar un circuito de aislamiento entre el microcontrolador y el motor paso a paso para separar la electricidad fuerte y débil. Dado que la corriente de accionamiento del motor paso a paso es relativamente grande, se puede agregar un circuito amplificador para proporcionar la corriente de trabajo del motor paso a paso. El circuito del sistema consta de cinco partes: microcontrolador, aislamiento, amplificación, fuente de alimentación y motor paso a paso.

1.2 Microcontrolador

Descripción de características funcionales

AT89S52 es un microcontrolador CMOS de 8 bits de bajo consumo y alto rendimiento.

Con memoria flash programable en el sistema de 8K. Fabricación de tecnología de memoria no volátil de alta densidad utilizando Atmel público

e industrial 80C51.

La descripción del producto y el código pin son totalmente compatibles. Flash en chip admite almacenamiento de programas.

El dispositivo es programable dentro del sistema y también es apto para programadores tradicionales.

En un solo chip,

Con una CPU inteligente de 8 bits y memoria flash programable en el sistema,

AT89S52 proporciona alta flexibilidad y rendimiento superior para muchos sistemas de aplicaciones de control integrados. actuación.

Solución efectiva. AT89S52 tiene las siguientes características estándar: 8k palabras.

Parte de la memoria flash, 256 bytes de RAM, líneas de puerto de E/S de 32 bits, sincronización de vigilancia.

Dispositivo, dos punteros de datos, tres temporizadores/contadores de 16 bits, uno de 6.

Estructura de interrupción vectorial de 2 niveles, puerto serie full-duplex, oscilador de cristal en chip y circuito de reloj

. Además, el AT89S52 se puede simplificar a una operación lógica estática de 0 Hz y admite dos opciones de software para seleccionar el modo de ahorro de energía. En modo inactivo, la CPU deja de funcionar.

Permitir que la RAM, los temporizadores/contadores, los puertos serie y las interrupciones sigan funcionando. Caída

En el modo de protección eléctrica, el contenido de la RAM se guarda, el oscilador se congela y todo el trabajo del

reproductor de una sola película se detiene hasta la siguiente interrupción o reinicio del hardware.

2 Implementación del accionamiento del motor paso a paso

2.1 Introducción

Cuando el motor paso a paso solo recibe voltaje, el motor no funcionará. Sólo el generador de impulsos puede proporcionar instrucciones de señal de impulsos de posición (número de impulsos) y velocidad, y el controlador puede hacer que la corriente fluya a través de la bobina interna del motor y cambiar la secuencia de fases de excitación para hacer que el motor funcione. Por lo tanto, los componentes del sistema necesarios para la acción del motor paso a paso son:

(1) Generador de impulsos: una instrucción de accionamiento del motor que proporciona señales de impulso de ángulo (movimiento de posición), velocidad de funcionamiento y dirección de funcionamiento.

(2) Controlador paso a paso: de acuerdo con el comando de señal de pulso ingresado por el controlador, proporciona corriente para impulsar la acción del motor paso a paso.

(3) Motor paso a paso: proporciona salida de potencia de torsión para impulsar la carga. Por lo tanto, el sistema de motor paso a paso tiene una estructura simple y puede controlar la velocidad y la posición de acuerdo con los pulsos ingresados ​​por el generador de pulsos, sin la necesidad de sensores de velocidad y sensores de posición.

2.2 Selección del controlador

Para motores paso a paso, puede elegir un módulo de accionamiento de motor dedicado o puede construir su propio circuito de accionamiento. Generalmente, existen las siguientes opciones:

Módulos de controladores especiales, como L298, FT5754, etc. Tiene una interfaz de accionamiento sencilla y puede accionar motores paso a paso y motores de CC.

Controlador Darlington ULN2803, este chip puede accionar motores paso a paso de ocho hilos a la vez.

De construcción propia, utilizando transistores, 74als04 y otros componentes de serie. Sin embargo, esto reducirá la confiabilidad del sistema y generará errores en el sistema.

3 Diseño del hardware del sistema

1 Motor de control del microcontrolador

Como se muestra en la Figura 3

Descripción:

Esta parte es la parte del microcontrolador que controla el motor paso a paso. El microcontrolador 80s52 acciona el motor paso a paso a través del controlador Darlington ULN2803. P1.0-P1.4 de 80s52 envía señales de control al controlador, y luego las cuatro líneas del controlador transmiten las señales al motor, lo que hace que el motor gire hacia adelante y hacia atrás. La parte del motor está conectada a una fuente de alimentación de 12 V CC.

Teclado 3.2

Como se muestra en la Figura 4

Descripción:

En este sistema se utilizan cuatro botones, que están respectivamente relacionados con los años 8052 Los cuatro pines están conectados, a saber, LCD EN, RS, WR y RD, las funciones implementadas respectivamente son aceleración, desaceleración y rotación hacia adelante y hacia atrás del motor. Una vez que se presiona el teclado, significa enviar una señal válida al microcontrolador y el microcontrolador se ajusta en consecuencia. Cuando se presiona una tecla del teclado, se divide en varios pasos. Presione el teclado, el circuito está conectado y el escaneo del teclado detecta un nivel bajo. Sin embargo, después de detectar un nivel bajo, es imposible determinar si el botón está presionado, porque la fluctuación puede causar tales cambios, por lo que se detectará después de un retraso de aproximadamente 5 a 10 ms. Si se detecta nuevamente un nivel bajo, presione la tecla. Este proceso se llama antirrebote.

3.3 Parte de visualización

Como se muestra en la Figura 5

Descripción:

La parte de visualización, dado que este sistema solo muestra la velocidad, Utiliza un tubo digital de ánodo LED.

Y el pestillo 74HC573. El pestillo 74HC573 tiene una gran corriente de salida y un circuito de interfaz simple. Este sistema utiliza dos pestillos 74HC573, a saber, selección de segmento y selección de bits. El segmento se selecciona como el número de visualización del tubo digital y el bit se selecciona como el tubo digital correspondiente.

Diagrama de flujo del programa

Resumen

A través de este documento del curso, realmente sentí un proceso de diseño de sistema completo. Este artículo comienza desde el diseño general y la tipografía, hasta el diseño sistemático del contenido, hasta la finalización final. Cada proceso me aporta muchas cosas nuevas, especialmente la parte del hardware después de diseñar el sistema. Primero, utilicé protel99se para hacer el dibujo. Muchas imágenes no se pueden encontrar en las bibliotecas. Si no puede encontrarlo, dibújelo usted mismo y empáquelo. Al empaquetar, necesito usar cartón de cursor para medir con precisión los componentes comprados y luego puedo garantizar la precisión durante el proceso de empaque. Una vez dibujado el diagrama final, se realizará el cableado y luego se enviará al fabricante. De hecho, hice esta manualidad usando un tablero en blanco que compré porque no tiene muchos componentes. Entonces compré los componentes correspondientes y los soldé directamente a la PCB. Durante el proceso de soldadura, sentirá muchas cosas porque hay muchas cosas a las que prestar atención. Sin embargo, cuanto más pruebes este proceso, más avances lograrás. Una vez completada la soldadura, es la etapa de depuración del código. Finalmente, se completó el diseño de este pequeño sistema.

Gracias

Aquí me gustaría agradecer a mis profesores y a los compañeros que me rodean. Este trabajo contó con la ayuda de compañeros de clase. Finalmente me gustaría agradecer a mis padres que siempre me han apoyado.

¡Quiero entregarles este documento!

Referencia

[1], Wang,. Cursos de formación en aplicaciones de microcontroladores. Prensa de la Universidad de Ciencia y Tecnología Electrónica de Xi'an, 2005.

[2] Guo Tianxiang. 51 Tutorial del lenguaje C del microcontrolador.

Apéndice

código c

Motor paso a paso controlado por microcontrolador

Implementación de la función:

Interrupción del temporizador: El El tiempo de sincronización se establece en 30 segundos. El valor inicial dado es 5 ms cada vez, 1 segundo después de 20 interrupciones y 600 interrupciones después de medio minuto y 30 segundos. Después de alcanzar 600 veces, el valor del conteo n se lee y se muestra en el tubo digital.

Detección de teclado: Al pulsar la tecla correspondiente durante el control de velocidad se ajustará la velocidad en consecuencia.

Pantalla de tubo digital:

Componente del controlador:

# include & ltreg52.h & gt

#Definir carácter uchar sin firmar

p>

sbit dula=p2^6;

sbit wela=p2^7;

sbit jia_key=p3^6;

sbit jian_key = p3^7;

sbit zf_key=p3^5;

sbit stop_key=p3^4;

Bit flag = 0;

uchar num1, n;

uchar num=0, show_num=2, maichong=4, table_begin = 0;

uchar tabla de códigos 1[]={0x01, 0x02, 0x04 , 0x08, 0x08, 0x02, 0x 01};

tabla de códigos uchar[]={0x3f, 0x06, 0x5b, 0x4f,

0x66, 0x6d, 0x7d, 0x07 ,

0x7f, 0x6f, 0x77, 0x7c,

0x39, 0x5e, 0x79, 0x 71};

//Parte del retraso

Retraso no válido (uchar i)

{

uchar j, k;

for(j = I; j & gt0;j -)

for(k = 110;k & gt0;k-);

}

//Componente de visualización

Pantalla vacía()

{

dura = 0;

P0 = tabla[show_num];

dura = 1;

dura = 0;

wela = 0;

P0 = 0xfe

wela = 1;

wela = 0 ; Retraso(5);

P0 = tabla[0];

Dura = 1

Dura = 0 ;

P0 = 0xfd

wela = 1;

wela = 0;

Retraso(5);

}

//Parte de detección de teclado

void key()

{

if(jia_key==0)

{

Retraso(5);

if(jia_key==0)

{

num++;

Si (número= =4)

num = 3;

mientras(jia_key==0)

}

}

if(jian_key==0)

{

Retraso(5);

if(jian_key== 0)

{

si (núm! =0)

num-;

Otro

num = = 0;

mientras(Jian _ key = = 0);

}

}

if(zf_key==0)

{

Retraso(5);

if(zf_key==0)

{

bandera = ~ bandera

mientras(ZF_key == 0);

}

}

if(stop_key==0)

{

Retraso(4);

if(stop_key==0)

{

mostrar _

num = 0;

Maichong = 0

}

mientras(tecla de parada==0)

}

}

//Resultados de la prueba del teclado

void dispose()

{

Interruptor (número)

{

Caso 0:

Maichong = 5;

Rotura;

Caso 1:

Mai Chong = 4;

Romper

Caso 2:

Mai Chong = 3

Romper

; p>

Caso 3:

Mai Chong = 2;

Romper

}

Si (bandera == 0 )

{

tabla _ comenzar = 0

}

Otros

tabla _ comenzar = 4; ;

}

//Parte del controlador del tubo digital

void qudong()

{

uchar i , j;

for(j = tabla _ comenzar; j & lt4+tabla _ comenzar; j++)

{

p 1 =tabla[ j];

for(I = 0;i<Maichong;i++)

{

display();

}

}

}

//Parte de la función principal

void main()

{

mientras(1)

{ init();

clave();

dispose()

Qudong();

n++;

}

}

//Inicialización de interrupción del temporizador

inicialización nula()

{

TMOD = 0x 01;

TH0 = (65536-45872)/256;

TL0 = (65536-45872)% 256;

EA = 1; //Activar la interrupción del host

ET0 = 1; //Activar la interrupción del temporizador 0

TR0 = 1; //Iniciar temporizador 0

}

//Llamada de interrupción del temporizador

Voidt0 _ time() interrupción 1//interrupción t0

p>

{

TH0 =(65536-45872)/256;

TL0 =(65536-45872)% 256;

num 1+ +;

if(num1==600)

{

mostrar _ num = n;

num 1 = 0;

n = 0;

}

}