electromagnetismo2012a.wikispaces.comelectromagnetismo2012a.wikispaces.com/file/view/sensor...

13

Click here to load reader

Upload: phungdat

Post on 29-Jun-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: electromagnetismo2012a.wikispaces.comelectromagnetismo2012a.wikispaces.com/file/view/Sensor de... · Web viewConstruir un termómetro digital tomando como base los fundamentos adquiridos

TERMÓMETRO DIGITAL CON LM35 Y PIC 18f4550

1 Karen Daniela Escorcia Otálora: 174827 1María Angélica Gómez Gordillo: 01174788; 1Andrea Estefanía Rocha Abella: 01174793

2 Jaime Villalobos

1,2 Universidad Nacional de Colombia1Estudiantes Fundamentos de electricidad y magnetismo 2 Profesor

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

OBJETIVOS

OBJETIVO GENERAL:

Construir un termómetro digital tomando como base los fundamentos adquiridos durante el curso de Fundamentos de Electricidad y Magnetismo.

OBJETIVOS ESPECIFÍCOS:

Aplicar los conceptos adquiridos de circuitos. Integrar este trabajo con temáticas 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 precisión calibrada de 1°C y un rango que abarca desde 0°-100°C. Esto quiere decir, que por cada 1°C en la variación de la temperatura, el sensor en su salida obtendrá una variación de 10 mv. Este voltaje es el que se incerta al PIC 18f4550 el cual a través de su conversor A/D mostrará los datos en la pantalla LCD.

INTRODUCCIÓN

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 caracterísitcas fundamentales de este microcontrolador y de sus antecesores los PIC18F2455/2550/4455.

CARACTERÍSTICAS PIC18F2455 PIC18F2450 PIC18F4455 PIC18F4550Frecuencia de Operación Hasta 48MHz Hasta 48MHz Hasta 48MHz Hasta 48MHzMemoria de Programa (bytes) 24.576 32.768 24.576 32.768Memoria RAM de Datos (bytes) 2.048 2.048 2.048 2.048

Page 2: electromagnetismo2012a.wikispaces.comelectromagnetismo2012a.wikispaces.com/file/view/Sensor de... · Web viewConstruir un termómetro digital tomando como base los fundamentos adquiridos

Memoria EEPROM Datos (bytes) 256 256 256 256Interrupciones 19 19 20 20Líneas de E/S 24 24 35 35Temporizadores 4 4 4 4Módulos de Comparación/Captura/PWM (CCP) 2 2 1 1

Módulos de Comparación/Captura/PWM mejorado (ECCP)

0 0 1 1

Canales de Comunicación Serie MSSP.EUSART MSSP.EUSART MSSP.EUSAR MSSP.EUSARCanal USB 1 1 1 1Puerto Paralelo de Transmisión de Datos (SPP) 0 0 1 1

Canales de Conversión A/D de 10 bits 10 Canales 10 Canales 13 Canales 13 Canales

Comparadores analógicos 2 2 2 2Juego de instrucciones 75 (83 ext.) 75 (83 ext.) 75 (83 ext.) 75 (83 ext.)

Encapsulados PDIP28 pines SOIC28 pines

PDIP28 pines SOIC28 pines

PDIP40 pines QFN 40 pines TQFP 40 pines

PDIP40 pines QFN 40 pines TQFP 40 pines

Pines del PIC18F4550

Diagrama de Bloques

Page 3: electromagnetismo2012a.wikispaces.comelectromagnetismo2012a.wikispaces.com/file/view/Sensor de... · Web viewConstruir un termómetro digital tomando como base los fundamentos adquiridos

Organización 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/datosPuede ser escrita/leída mediante un programador externo o durante la ejecución programa mediante unos punteros.

Memoria RAM de datos: memoria SRAM interna de 2048 bytes en la que están incluidos los registros de función especial. Almacena datos de forma temporal durante la ejecución del programa Puede ser escrita/leída en tiempo de ejecución mediante diversas instrucciones.

Memoria EEPROM de datos: memoria no volátil de 256 bytes. Almacena datos que se deben conservar aun en ausencia de tensión de alimentación Puede ser escrita/leída en tiempo de ejecución a través de registros.

Pila: bloque de 31 palabras de 21 bits. Almacena la dirección de la instrucción que debe ser ejecutada después de una interrupción o subrutina.

Page 4: electromagnetismo2012a.wikispaces.comelectromagnetismo2012a.wikispaces.com/file/view/Sensor de... · Web viewConstruir un termómetro digital tomando como base los fundamentos adquiridos

Memoria de configuración: memoria en la que se incluyen los bits de configuración (12 bytes de memoria flash) y los registros de identificación (2 bytes de memoria de solo lectura). Se trata de un bloque de memoria situado a partir de la posición 30000H de memoria de programa (más allá de la zona de memoria de programa de usuario). En esta memoria de configuración se incluyen:Bits de configuración: contenidos en 12 bytes de memoria flash permiten la configuración de algunas opciones del uC como:- Opciones del oscilador. - Opciones de reset. - Opciones del watchdog.- Opciones de la circuiteria de depuración y programación.- Opciones de protección contra escritura de memoria de programa y memoria EEPROM de datos.Estos bits se configuran generalmente durante la programación del uC, aunque también pueden ser leídos y modificados durante la ejecución del programa.

