You are on page 1of 10

TERMMETRO DIGITAL CON LM35 Y PIC 18f4550

Karen Daniela Escorcia Otlora: 174827 1Mara Anglica Gmez Gordillo: 01174788; 1Andrea Estefana Rocha Abella: 01174793 2 Jaime Villalobos
1Estudiantes

Nacional de Colombia Fundamentos de electricidad y magnetismo 2 Profesor Bogot, D. C., 21de junio de 2012

1,2 Universidad

OBJETIVOS OBJETIVO GENERAL: Construir un termmetro digital tomando como base los fundamentos adquiridos durante el curso de Fundamentos de Electricidad y Magnetismo. OBJETIVOS ESPECIFCOS: Aplicar los conceptos adquiridos de circuitos. Integrar este trabajo con temticas que se manejan en nuestra carrera. RESUMEN El circuito se basa en 2 componentes principales el sensor de temperatura LM35 y el PIC18f4550. El LM35 es un sensor de temperatura con una precisin calibrada de 1C y un rango que abarca desde 0-100C. Esto quiere decir, que por cada 1C en la variacin de la temperatura, el sensor en su salida obtendr una variacin de 10 mv. Este voltaje es el que se incerta al PIC 18f4550 el cual a travs de su conversor A/D mostrar los datos en la pantalla LCD. INTRODUCCIN Microcontrolador 18F4550 El PIC 18F4550, pertecene a los microcontroladores PIC18 de gama alta. Posee una arquitectura RISC (reduced instruction set computer) de 16 bits longitud de instrucciones y 8 bits de datos. La tabla muestra en resumen las caractersitcas fundamentales de este microcontrolador y de sus antecesores los PIC18F2455/2550/4455.

CARACTERSTICAS Frecuencia de Operacin Memoria de Programa (bytes) Memoria RAM de Datos (bytes)

PIC18F2455 Hasta 48MHz 24.576 2.048

PIC18F2450 Hasta 48MHz 32.768 2.048

PIC18F4455 Hasta 48MHz 24.576 2.048

PIC18F4550 Hasta 48MHz 32.768 2.048

Memoria EEPROM Datos (bytes) Interrupciones Lneas de E/S Temporizadores Mdulos de Comparacin/Captura/PWM (CCP) Mdulos de Comparacin/Captura/PWM mejorado (ECCP) Canales de Comunicacin Serie Canal USB Puerto Paralelo de Transmisin de Datos (SPP) Canales de Conversin A/D de 10 bits Comparadores analgicos Juego de instrucciones Encapsulados

256 19 24 4 2 0 MSSP.EUSART 1 0 10 Canales 2 75 (83 ext.) PDIP28 pines SOIC28 pines

256 19 24 4 2 0 MSSP.EUSART 1 0 10 Canales 2 75 (83 ext.) PDIP28 pines SOIC28 pines

256 20 35 4 1 1 MSSP.EUSAR 1 1 13 Canales 2 75 (83 ext.)

256 20 35 4 1 1 MSSP.EUSAR 1 1 13 Canales 2 75 (83 ext.)

PDIP40 pines PDIP40 pines QFN 40 pines QFN 40 pines TQFP 40 pines TQFP 40 pines

Pines del PIC18F4550

Diagrama de Bloques

Organizacin de la Memoria El uC PIC18F4550 dispone de las siguientes memorias: Memoria de programa: memoria flash interna de 32.768 bytes. Almacena instrucciones y constantes/datos Puede ser escrita/leda mediante un programador externo o durante la ejecucin programa mediante unos punteros. Memoria RAM de datos: memoria SRAM interna de 2048 bytes en la que estn incluidos los registros de funcin especial. Almacena datos de forma temporal durante la ejecucin del programa Puede ser escrita/leda en tiempo de ejecucin mediante diversas instrucciones. Memoria EEPROM de datos: memoria no voltil de 256 bytes. Almacena datos que se deben conservar aun en ausencia de tensin de alimentacin Puede ser escrita/leda en tiempo de ejecucin a travs de registros. Pila: bloque de 31 palabras de 21 bits. Almacena la direccin de la instruccin que debe ser ejecutada despus de una interrupcin o subrutina.

