Red de conocimiento informático - Conocimiento sistemático - Solicitud: Diseño de programación C del microcontrolador de control de circuito cerrado de motor de CC

Solicitud: Diseño de programación C del microcontrolador de control de circuito cerrado de motor de CC

2. Diagrama de bloques del hardware: la parte del hardware consta principalmente de un potenciómetro, un módulo de conversión analógico a digital, un microcontrolador 51, un módulo de visualización, un circuito de accionamiento y un motor CC sin escobillas (sensor Hall incorporado). Su diagrama de bloques funcional es el siguiente: El principio básico del diagrama de bloques: ingrese un valor inicial de velocidad a través del teclado, ajuste el potenciómetro giratorio para ajustar un voltaje dado Un, DCOUT está conectado al canal IN0 de ADC0809 y está conectado al microcontrolador 51 a través del chip ADC0809 para formar un módulo de conversión de analógico a digital. La señal digital resultante se muestra en la pantalla LCD. Se emite una señal de pulso PWM desde el puerto P1.0 del microcontrolador para impulsar el motor de CC a través del circuito de accionamiento. Después de que el sensor Hall dentro del motor de CC mide la velocidad real, la señal de pulso se devuelve al microcontrolador y se compara con. La velocidad dada para el control de bucle cerrado. La velocidad alcanza la velocidad dada. Cuando la velocidad es alta, la pantalla LCD muestra la velocidad dada en tiempo real. 3. Los pasos funcionales son los siguientes: 1. Configuración de parámetros La velocidad del motor está determinada por el potenciómetro proporcionado. Principio del potenciómetro (como se muestra a continuación): cuando el contacto central C del potenciómetro se desliza sobre el potenciómetro, se puede obtener una señal de voltaje. Este rango de voltaje es 0 ~ VCC (+5 V), que es una señal analógica. Luego, el error de velocidad proporcional y el error de velocidad integral se determinan en función del valor de velocidad requerido y el valor de velocidad real. Con estos dos valores, puede utilizar la siguiente fórmula para calcular el nuevo ciclo de trabajo: NewDutyCycle (nuevo ciclo de trabajo) = Kp (error de velocidad proporcional) + Ki (error de velocidad integral, luego convierta el NewDutyCycle de 10 bits (nuevo ciclo de trabajo); valor) se carga en los 3 registros de ciclo de trabajo PWM. Utilice el algoritmo PI para calcular el nuevo valor de DutyCycle, que se cargará en el registro PDCx. void CalculateDC (void) { Velocidad Desirada = Velocidad Desirada3 3; si (VelocidadActual > VelocidadDesirada) VelocidadError = VelocidadDesirada = 1; ; } Velocidad Integral + = SpeedError; if (Velocidad Integral > 9000) Velocidad Integral = 0; DutyCycle = ( (largo) Ksp 3 (largo) SpeedError + (largo) Ksi3 (largo) Velocidad Integral) > > 12) ; DesiredSpeed ​​= DesiredSpeed ​​/3 si (Banderas. Menos) DutyCycle = DesiredSpeed ​​+ DutyCycle; de ​​lo contrario DutyCycle = DesiredSpeed ​​- DutyCycle si (DutyCycle < 100) DutyCycle = 100; si (DutyCycle > 1250) {DutyCycle = 1250; Velocidad Integral = 0; } PDC1 = DutyCycle; PDC2 = PDC3 = PDC1; 2. Conversión analógica a digital: la señal de voltaje transmitida por el potenciómetro está conectada; al canal IN0 de ADC0809, y ADC0809 realiza muestreo. ADC0809 consta de un interruptor analógico de 8 vías, un pestillo de dirección y decodificador, un convertidor A/D y un pestillo de salida de tres estados. El conmutador multicanal puede seleccionar 8 canales analógicos, lo que permite 8 entradas analógicas en tiempo compartido, y se puede convertir mediante un convertidor A/D.

ADC0809 tiene un pestillo de salida interno y se puede conectar directamente al microcontrolador AT89S51. Durante la inicialización, las señales ST y OE son todas de bajo nivel, y ST es la señal de inicio de conversión. Cuando ST aumenta en el flanco ascendente, todos los registros internos se borran en el flanco descendente, la conversión A/D comienza durante la conversión y ST debe permanecer bajo; EOC es la señal de fin de conversión. Cuando el EOC es alto, indica que la conversión se completó; de lo contrario, indica que la conversión A/D está en progreso; OE es la señal de habilitación de salida, que se utiliza para controlar los datos convertidos desde los tres pestillos de salida a la salida del microcontrolador. OE = 1, genera los datos convertidos; OE = 0, la línea de datos de salida está en un estado de alta impedancia. D7-D0 son líneas de salida digital. CLK es la línea de señal de entrada del reloj. Dado que ADC0809 no tiene un circuito de reloj interno, la señal de reloj requerida debe ser proporcionada por el mundo exterior. La frecuencia habitual es 500 KHZ.