Controlador Temperatura
Controlador Temperatura
Controlador Temperatura
Junio 2009
Objetivo: Implementar un control de temperatura, aplicando los temas
vistos en el curso.
Los elementos externos son pocos, pero necesarios para el funcionamiento del proyecto. En la
figura 1 vemos el diagrama a bloques del proyecto.
R(s) + H(s)
Control
-
H(s)
Para poder ver los valores de las señales, usaremos el modulo de Labview para visualizar datos
del puerto serie. Este modulo, es muy sencillo de implementar y tiene la ventaja de que
podemos conectar el controlador a cualquier computadora que disponga de este software para
realizar mediciones.
;*****************************************************************
;* Proyecto Final Microprocesadores *
;* Equipo 9 *
;* *
;* Termostato usando el PWM del mc9s12 y el puerto serial *
;*****************************************************************
; variable/data section
ORG RAMStart
; Insert here your data definition. For demonstration, temp_byte is used.
ref rmb 1
sensor rmb 1
error rmb 1
; code section
ORG ROMStart
Entry: LDS #RAMEnd
MOVB #$80,ATDCTL2 ; Se enciende el ATD.
ldaa #$FF ;retardo para estabilizar la inicializacion del atd
loop deca
bne loop
MOVB #$FF,DDRT ;Puerto T como salida
MOVB #$81,ATDCTL4 ; PROGRAMO TIMING
movw #26,SCI0BD ;prog vel de tranms 9600 bps
movb #$08,SCI0CR2 ;prendiendo la transmision
movb #$00,PWMCTL ;modo 8-bit
movb #$FF,PWMPOL ;Polaridad en High
movb #$00,PWMCAE ;alineado a la izquierda
movb #$00,PWMCLK ;PCLK3 = 0
movb #$70,PWMPRCLK ;PCKB = 7 division entre 128
movb #$FF,PWMPER3 ;Periodo del PWM igual a 255
movb #$08,PWME ;Habilta el canal 3 del PWM
MAYOR BSET PTT,#$02 ;La resta es negativa, por lo tanto se enciende el calefactor
BRA SIGUE
MENOR BCLR PTT,#$02 ;Apaga el calefactor
movb error,PWMDTY3 ;La resta es positiva, por lo tanto el valor sensado es mayor que la ref, y el ventilador enciende
;con un ciclo de trabajo de (error/255)*100
transmit brclr SCI0SR1,#$80,transmit
stab SCI0DRL ;Salida hacia el puerto serie para monitorear la temperatura
En la tabla 1, vemos los datos simplificados, ya que la tabla completa es de 256 valores, en el
que encontramos que para tener el dato en grados centígrados, es necesario multiplicar por
una constante de proporcionalidad de 0.19607, los datos en código hexadecimal.
En la figura 5 vemos los valores del ATD para una resolución de 8 bits, y es de esta forma como
programamos el ATD en el programa principal. El PWM lo fijamos para un periodo de 255, y el
ciclo de trabajo es proporcional al error encontrado por la resta del valor del sensor, menos el
valor de la referencia. La comunicación serie se da con una velocidad de 9600 bps y se envían
dos datos, el valor del sensor, y el valor de la referencia. Esta señal se envía por código ASCII
al puerto serie de la computadora, por lo que es necesario implementar una interface que
decodifique los datos y los muestre como valor numérico. La interface la implementamos con el
programa Labview 6i.
En el diagrama 2 vemos el diagrama simplificado del termostato, y usamos un amplificador con
ganancia de 10 para acondicionar la señal del sensor LM35, a la entrada de ambas señales se
les coloco un circuito RC a manera de debouncing. La salida del canal del PWM, se envía a un
transistor que hace funcionar un ventilador.
BIBLIOGRAFIA