Memoria de configuracin: memoria en la que se incluyen los bits de configuracin (12 bytes de memoria flash) y los registros de identificacin (2 bytes de memoria de solo lectura). Se trata de un bloque de memoria situado a partir de la posicin 30000H de memoria de programa (ms all de la zona de memoria de programa de usuario). En esta memoria de configuracin se incluyen: Bits de configuracin: contenidos en 12 bytes de memoria flash permiten la configuracin de algunas opciones del uC como: - Opciones del oscilador. - Opciones de reset. - Opciones del watchdog. - Opciones de la circuiteria de depuracin y programacin. - Opciones de proteccin contra escritura de memoria de programa y memoria EEPROM de datos. Estos bits se configuran generalmente durante la programacin del uC, aunque tambin pueden ser ledos y modificados durante la ejecucin del programa. Registros de identificacin: se trata de dos registros situados en las direcciones 3FFFFEH y 3FFFFFH que contienen informacin del modelo y revisin del dispositivo. Son registros de solo lectura y no pueden ser modificados por el usuario. Arquitectura del Hadware El uC PIC18F4550 dispone buses diferentes para el acceso a memoria de programa y memoria de datos (arquitectura Harvard): Bus de la memoria de programa: - 21 lneas de direccin - 16/8 lneas de datos (16 lneas para instrucciones/8 lneas para datos) Bus de la memoria de datos: - 12 lneas de direccin - 8 lneas de datos Esto permite acceder simultneamente a la memoria de programa y a la memoria de datos. Es decir se puede ejecutar una instruccin (lo que por lo general requiere acceso a memoria de datos) mientras se lee de la memoria de programa la siguiente instruccin (proceso pipeline).

Sensor de temperatura LM35 Este sensor posee 3 patas, dos de ellas para alimentarlo y la tercera nos entrega un valor de tensin proporcional a la temperatura medida por el dispositivo, no necesita calibracin externa. *La salida es lineal y entrega 10mV/C. *Rango de utilizacin: -55C < T < +150C.

*Rango de alimentacin 4 a 30 voltios. *Consumo: 60 microA (en reposo). *Regulador de voltaje 7805. *Regulador de voltaje variable LM317. *Encapusado: El sensor se encuentra disponible en diferentes encapsulados pero el mas comn es el TO-92, una cpsula comnmente utilizada por los transistores de baja potencia, como el BC548 o el 2N2904. Tiene tres pines: alimentacin (VCC), tierra (GND) y salida (OUT). Este sensor es fabricado por Fairchild y National Semiconductor.

MATERIALES

Sensor de temperatura LM35 Microcontroladorpic18f4550 Pantalla LCD 16x2 Protoboard Oscilador de 20MHz Condensador 20pF (2) Potencimetro 10K Cable para protoboard

PROCEDIMIENTO

1. Se realiz la respectiva programacin del microcontroladorpic18f4550(en un software llamado MPLAB), ajustando de esta forma la precisin en las mediciones y se calibra el instrumento.

Imagen 1: Algoritmo utilizado para el microcontrolador pic 18f4550.

#include <p18f4550.h> #define ADC_BITS 10 #define COMANDO 1 #define DATO 0 voidConfiguraADC (void); unsigned char LeeADC (void); voidEscribeLCD (unsigned char dato, char tipo); voidConfiguraLCD (void); voidRetardo (void); void Retardo1 (void); void main (void) { longb,c,d,e,f,g,h,i; chardatoLCD; float A,C; long B;

char char char char char char

dec; uni; cen; mil; mmil; uni1;

TRISB=0; TRISC=0; TRISD=0; TRISE=0; ADCON1=0X0F; ConfiguraLCD (); ConfiguraADC();

EscribeLCD(datoLC D, DATO); Retardo(); datoLCD='S'; EscribeLCD(datoLC D, DATO); Retardo(); datoLCD='O'; EscribeLCD(datoLC D, DATO); Retardo(); datoLCD='R'; EscribeLCD(datoLC D, DATO); Retardo(); Retardo1();

int

DatoADC;

datoLCD='S'; EscribeLCD(datoLC D, DATO); Retardo(); datoLCD='E'; EscribeLCD(datoLC D, DATO); Retardo(); datoLCD='N';

