Está en la página 1de 11

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
1,2

Universidad Nacional de Colombia


Estudiantes Fundamentos de electricidad y magnetismo

Profesor

Bogot, D. C., 21de junio de 2012


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

PIC18F245
PIC18F445
PIC18F2450
PIC18F4550
5
5

Frecuencia de Operacin

Hasta

Hasta 48MHz Hasta

Hasta 48MHz

48MHz

48MHz

Memoria de Programa (bytes) 24.576

32.768

24.576

32.768

Memoria RAM de Datos


(bytes)

2.048

2.048

2.048

2.048

Memoria EEPROM Datos


(bytes)

256

256

256

256

Interrupciones

19

19

20

20

Lneas de E/S

24

24

35

35

Temporizadores

Mdulos de
Comparacin/Captura/PWM
(CCP)

Mdulos de
Comparacin/Captura/PWM
mejorado (ECCP)

Canales de Comunicacin
Serie

MSSP.EUSAR MSSP.EUSAR MSSP.EUSA


MSSP.EUSAR
T
T
R

Canal USB

Puerto Paralelo de
Transmisin de Datos (SPP)

Canales de Conversin A/D


de 10 bits

10 Canales

10 Canales

13 Canales 13 Canales

Comparadores analgicos

Juego de instrucciones

75 (83 ext.) 75 (83 ext.)

Encapsulados

PDIP40
PDIP28 pines
pines QFN
PDIP28 pines
SOIC28
40 pines
SOIC28 pines
pines
TQFP 40
pines

Pines del PIC18F4550

75 (83 ext.) 75 (83 ext.)


PDIP40 pines
QFN 40 pines
TQFP 40
pines

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.

long B;
#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);

int
DatoADC;
char
char
char
char
char
char

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

TRISB=0;
TRISC=0;
TRISD=0;
TRISE=0;
ADCON1=0X0F;

longb,c,d,e,f,g,h,i;
chardatoLCD;
float A,C;

EscribeLCD(datoLCD,
DATO);
Retardo();
datoLCD='N';
EscribeLCD(datoLCD,
DATO);
Retardo();
datoLCD='S';
EscribeLCD(datoLCD,
DATO);
Retardo();
datoLCD='O';

ConfiguraLCD
();

void main (void)


{

EscribeLCD(datoLCD,
DATO);
Retardo();
datoLCD='E';

ConfiguraADC();

datoLCD='S';

EscribeLCD(datoLCD,
DATO);
Retardo();
datoLCD='R';
EscribeLCD(datoLCD,
DATO);

Retardo();
Retardo1();

DATO);
Retardo();
datoLCD= 'E';

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

EscribeLCD(datoLCD,
DATO);
Retardo();

A=LeeADC();

EscribeLCD(datoLCD,
DATO);
Retardo();
datoLCD=
d+0x30;
EscribeLCD(datoLCD,
DATO);

datoLCD= 'M';
C=A;
C=(C*100)/255;
B=C*1000;

Retardo();
EscribeLCD(datoLCD,
DATO);
Retardo();

datoLCD= ',';
EscribeLCD(datoLCD,
DATO);

datoLCD= 'P';
b=B/10000;
c=B
%10000;
d=c/1000;
e=c
%1000;
f=e/100;
g=e
%100;
h=g/10;
i=g%10;

Retardo();
EscribeLCD(datoLCD,
DATO);

datoLCD=
f+0x30;

Retardo();
datoLCD= '=';

EscribeLCD(datoLCD,
DATO);
Retardo();

EscribeLCD(datoLCD,
DATO);

datoLCD=
h+0x30;

Retardo();
datoLCD= ' ';
datoLCD=
0b00000001;
EscribeLCD(datoLCD,
DATO);
EscribeLCD(datoLCD,
COMANDO);

Retardo();

EscribeLCD(datoLCD,
DATO);
Retardo();
datoLCD=
i+0x30;

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

EscribeLCD(datoLCD,
DATO);
Retardo();

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

LeeADC (void)
{
ADCON0bits.GO_DON
E=1;
while(ADCON0bits.GO
_DONE==1);
return ADRESH;
}

EscribeLCD(datoLCD,
DATO);
Retardo1();
}
}
unsigned char
Conf_Timer(void)
{
PR2=230;

voidEscribeLCD
(unsigned char dato,
char tipo)
{
if(tipo==DATO)
{
PORTEbits.RE0=1;
}
else
{

PIR1bits.TMR2IF=0;
T2CON=0b01111111;
}

PORTEbits.RE0=0;
}
PORTEbits.RE1=0;
PORTD=dato;

voidConfiguraADC
(void)
{

PORTEbits.RE2=1;
Retardo();

ADCON0=0b0000010
1;

PORTEbits.RE2=0;
}

ADCON1=0b0001110
1;

voidConfiguraLCD
(void)
{
unsignedchar
datoLCD;
Retardo();
datoLCD=
0b00000010;

ADCON2=0b0000010
1;
}
unsigned char

EscribeLCD(datoLCD,
COMANDO);
Retardo();
datoLCD=
0b00111000;
EscribeLCD(datoLCD,
COMANDO);
Retardo();
datoLCD=
0b00001100;
EscribeLCD(datoLCD,
COMANDO);
Retardo();
datoLCD=
0b00000110;
EscribeLCD(datoLCD,
COMANDO);
Retardo();
datoLCD=
0b00000001;
EscribeLCD(datoLCD,
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;
}
}

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

También podría gustarte