Está en la página 1de 3

UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA


ESCUELA PROFESIONAL ING. ELECTRONICA

CURSO: LAB. SENSORES Y ACTUADORES

LABORATORIO N 02: TERMOMETRO DIGITAL CON PIC

DOCENTE: ING. HUARCAYA GONZALES EDWIN


OBJETIVO:
Estudiar las caractersticas bsicas de diferentes termmetros y sensores de
temperatura.
Calibrar alguno de dichos sensores. Usar el termmetro calibrado en experimentos
de transferencia de calor.

MATERIAL Y EQUIPO:

MICROCONTROLADOR PIC16F877A POTENCIOMETRO DE 10 KOHM
SENSOR DE TEMPERATURA LM35 01 PROTOBOARD
DIODO 1N4148 RESISTENCIA DE 10 KOHM A 1/4 W
01 MULTMETRO 01 OSCILOSCOPIO
CRISTAL DE CUARZO DE 4MHZ CAPACITORES CERAMICOS DE 15PF (NO
RESISTENCIA DE 100 OHM A 1/4 W POLARIZADOS)
DISPLAY DE 16X2 (16 CARACTERES POR 2 01 FUENTE DE ALIMENTACIN
FILAS) PROGRAMABLE
PULSADOR O PUSH BUTTON CAPACITOR CERAMICO DE 100NF (NO
NORMALMENTE ABIERTO POLARIZADOS)
CAPACITOR CERAMICO DE 100NF (NO
POLARIZADOS)

PROCEDIMIENTO:
1.- Armar el circuito de la figura 1:

FIGURA (1)
LENGUAJE EN C

//------------------------------------------------------------------------------
//----------------TERMOSTATO UNAC 2017B-----------------------------
//------------------------------------------------------------------------------

#include <16f877A.h> //PIC A USAR


#device adc=8 //Usa resolucin de 8 bits
#include <math.h> //PARA OPERACIONES MATEMATICAS
#use delay(clock=4000000) //CRISTAL A UTILIZAR
#include <LCD.c> //CONTROLADOR DEL LCD
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz
for PCD
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18)
used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected

void main()
{

// VARIABLES A USAR

int8 temp1;
float temp;

lcd_init(); //INICIALIZA EL LCD


lcd_putc("TERMOSTATO LM35"); //IMPRIME EN PANTALLA
lcd_gotoxy(4,2); //COLOCA EL CURSOR EN COLUMNA 4 FILA 2
lcd_putc("UNAC - 2012"); //IMPRIME EN PANTALLA
delay_ms(5000); //ESPERA 5 SEGUNDOS
lcd_putc("\f"); //LIMPIA PANTALLA

while(1)
{
setup_adc(ADC_CLOCK_INTERNAL);
Setup_adc_ports(RA0_ANALOG); //PONE PUERTO RA0 ANALOGO
set_adc_channel(0); // INDICA EL PIN A LEER RA0
delay_us(20);
temp1=read_adc(); //LEE EL VALOR DEL PIN
temp=(temp1*0.01960784314*100); //CONVIERTE EL VALOR LEIDO
DE HEXA AL REAL el numero 0.01960784314 viene de dividir (5/255) y el
resultado se multiplica por 100 para alcanzar 150 grados

if(temp<=50){
output_high(pin_b0); //SI LA TEMPERATURA ES MENOR O
IGUAL A 50C MANDA UN 1 AL PIN BO
lcd_putc("\f"); //LIMPIA PANTALLA
lcd_gotoxy(1,1); //COLOCA EL CURSOR EN COLUMNA 1
FILA 1
lcd_putc("CALENTANDO AGUA"); //IMPRIME EN PANTALLA
lcd_gotoxy(4,2); //COLOCA EL CURSOR EN COLUMNA 4
FILA 2
printf(lcd_putc," T= %2.2f C",temp); //MUESTRA EN EL LCD EL VALOR
DE TEMPERATURA
delay_ms (500);
}

else{
output_low(pin_b0); //DE LO CONTRARIO MANDA UN 0
AL PIN B0
lcd_putc("\f"); //LIMPIA PANTALLA
lcd_gotoxy(1,1); //COLOCA EL CURSOR EN COLUMNA 1
FILA 1
lcd_putc("ENFRIANDO AGUA"); //IMPRIME EN PANTALLA
lcd_gotoxy(4,2); //COLOCA EL CURSOR EN COLUMNA 4
FILA 2
printf(lcd_putc," T= %2.2f C",temp); //MUESTRA EN EL LCD EL
VALOR DE TEMPERATURA
delay_ms (500);
}

}//fin while

}//fin main

PARA EL INFORME TENER PRERSENTE LO SIGUIENTE

Objetivos
Marco terico
Diseo del circuito
Componentes electrnicos
Implementacin del circuito
Conclusiones
Recomendaciones
Bibliografa