Vous êtes sur la page 1sur 7

ESCUELA POLITECNICA DEL EJRCITO

DEPARTAMENTO DE ELCTRICA Y ELECTRNICA

INSTRUMENTACIN Y SENSORES
Ing. Xavier Segovia

SENSOR DE TEMPERATURA CON PT100

INTEGRANTES
lvaro Bentez Pablo Crdova Jos Fernndez

FECHA DE ENTREGA
7 de junio de 2011

ACOPLADOR MEDIANTE PUENTE DE WHEATSTONE


R1(1)

R1
100

R3
100 RT1(E+) E+RT1 S+

R5
10k

R5(2)

R2
100

U1(V-)

U5(V-)

SERTD-PT100 R14(1)

R4
10k

2 6 3
7

4 1 5

37.00

U1 R15
10k

U5
4 1 5

R14
10k U1(V+)

TL081

2 6 3
7

R11
10k TL081

U5(V+)

Tomamos los valores de voltajes para temperaturas que podemos obtener experimentalmente.
22pF

C1

X 65 22.5

Y -0.23 -0.095

( (

) )( )

Para obtener los voltajes a 0 y 100 grados se utiliza la ecuacin obtenida Para 100 grados Para 20 grados ( ( )( )( ) )

DETERMINACION DEL VOLTAJE DE INGRESO AL PIC (0 5) Temp 100 20 X -0.346 -0.086 Y 5 0

( ( )(

) )

(
R16
19.23k R16(2)

)
R10
100k R10(2)

R8
10k

s0

U7(V-) U3(V-)

U7
4 1 5

R7(1)

R15
10k

U3
4 1 5

R7
10k

U2(V-)

2 6 3

R9
10k

U2
2 6 3 s0

2 6 3

R6
10k

U7(V+)

TL081 U3(V+)

TL081 U2(V+)

4 1 5
TL081

Obtenido la salida de voltaje s0 que vara de 0 a 5 voltios realizamos la respectiva transformacin a su temperatura equivalente para ser mostrada en el LCD. De igual manera que para obtener los voltajes de la primera etapa, utilizaremos voltaje experimentales para obtener una ecuacin y determinar los valores de voltaje a cero y 100 grados. X 2.36 0.26 Y 65 22

)(

Para obtener los voltajes a 0 y 100 grados se utiliza la ecuacin obtenida Para 100 grados Para 20 grados ( ( )( )( )
LCD1 C1
22pF LM016L

X1 C2
22pF s0 CRYSTAL s0 2 3 4 5 6 7 8 9 10 13 14

U6
VSS VDD VEE RS RW E 4 5 6 D0 D1 D2 D3 D4 D5 D6 D7 7 8 9 10 11 12 13 14
OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 Calienta Enfria t1 t2 t3 t4 A B C D

R13
10k

RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A

Con el teclado matricial, con las teclas superiores seleccionamos la temperatura a la que queremos que se caliente o se enfre nuestro circuito.
Selecciona 40 Selecciona 60 Selecciona 80

7 4 1
ON C
1

8 5 2 0
2

9 6 3 =
3

1 2 3

Selecciona 100

+
t4 4

t1

t2

t3

VENTILADOR UTILIZADO PARA ENFRIAR EL AGUA

(+)

+88.8

R12
Enfria 330

kRPM

Q1
2N3904

TRIAC Y MOC UTILIZADOS PARA CALENTAR EL AGUA

CODIGO DEL PROGRAMA #include "16f877a.h" #fuses XT,NOWDT,NOPROTECT #device adc=10 #use delay(clock=4000000) #include "flex_lcd.c" //libreria de LCD #include "kbd_lib.c" //libreria para teclado #use fast_io(D) //configurar la salida por el puerto d

double tem,v,tem1,v1,tselec; char k,a; int i=0; char teclado(){ k = kbd_getc(); if(k!=0) return k; return a; } // Calienta o enfria segun la temperattura seleccionada void seleccion_temp(){ if(tem<tselec){ output_d(0x01); lcd_gotoxy(1,1); printf(lcd_putc,"Calentando a %f",tselec); } else if(tem>(tselec+1)){ output_d(0x02); lcd_gotoxy(1,1); printf(lcd_putc,"Enfriando a %f",tselec); } else{ output_d(0x00); lcd_gotoxy(1,1); printf(lcd_putc," "); } } void main() { lcd_init(); //inicializacion del LCD kbd_init(); //inicializacion del teclado //Activa la entrada analogica de porta(0) //activa las resitencia pull-up del puerto B para el teclado setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); port_b_pullups(TRUE);

set_tris_d(0x00); output_d(0x00); lcd_gotoxy(1,2); printf(lcd_putc," Temp = "); tem1=0; v1=0; while(true) { set_adc_channel(0); v=read_adc(); delay_ms(5); v=(5*v)/1024; tem = 20.4761*v+16.67; i++; a = teclado(); if(tem>28&&tem<67) tem -= ((tem/20)*0.7); else if(tem>=67&&tem<90) tem -= ((tem/67)*0.5); tem1+=tem; v1+=v; if(i==5000){ tem1 = tem1/5000; v1=v1/5000; lcd_gotoxy(6,1); printf(lcd_putc,"%f",v); lcd_gotoxy(9,2); printf(lcd_putc,"%f",tem); if(a=='1') tselec=40; else if(a=='2') tselec=60; else if(a=='3') tselec=80; else if(a=='A') tselec=100; if(a!=0) seleccion_temp(); i=0; tem1=0; } } }

Vous aimerez peut-être aussi