Sistemas Digitales de Mando y Control Práctica 5 Sensor de Temperatura OBJETIVO Realizar un programa para el sensado de temperatura el cual pueda ser desplegado en la pantalla de cristal líquido. INTRODUCCION En la práctica anterior se estudió el funcionamiento del convertidor Analógico-Digital el cual esta destinado a monitorizar valores que necesitan ser traducidos para ser entendidos por el sistema de control. Una de tantas aplicaciones que tiene el convertidor es la de monitorizar valores de temperatura proporcionado por un sensor analógico. Uno de los sensores analógicos más ampliamente utilizados es el de temperatura. En el mercado existen muchos modelos de sensores de temperatura y su elección depende de diversos parámetros, como pueden ser el rango de temperaturas que sean capaces de admitir, la precisión necesaria, el coste, la resistencia que debe presentar a ciertas condiciones ambientales, etc. Uno de los sensores más utilizados es el LM35, también llamado estándar. Sus características son: Su tensión de salida VOUT es proporcional a la temperatura en una proporción de 10 mV/oC. Su rango de funcionamiento está comprendido entre 0 oC y 100 oC. Su tensión de funcionamiento VS está entre +4 VDC y +30 VDC. Su precisión es de ±0.9 oC. El sensor analógico LM35 debe tener un adecuador para poder tener una región de trabajo, para tal efecto se colocará un amplificador entre el sensor y la entrada del canal 0 del PIC, como muestra el diagrama esquemático. Se recomienda el amplificador operacional de tecnología MOS TL081 que tiene una alta impedancia de entrada y tiene poco offset de entrada o amplificadores de instrumentación. REGISTROS DE TRABAJO El funcionamiento del convertidor Analógico-Digital requiere la manipulación de cuatro registros: 1. 2. 3. 4. ADRESH. Parte alta del resultado de la conversión. ADRESL. Parte baja del resultado de la conversión. ADCON0. Registro de Control 0. ADCON1. Registro de Control 1. 1 Sistemas Digitales de Mando y Control Práctica 5 Sensor de Temperatura En la pareja de registro ADRESH :ADRESL se deposita el resultado de la conversión, que al estar compuesta por 10 bits, sólo son significativos 10 de los bits de dicha pareja. El registro ADCON0 controla la operación del Convertidor Analógico-Digital, mientras que el ADCON1 sirve para configurar las patitas del Puerto A como entradas analógicas o E/S digitales. Se seleccionará el canal 0 (RA0) para introducir la señal analógica a convertir. El bit GO / DONE es el bit de estado de la conversión. Poniéndolo a 1 se inicia la conversión y mientras esté a 1 está realizándose dicha operación. Cuando GO / DONE pasa a 0 confirma el final de la conversión y la puesta del resultado en la pareja de registros ADRESH:ADRESL. El bit ADON sirve para activar el Convertidor A / D poniéndolo a 1 y para inhibir su funcionamiento poniéndolo a 0. A continuación, se indican los pasos que hay que efectuar para realizar una conversión Analógica-Digital: 1. Configura el módulo Convertidor Analógico-Digital. o Configurar las patitas que actuarán como entradas analógicas, las que trabajan como E / S digitales y las usadas para la tensión de referencia (ADCON1). o Seleccionar el reloj de la conversión (ADCON0). o Seleccionar el canal de entrada A / D (ADCON0). o Activar el módulo A / D (ADCON0). 2. Activar, si se desea, la interrupción escribiendo sobre PIE1 y PIR1. o Borrar el señalizador ADIF. o Poner a 1 el bit ADIE. o Poner a 1 los bits habilitadores GIE y PEIE. 3. Tiempo de espera para que transcurra el tiempo de adquisición. 4. Inicio de la conversión. o Poner a 1 el bit GO / DONE (ADCON0). 5. Tiempo de espera para completar la conversión A / D que puede detectarse. o Por la exploración del bit GO/DONE, que al interpretarse la conversión pasa a 0. o Esperando a que se produzca la interrupción si se ha programado, al finalizar la conversión. o Aunque no se permita interrupción, el señalizador ADIF se pondrá a 1 al finalizar la conversión. 6. Leer el resultado en los 10 bits válidos de ADRESH: ADRESL y borrar la bandera ADIF. 7. Para una nueva conversión regresar al paso 1º. O al 2º. El tiempo de conversión por bit está definido por TAD. Se exige esperar un mínimo de 2 * TAD para reiniciar una nueva conversión. 2 Sistemas Digitales de Mando y Control Práctica 5 Sensor de Temperatura DIAGRAMA DE FLUJO El diagrama de flujo muestra claramente los pasos que hay que efectuar para realizar la conversión analógica – digital del sensor de temperatura LM35. 3 Sistemas Digitales de Mando y Control Práctica 5 Sensor de Temperatura DIAGRAMA ESQUEMATICO Se utilizó el canal analógico 0 (Puerto A, RA0 ) en el cual se conectó un potenciómetro de 10 KΩ multi-vueltas. Para el efectivo desarrollo de esta práctica se necesita de los siguientes materiales: 1 Fuente DC de 5 volts. 1 Fuente DC simétrica ±12 volts. 1 Microcontrolador PIC16F877. 1 Cristal de 4 Mhz. 2 Capacitores 33 pf. 1 LCD. 1 LM35 (sensor de temperatura). 1 TL081 (amplificador operacional). 1 Protoboard. 1 resistencias de 10 kΩ. 1 resistencias de 100 Ω. 1 Potenciómetro de 10 KΩ multi-vueltas. 1 Push button. Cable. Pinzas . 4 SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 5 Sensor de Temperatura CÓDIGO FUENTE ;*********************************************************************** ;**************** Programa para sensar la temperatura y **************** ;************************ desplegarla en una LCD *********************** ;*********************************************************************** LIST P=16F877 include<p16f877.inc> PCL ESTADO PUERTOB PUERTOD PCLATH RDELAY CONTA0 CONTA1 CONTA2 Letra Flinea RESULTADO CONTA3 EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 0x02 0x03 0x06 0X08 0X0A 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 ;Constantes para el programa ;*************************** Linea1LCD Linea2LCD ClrLCD CasaLCD IncLCD DecLCD OnLCD OfLCD OnCursor OffCursor BlinkCursor IzqLCD DerLCD IzqCursor DerCursor FuncionLCD RS ;RW E W F EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 0x80 0xC0 0x01 0x02 0x07 0x05 0x0C 0x08 0x0E 0x0C 0x0F 0x18 0x1C 0x10 0x14 0x38 6 1 7 0 1 ORG goto ORG 0 INICIAR 5 ;* IZQUIERDA ;* DERECHA ;Pantalla de dos lineas ;Comandos o Caracteres ;Escritura al LCD ;Habilitacion para el LCD ;Registro W ;Registro de trabajo 5 SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 5 Sensor de Temperatura ;PROGRAMA PRINCIPAL ;****************** INICIAR call call call rb1 movlw Linea1LCD call movlw movwf clrf rb2 medir Port_LCD Ini_LCD Port_ADC Comando_LCD 0x0f Flinea Letra movf Letra,W call Mensaje call Caracter_LCD call delay incf Letra,F decfsz Flinea,F goto rb2 movlw Linea2LCD call Comando_LCD call movf call bcf call call movf call bcf call call movlw call call movf call bcf bcf call call movlw call goto MEDICION RESULTADO,W Tabla2 PCLATH,0 Caracter_LCD delay RESULTADO,W Tabla1 PCLATH,1 Caracter_LCD delay A',' Caracter_LCD delay RESULTADO,W Tabla0 PCLATH,0 PCLATH,1 Caracter_LCD delay Linea2LCD Comando_LCD medir ;Inicializa el LCD ;inicializa el convertidor ;Poner señal para empezar ;a mandar datos 0x80 ;w=15 para 15 datos ;registro Flinea=15 ;registro que va a moverse sobre la tabla ;Muestra el mensaje ;Manda el caracter al LCD ;Lo muestra por un tiempo de ---; F=1 en el registro si F= 0 en W ;Poner señal para empezar ;a mandar datos 0x80 ;registro que va a moverse sobre la tabla ;Muestra el mensaje ;Manda el caracter al LCD ;Lo muestra por un tiempo de ---;Muestra el mensaje ;Manda el caracter al LCD ;Lo muestra por un tiempo de ---;Manda el caracter al LCD ;Lo muestra por un tiempo de ---;Muestra el mensaje ;Manda el caracter al LCD ;Lo muestra por un tiempo de ---- 6 SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 5 Sensor de Temperatura ; Inician las subrutinas ;***************************************************** Port_ADC bsf movlw movwf movlw movwf bcf Port_LCD bsf ESTADO,5 clrf PUERTOD clrf PUERTOB bcf ESTADO,5 bcf PUERTOD,E return ;Configura los Puertos del PIC ;configura al puerdo D como salidas ;;configura al puerdo B como salidas call movlw call call movlw call call movlw call call movlw call movlw call movlw call movlw call movlw call return ;Inicializa el LCD ;w<-0X38 Ini_LCD STATUS,RP0 b'00011111' PORTA b'00000000' ADCON0 STATUS,RP0 retardo FuncionLCD Comando_LCD retardo FuncionLCD Comando_LCD retardo FuncionLCD Comando_LCD retardo FuncionLCD Comando_LCD OnLCD Comando_LCD ClrLCD Comando_LCD DecLCD Comando_LCD CasaLCD Comando_LCD ;E equ 7 enable del LCD ;0X38 ;0X38 ;0X38 ;0x0c ;0x01 ;0x05 ;0x02 Comando_LCD bcf bcf movwf call return PUERTOD,RS PUERTOD,E ; PUERTOB Habilita_LCD ;Manda un comando al LCD RS equ 0 Caracter_LCD bsf bcf movwf call return PUERTOD,RS PUERTOD,E PUERTOB Habilita_LCD ;Manda un caracter o dato al LCD MEDICION ADCON0,0 espera20u ADCON0,2 bsf call bsf 7 SISTEMAS DIGITALES DE MANDO Y CONTROL espera btfsc goto movf movwf bcf return ADCON0,2 espera ADRESH,0 RESULTADO ADCON0,0 PRÁCTICA 5 Sensor de Temperatura ; ;RETARDO DE 255 MICRO SEG ;************************ Habilita_LCD bsf movlw movwf t1 decfsz goto bcf return PUERTOD,E 0xFF RDELAY RDELAY,F t1 PUERTOD,E ;Habilita el LCD retardo movlw movwf movlw movwf movlw movwf decfsz goto decfsz goto decfsz goto return 0x01 CONTA0 0x64 CONTA1 0x64 CONTA2 CONTA2,F ret0 CONTA1,F ret1 CONTA0,F ret2 ;Retardo movlw movwf movlw movwf movlw movwf decfsz goto decfsz goto decfsz goto return 0xD0 CONTA0 0xD0 CONTA1 0x01 CONTA2 CONTA2,F re0 CONTA1,F re1 CONTA0,F re2 ;Retardo movlw movwf decfsz goto return 0x05 CONTA3 CONTA3,1 retardo1 ret2 ret1 ret0 delay re2 re1 re0 espera20u retardo1 8 SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 5 Sensor de Temperatura Mensaje addwf PCL,1 ;Mensaje a desplegar en el LCD retlw A'T' retlw A'E' retlw A'M' retlw A'P' retlw A'E' retlw A'R' retlw A'A' retlw A'T' retlw A'U' retlw A'R' retlw A'A' retlw A' ' retlw 0XA5 retlw A'C' retlw A' ' retlw A' ' ORG 0X100 bsf PCLATH,0 addwf PCL,1 ;Mensaje a desplegar en el LCD retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'0' retlw A'1' retlw A'1' retlw A'1' retlw A'1' retlw A'1' retlw A'1' retlw A'1' retlw A'1' retlw A'1' retlw A'1' retlw A'1' Tabla2 9 retlw retlw retlw retlw retlw retlw retlw retlw retlw A'1' A'1' A'1' A'1' A'1' A'1' A'1' A'1' A'1' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'4' A'4' A'4' A'4' SISTEMAS DIGITALES DE MANDO Y CONTROL retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw PRÁCTICA 5 Sensor de Temperatura retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' 10 A'6' A'6' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' SISTEMAS DIGITALES DE MANDO Y CONTROL retlw retlw retlw retlw retlw retlw retlw retlw PRÁCTICA 5 Sensor de Temperatura A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' ORG 0X200 bsf PCLATH,1 addwf PCL,1 ;Mensaje a desplegar en el LCD retlw A'0' retlw A'0' retlw A'1' retlw A'1' retlw A'2' retlw A'2' retlw A'3' retlw A'3' retlw A'4' retlw A'4' retlw A'5' retlw A'5' retlw A'6' retlw A'6' retlw A'7' retlw A'7' retlw A'8' retlw A'8' retlw A'9' retlw A'9' retlw A'0' retlw A'0' retlw A'1' retlw A'1' retlw A'2' retlw A'2' retlw A'3' retlw A'3' retlw A'4' retlw A'4' retlw A'5' retlw A'5' retlw A'6' retlw A'6' retlw A'7' retlw A'7' retlw A'8' retlw A'8' retlw A'9' retlw A'9' retlw A'0' Tabla1 11 retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' SISTEMAS DIGITALES DE MANDO Y CONTROL retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw PRÁCTICA 5 Sensor de Temperatura retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'7' A'7' A'8' A'8' A'9' A'9' A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' 12 A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 5 Sensor de Temperatura ORG 0X300 bsf PCLATH,0 bsf PCLATH,1 addwf PCL,1 ;Mensaje a desplegar en el LCD retlw A'0' retlw A'5' retlw A'0' retlw A'5' retlw A'0' retlw A'5' retlw A'0' retlw A'5' retlw A'0' retlw A'5' retlw A'0' retlw A'5' retlw A'0' retlw A'5' retlw A'0' retlw A'5' retlw A'0' retlw A'5' retlw A'0' retlw A'5' Tabla0 retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' 13 retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' SISTEMAS DIGITALES DE MANDO Y CONTROL retlw A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' PRÁCTICA 5 Sensor de Temperatura 14 retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw return en A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' SISTEMAS DIGITALES DE MANDO Y CONTROL PRÁCTICA 5 Sensor de Temperatura 15