Registros de identificación: se trata de dos registros situados en las direcciones 3FFFFEH y 3FFFFFH que contienen información del modelo y revisión 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 líneas de dirección- 16/8 líneas de datos (16 líneas para instrucciones/8 líneas para datos)Bus de la memoria de datos:- 12 líneas de dirección- 8 líneas de datosEsto permite acceder simultáneamente a la memoria de programa y a la memoria de datos. Es decir se puede ejecutar una instrucción (lo que por lo general requiere acceso a memoria de datos) mientras se lee de la memoria de programa la siguiente instrucción (proceso pipeline).

Sensor de temperatura LM35

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

Page 5: electromagnetismo2012a.wikispaces.comelectromagnetismo2012a.wikispaces.com/file/view/Sensor de... · Web viewConstruir un termómetro digital tomando como base los fundamentos adquiridos

*Rango de alimentación 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 común es el TO-92, una cápsula comúnmente utilizada por los transistores de baja potencia, como el BC548 o el 2N2904.Tiene tres pines: alimentación (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) Potenciómetro 10K Cable para protoboard

PROCEDIMIENTO

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

Page 6: electromagnetismo2012a.wikispaces.comelectromagnetismo2012a.wikispaces.com/file/view/Sensor de... · Web viewConstruir un termómetro digital tomando como base los fundamentos adquiridos

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;

int DatoADC;

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

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

ConfiguraLCD ();ConfiguraADC();

datoLCD='S';

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD='E';

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD='N';

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD='S';

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD='O';

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD='R';

EscribeLCD(datoLCD, DATO);

Retardo();

Retardo1();

while(1){

Page 7: electromagnetismo2012a.wikispaces.comelectromagnetismo2012a.wikispaces.com/file/view/Sensor de... · Web viewConstruir un termómetro digital tomando como base los fundamentos adquiridos

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= 0b00000001;

EscribeLCD(datoLCD, COMANDO);

Retardo();datoLCD=

'T';

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD=

'E';

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD=

'M';

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD=

'P';

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD=

'=';

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD= '

';

EscribeLCD(datoLCD, DATO);

Retardo();

PORTCbits.RC1=1;datoLCD=

b+0x30;

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD=

d+0x30;

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD=

',';

EscribeLCD(datoLCD, DATO);

Retardo();

datoLCD= f+0x30;

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD=

h+0x30;

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD=

i+0x30;

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD=

0xDF;

EscribeLCD(datoLCD, DATO);

Retardo();datoLCD=

'C';

EscribeLCD(datoLCD, DATO);

Retardo1();

}}

unsigned char Conf_Timer(void){

PR2=230;PIR1bits.TMR2IF=0;

T2CON=0b01111111;

Page 8: electromagnetismo2012a.wikispaces.comelectromagnetismo2012a.wikispaces.com/file/view/Sensor de... · Web viewConstruir un termómetro digital tomando como base los fundamentos adquiridos

}

voidConfiguraADC (void){

ADCON0=0b00000101;

ADCON1=0b00011101;

ADCON2=0b00000101;}

unsigned char LeeADC (void){

ADCON0bits.GO_DONE=1;

while(ADCON0bits.GO_DONE==1);

return ADRESH;}

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;

}

voidConfiguraLCD (void){

unsignedchardatoLCD;Retardo();datoLCD=0b00000010;

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. Simulación en un programa llamado Proteus.

Page 9: electromagnetismo2012a.wikispaces.comelectromagnetismo2012a.wikispaces.com/file/view/Sensor de... · Web viewConstruir un termómetro digital tomando como base los fundamentos adquiridos

RESULTADOS

Imagen 2: Montaje del termómetro Digital

Imagen 3: Pantalla LED 16x2

Page 10: electromagnetismo2012a.wikispaces.comelectromagnetismo2012a.wikispaces.com/file/view/Sensor de... · Web viewConstruir un termómetro digital tomando como base los fundamentos adquiridos

CONCLUSIONES

Este proyecto permitió darnos a entender sobre el funcionamiento del termómetro digital, para determinar temperaturas de cuerpos y/o soluciones, siendo lo segundo nuestro punto de interés.

Se aplicaron conceptos básicos aprendidos durante el curso, en especial nos basamos en un circuito en serie.

Se obtuvo un termómetro digital con una precisión en la medida de 3 cifras decimales, lo cual nos da una cantidad con mayor precisión.

BIBLIOGRAFÍA

(1) Datasheet Catalog for integrated circuits. “http://www.datasheetcatalog.com/” (Consultado 08/06/12).

(2) PIC 18F4550 - ORGANIZACIÓN 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