Control de velocidad del motor DC con microcontrolador 8051 (89c51,89c52) usando técnica PWM y controlador de motor l293d
Roberto Magalhães
Este es un proyecto/tutorial sencillo sobre cómo controlar la velocidad del motor de CC utilizando el microcontrolador 8051 (89c51,89c52). La velocidad del motor o ventilador de CC se controla mediante la técnica Pwm (modulación de ancho de pulso). Hay dos formas de generar una señal de modulación de ancho de pulso utilizando microcontroladores 8051 (89c51,89c52). Puede generarlo utilizando temporizadores de microcontrolador 8051 (89c51,89c52) O puede cambiar un pin específico (alto y bajo) tan rápidamente con un retraso arbitrario en la conmutación, que se genera un pulso como salida en el pin. La mejor y más sencilla forma controlada de generar una señal PWM es utilizar temporizadores internos del microcontrolador 89c51 y en este proyecto generaré PWM utilizando temporizadores del microcontrolador 8051 (89c51,89c52). PWM, en palabras simples, cambia el voltaje de salida en un pin específico al que se aplica variando el ciclo de trabajo de la forma de onda de salida. La frecuencia y el ciclo de trabajo de la señal PWM se pueden variar fácilmente utilizando los temporizadores del microcontrolador 8051. La siguiente figura le informará sobre las señales PWM y el ciclo de trabajo. El ciclo de trabajo de la señal original varía en el siguiente diagrama.
señal pwm
¿Qué es exactamente el ciclo de trabajo?
El ciclo de trabajo es el tiempo durante el cual la señal de salida permanece alta durante un período de onda. El período es el tiempo/duración total de un único ciclo de onda/reloj. Por lo tanto, el ciclo de trabajo es el tiempo/duración en un único ciclo de reloj durante el cual la salida permanece alta.
Ciclo de trabajo
Control de velocidad del motor con microcontrolador 8051 – Requisitos del proyecto
Ahora bien, ¿cómo generar estos retrasos utilizando los temporizadores del microcontrolador 8051 (89c51,89c52)? Hay dos temporizadores en el microcontrolador 89c51, Timer-0 y Timer-1. Puede utilizarlos con fines de retraso o para contar un evento, etc. Puede utilizar estos temporizadores en cuatro modos. Los estoy usando en modo de 16 bits. Para obtener más información sobre los temporizadores, sus modos e inicialización, siga el tutorial.
Temporizadores de microcontrol 8051 (89c52,89c51)
8051(89c52,89c51) son microcontroladores de 8 bits. Pero puedes usar tus temporizadores como de 16 bits. Para cargar valores de 16 bits en temporizadores se utilizan dos registros THx y TLx asociados a los temporizadores. Donde THx representa el byte alto del temporizador y TLx representa el byte bajo del temporizador (nota x es 0 o 1 dependiendo del temporizador que desee utilizar). Aquí estoy usando Timer-0, así que usaré los registros TH0 y TL0.
Mi ciclo de trabajo base es de 200 us, lo que significa que a 100 us el ciclo de trabajo será del 50 %. Un ciclo de trabajo del 50% significa que las señales positivas y negativas tienen la misma duración (tiempo). Puedes ver dos ondas sinusoidales (digitales) con ciclos de trabajo del 50 % y 75 % en la figura de la izquierda. Note la diferencia entre las dos ondas.
Calculé el retraso para 00, 20 us, 40 us, 100 us, 160 us, 180 us, 500 us, 800 us y 100 us y cargué los valores obtenidos por el resultado en los registros TH0 y TL0. Las fórmulas para calcular el retraso se dan a continuación con un ejemplo.