while(1) { PORTCbits.RC1=1; LeeADC();

A=LeeADC();

C=A; '='; C=(C*100)/255; B=C*1000; b=B/10000; c=B%10000; d=c/1000; e=c%1000; f=e/100; g=e%100; h=g/10; i=g%10;

datoLCD=

EscribeLCD(datoLC D, DATO); Retardo(); datoLCD= ' '; EscribeLCD(datoLC D, DATO); Retardo(); PORTCbits.RC1=1; datoLCD= b+0x30;

EscribeLCD(datoLC D, DATO); Retardo(); datoLCD= 0xDF; EscribeLCD(datoLC D, DATO); Retardo(); datoLCD= 'C'; EscribeLCD(datoLC D, DATO); Retardo1();

datoLCD= 0b00000001; EscribeLCD(datoLC D, COMANDO); Retardo(); datoLCD= 'T'; EscribeLCD(datoLC D, DATO); Retardo(); datoLCD= 'E'; EscribeLCD(datoLC D, DATO); Retardo(); datoLCD= 'M'; EscribeLCD(datoLC D, DATO); Retardo(); datoLCD= 'P'; EscribeLCD(datoLC D, DATO); Retardo();

EscribeLCD(datoLC D, DATO); Retardo(); datoLCD= d+0x30; EscribeLCD(datoLC D, DATO); Retardo(); datoLCD= ','; EscribeLCD(datoLC D, DATO); Retardo(); datoLCD= f+0x30; EscribeLCD(datoLC D, DATO); Retardo(); datoLCD= h+0x30; EscribeLCD(datoLC D, DATO); Retardo(); datoLCD= i+0x30;

} }

unsigned char Conf_Timer(void) { PR2=230; PIR1bits.TMR2IF=0; T2CON=0b0111111 1; }

voidConfiguraADC (void) { ADCON0=0b00000 101; ADCON1=0b00011 101; ADCON2=0b00000 101; } unsigned char LeeADC (void) { ADCON0bits.GO_D ONE=1; while(ADCON0bits.

GO_DONE==1); return ADRESH; }

} voidConfiguraLCD (void) { unsignedchar datoLCD; Retardo(); datoLCD= 0b00000010; EscribeLCD(datoLC D, COMANDO); Retardo(); datoLCD= 0b00111000; EscribeLCD(datoLC D, COMANDO); Retardo(); datoLCD= 0b00001100; EscribeLCD(datoLC D, COMANDO); Retardo(); datoLCD= 0b00000110; EscribeLCD(datoLC D, COMANDO);

Retardo(); datoLCD= 0b00000001; EscribeLCD(datoLC D, COMANDO); Retardo(); } void Retardo1 (void) { int i, j; for(i=0;i<32000;i++ ) { j=j+1; } } voidRetardo (void) { inti,j; for(i=0;i<150;i++) { j=j+1; } }

voidEscribeLCD (unsigned char dato, char tipo) { if(tipo==DATO) { PORTEbits.RE0=1; } else { PORTEbits.RE0=0; } PORTEbits.RE1=0; PORTD=dato; PORTEbits.RE2=1; Retardo(); PORTEbits.RE2=0;

2. Simulacin en un programa llamado Proteus.

RESULTADOS Imagen 2: Montaje del termmetro Digital

Imagen 3: Pantalla LED 16x2

CONCLUSIONES Este proyecto permiti darnos a entender sobre el funcionamiento del termmetro digital, para determinar temperaturas de cuerpos y/o soluciones, siendo lo segundo nuestro punto de inters. Se aplicaron conceptos bsicos aprendidos durante el curso, en especial nos basamos en un circuito en serie. Se obtuvo un termmetro digital con una precisin en la medida de 3 cifras decimales, lo cual nos da una cantidad con mayor precisin.

BIBLIOGRAFA (1) Datasheet Catalog for integrated circuits. http://www.datasheetcatalog.com/ (Consultado 08/06/12). (2) PIC 18F4550 - ORGANIZACIN DE LA MEMORIA http://www.electromicrodigital.com/site2/index.php?option=com_content&view=article &id=90&Itemid=29&limitstart=1 (Consultado 06/06/12). (3) LM35- UControl http://www.ucontrol.com.ar/wiki/index.php/LM35 (Consultado 15/06/12). (4) http://www.electromicrodigital.com/site2/index.php?option=com_content&view=article &id=90&Itemid=29&limitstart=1