Termometro Con Micro Control Ad or

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

Sistemas de Control II - Laboratorio

SISTEMAS DE CONTROL II
TERMMETRO CON MICROCONTROLADOR

CONTENIDO

I.

INTRODUCCIN 1. OBJETIVOS 1.1. 1.2. OBJETIVO GENERAL OBJETIVOS ESPECFICOS

II.

ASPECTOS TERICOS 1. 2. SOLUCIN MATEMTICA DEL PROBLEMA SENSOR DE TEMPERATURA LM35

III.

ASPECTOS PRCTICOS 1. 2. 3. 4. 5. 6. SOFTWARE EMPLEADO HARDWARE EMPLEADO METODOLOGA LAYOUT PROGRAMA SIMULACIN

I.

INTRODUCCIN
1. OBJETIVOS.-

INGENIERA EN SISTEMAS ELECTRNICOS

Sistemas de Control II - Laboratorio

1. 1 OBJETIVO GENERAL: Disear e implementar un termmetro digital mediante un microcontrolador, que despliegue en un LCD los valores proporcionados por un sensor LM35 en un rango de temperatura de -50 a 150 grados centgrados. 1. 2 OBJETIVOS ESPECFICOS: Estudiar cada componente en forma individual Disear el circuito para que el microcontrolador interprete los valores proporcionados por el sensor LM35 Convertir mediante artificios matemticos los valores ingresados como variaciones de tensin en valores decimales. Desplegar los valores decimales en un LCD Proponer soluciones alternativas

II.

ASPECTOS TERICOS
1. SOLUCIN MATEMTICA DEL PROBLEMA.-

Haciendo uso del ADC de un PIC16f877, convertimos un valor analgico en unvalor digital. Posteriormente, es necesario convertir la cifra hexadecimal en decimal El convertidor analgico digital lo configuraremos para que mida de 5 mili voltios en 5 mili voltios. La cifra obtenida ser un nmero hexadecimal equivalente al n de saltos dados. As, si tengo 24 (hexadecimal) saltos y cada salto es de 5 mili voltios tendr un valor de B4 (hexadecimal) voltios.Mediante un pequeo artificio matemtico la convertimos al cdigo decimal, obteniendo el n 180(decimal), en otras palabras, 180 mili voltios. El sensor nos dice el fabricante da 10 mili voltios por cada grado centgrado. Esos 180 mili voltios los dividimos entre diez y obtenemos 18,0 C

2. 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 < +150CRango de alimentacin 4 a 30

INGENIERA EN SISTEMAS ELECTRNICOS

Sistemas de Control II - Laboratorio

voltios Consumo: 60 A (en reposo)

III.

ASPECTOS PRCTICOS

El circuito se basa en 2 componentes principales el sensor de temperatura LM35 y el PIC 16F877A. El LM35 es un sensor de temperatura con una precisin calibrada de 1C y un rango que abarca desde -55 a +150C. Lo que quiere decir que por cada 1C en la variacion de la temperatura, el sensor en su salida obtendra una variacion de 10 mV.

Por ejemplo si la temperatura es de -55C podemos obtener -550mV y si fuera de 150C la salida seria 1500mV. Este voltaje es el que se inserta al PIC 16F877A el cual a traves de su conversor A/D mostrara los datos en el LCD.

1. SOFTWARE EMPLEADO.El softwareempleado se detalla a continuacin:

Isis Proteus, libreras MicroCode Studio v5.0 PICBASIC v2.6 MIKROC MIKROELECTRONIKA Visual Basic 6.0 MICROSOFT

2. HARDWARE EMPLEADO.El equipo empleado se detalla a continuacin:

Sensor de Temperatura LM35 PIC 16F877A XTal=4MHz R=100 Ohms R=10K Ohms C=0.1uF LCD=16x2

3. METODOLOGA.-

INGENIERA EN SISTEMAS ELECTRNICOS

Sistemas de Control II - Laboratorio

Se procede de la siguiente manera: Determinar el tipo de sensor a utilizar Determinar los valores proporcionados por el sensor Adecuar los valores ledos por el conversor anlogo-digital a un sistema que sea ms interpretable. Generar los datos de salida en funcin del medio, siendo este: pantalla LCD, Interfaz Serial y/o Bcds de 7 segmentos. Simular el circuito Implementar el circuito

4. LAYOUT.-

CIRCUITO 1

LABORATORIO 3 - SISTEMAS DE CONTROL II


TERMOMETRO DIGITAL BSICO
LCD1
LM016L 1

LCD LM016L

U2

LM35
69.0

VSS VDD VEE

RS RW E 4 5 6 RS RW E

VOUT

SENS

1 2 3

LM35

0.1u

R1
100R

R2
SENS
10K

X1
CRYSTAL

10 9 8

14 13

7 6 5 4 3 2

RC7/RX/DT RC6/TX/CK RC5/SDO MCLR/Vpp/THV RC4/SDI/SDA RC3/SCK/SCL RE2/AN7/CS RC2/CCP1 RE1/AN6/WR RC1/T1OSI/CCP2 RE0/AN5/RD RC0/T1OSO/T1CKI RA5/AN4/SS/C2OUT RB7/PGD RA4/T0CKI/C1OUT RB6/PGC RA3/AN3/VREF+ RB5 RA2/AN2/VREF-/CVREF RB4 RA1/AN1 RB3/PGM RA0/AN0 RB2 RB1 OSC2/CLKOUT RB0/INT OSC1/CLKIN

U1
PIC16F877A

PIC16F877

30 29 28 27 22 21 20 19

RD7/PSP7 RD6/PSP6 RD5/PSP5 RD4/PSP4 RD3/PSP3 RD2/PSP2 RD1/PSP1 RD0/PSP0

26 25 24 23 18 17 16 15

CIRCUITO 2

RW E RS D7 D6 D5 D4

40 39 38 37 36 35 34 33

D4 D5 D6 D7

C2

7 8 9 10 11 12 13 14

D0 D1 D2 D3 D4 D5 D6 D7

INGENIERA EN SISTEMAS ELECTRNICOS

Sistemas de Control II - Laboratorio

SISTEMAS DE CONTROL II - LABORATORIO No. 3


CONTROL DE TEMPERATURA PIC16F84 - 4 SENSORES
ENTRADAS : TERMOCUPLA - LM35 - TERMISTOR NTC - POT SALIDAS : LCD LM016L, RS232

MULTIPLEXOR
U3
X 3 X X0 X1 X2 X3 X4 X5 X6 X7 A B C INH 4051 13 14 15 12 1 5 2 4 11 10 9 6 X0 X1 X2 X3

C3
1uF 1 C1+ A0 11 12 10 9 T1IN R1OUT T2IN R2OUT 3 C1T1OUT R1IN T2OUT R2IN VS+ VSC2+ 4 C25

RS-232
U4
CTS 14 13 7 8 2 6
62%

LCD - LM016L
LCD1
LM016L

TA TB

RTS RXD

VSS VDD VEE

RS RW E

RXD

RXD

D0 D1 D2 D3 D4 D5 D6 D7

TXD

+5V

+5V

ADC SERIAL
+5V

RB3

RA0 RA1 RA2 RA3

7 8 9 10 11 12 13 14

RV1

1 2 3

4 5 6

U2
CLK D0 8 5 7 6 VCC VREF CLK DO ADC0831 CS VIN(+) VIN(-) GND 1 2 3 4 X CS

C5
MAX232 1uF

C6
1uF

R2
10k 10k RA4

C4
1uF

+5v

PIC16F84A
X0
+5v

+10V +10V

U5(+VS)

X1 RVA R1
1k 4MHz

X1

TC1(CJ)

U5 RT1
X1 X2 X2 2 VOUT 40.0 LM35

CJ + 170.00 X3 X3

U1
16 15 4 OSC1/CLKIN OSC2/CLKOUT MCLR RA0 RA1 RA2 RA3 RA4/T0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 PIC16F84A 17 18 1 2 3 6 7 8 9 10 11 12 13 RA0 RA1 RA2 RA3 RA4 TA TB RB3 A0 D0 CLK CS

X0

R4
1k

65%

1k

-tc

R5
1k

R3
1k

4k 3

TC1
TCJ

POT

TERMISTOR NTC

LM35

TERMOCUPLA

CIRCUITO 3

SISTEMAS DE CONTROL II - LABORATORIO No. 3


CONTROL DE TEMPERATURA PIC16F84 - 4 BCD'S
ENTRADA : POT SALIDAS : 4 BCD'S, RS232
+5V +5V

RV3
QA0 QA1 QA2 QA3 QA4 QA5 QA6 PA0 PA1 PA2 PA3 PA4 PA5 PA6 RA0 RA1 RA2 RA3 RA4 RA5 RA6 SA0 SA1 SA2 SA3 SA4 SA5 SA6
81%

SEN

1k

POT

DRIVERS BCD
U2
RB0 RB1 RB2 RB3 7 1 2 6 4 5 3 A B C D BI/RBO RBI LT 7447 +5v RB4 RB5 RB6 RB7 7 1 2 6 4 5 3 QA QB QC QD QE QF QG 13 12 11 10 9 15 14 110 PA0 PA1 PA2 PA3 PA4 PA5 PA6

+5V +5V

330 330 RA0 RA1 RA2 RA3 RA4 RA5 RA6 SA0 SA1 SA2 SA3 SA4 SA5 SA6
CS

ADC SERIAL
U4
1 SEN 2 3 4 CS VIN(+) VIN(-) GND ADC0831 VCC VREF CLK DO 8 5 7 6

+5V

U3
A B C D BI/RBO RBI LT 7447 QA QB QC QD QE QF QG 13 12 11 10 9 15 14 110 QA0 QA1 QA2 QA3 QA4 QA5 QA6

CLK DO

330

330

+5v

C3

RS232
1uF 1 C1+ A0 11 12 10 9 T1IN R1OUT T2IN R2OUT 3 C1T1OUT R1IN T2OUT R2IN VS+ VSC2+ 4 C25 MAX232 14 13 7 8 2 6 RTS TXD RXD

+5v

PIC16F84
X1 R1
1k 4MHz

U5
CTS

U1
16 15 4 OSC1/CLKIN OSC2/CLKOUT MCLR RA0 RA1 RA2 RA3 RA4/T0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 PIC16F84A 17 18 1 2 3 6 7 8 9 10 11 12 13 DO CLK CS A0 RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7

C5
1uF

C6
1uF

C4
1uF

+5v

CIRCUITO 4

INGENIERA EN SISTEMAS ELECTRNICOS

Sistemas de Control II - Laboratorio

SISTEMAS DE CONTROL II - LABORATORIO No. 3


CONTROL DE TEMPERATURA PIC16F877 - 3 SALIDAS - VISUAL BASIC
ENTRADA : LM35 SALIDAS : LCD LM016L, RS232, 7SEG - 4 DIG
LCD1
LM032L

LM032L

+5V

BCD 7 SEGMENTOS - 4 DIGITOS


U3

1
VSS VDD VEE RS RW E D0 D1 D2 D3 D4 D5 D6 D7

+5V

47.0
4 5 EN 6 7 8 9 10 11 12 13 14

RV1
50%

D4 D5 D6 D7

RS

LM35

1 2 3

VOUT

AN0

3 10k

LM35

+5V

DRIVER BCD U2 PIC16F877A


X1
+5v CRYSTAL 20MHz A B C D 7 1 2 6 4 5 3 A B C D BI/RBO RBI LT 7447 QA QB QC QD QE QF QG 13 12 11 10 9 15 14 110

U1
13 14 2 3 4 5 6 7 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RA0/AN0 RB3/PGM RA1/AN1 RB4 RA2/AN2/VREF-/CVREF RB5 RA3/AN3/VREF+ RB6/PGC RA4/T0CKI/C1OUT RB7/PGD 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 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 A B C D UNI DEC CEN 11 12 10 9

C3
1uF 1 C1+ RC6 T1IN R1OUT T2IN R2OUT 3 C1T1OUT R1IN T2OUT R2IN VS+ VSC2+ 4 C25 MAX232 14 13 7 8 2 6 CTS

R4
100

+5V

AN0

U4

RTS TXD RXD

C7
0.1u

R1
1k

P1 U9
1 6 2 7 3 8 4 9 DCD DSR RXD RTS TXD CTS DTR RI

RS 8 EN 9 10 1

NOT

RC6

C5
1uF

C6
1uF

C4
1uF

D4 D5 D6 D7

COMPIM

RS-232

+5v

5. PROGRAMA.-

INGENIERA EN SISTEMAS ELECTRNICOS

CEN1 DEC1 UNI1

ERROR

Sistemas de Control II - Laboratorio

CIRCUITO 1
unsigned char ch; unsigned int adc_rd; char *text,*text1; long tlong; int i,j; void main() { INTCON = 0; Lcd_Config(&PORTB, 4, 5, 6, 3, 2, 1, 0); LCD_Cmd(LCD_CURSOR_OFF); LCD_Cmd(LCD_CLEAR); for(i=0;i<5;i++){ LCD_Cmd(LCD_CLEAR); text = "S. DE CONTROL II "; LCD_Out(1,i,text); Delay_ms(100); } text1 = "LABORATORIO 3"; LCD_Out(2,3,text1); ADCON1 = 0x82; TRISA = 0xFF; Delay_ms(1000); LCD_Cmd(LCD_CLEAR); text = "Temperatura:"; for(j=16;j>0;j--){ LCD_Cmd(LCD_CLEAR); LCD_Out(1,j,text); Delay_ms(100); } while (1) { adc_rd = ADC_read(2); tlong = ((long)adc_rd * 5000 )- 30; // EL VALOR DE 30 HAYQ MODIFICAR PARA Q TENGA MAS PRECISION tlong = tlong / 1024 ; ch = tlong / 1000; if(ch==0) LCD_Chr(2,6,' '); else LCD_Chr(2,6,48+ch); ch = (tlong / 100) % 10; LCD_Chr_CP(48+ch); ch = (tlong / 10) % 10; LCD_Chr_CP(48+ch); LCD_Chr_CP('.'); ch = tlong % 10; LCD_Chr_CP(48+ch); LCD_Chr_CP('C'); Delay_ms(200); } }

INGENIERA EN SISTEMAS ELECTRNICOS

Sistemas de Control II - Laboratorio

CIRCUITO 2

TRISB.0=0 TRISB.1=0 Inicio: For Variable = 0 TO 3 PORTB.0 = TA PORTB.1 = TB Low CS ShiftIn DO,CLK,2,[Adc\9] High CS Adc = Adc*100/255 SerOut2 PORTB.4,813,[" TEMPERATURA ",DEC Variable," = ",DEC3 Adc," C ",10,13] LCDOut $FE,1," TEMPERATURA ",DEC Variable LCDOut $FE,$C0," ",DEC3 Adc," C " Pause 2000 Next Variable GoTo Inicio

CIRCUITO 3
TRISB = 0 Inicio: Low CS ShiftIn DO,CLK,2,[Adc\9] High CS Adc=Adc*99/255 Decena = Adc/10 Unidad = Adc - Decena*10 IF Adc <= 25 Then SerOut2 PORTA.3,813,[" T "," = ",DEC2 Adc," C "," TEMPERATURA BAJA ",10,13] Else IF Adc <= 40 Then SerOut2 PORTA.3,813,[" T "," = ",DEC2 Adc," C "," TEMPERATURA MEDIA ",10,13] Else IF Adc <= 70 Then SerOut2 PORTA.3,813,[" T "," = ",DEC2 Adc," C "," TEMPERATURA ALTA ",10,13] Else IF Adc <= 99 Then SerOut2 PORTA.3,813,[" T "," = ",DEC2 Adc," C "," NO TOCAR PELIGRO ",10,13] EndIF EndIF EndIF EndIF PORTB.0 = U0 PORTB.1 = U1 PORTB.2 = U2 PORTB.3 = U3 PORTB.4 = D0 PORTB.5 = D1 PORTB.6 = D2 PORTB.7 = D3 Pause 100 GoTo Inicio

INGENIERA EN SISTEMAS ELECTRNICOS

Sistemas de Control II - Laboratorio

CIRCUITO 4

Adc VAR BYTE Temp VAR WORD unid VAR BYTE dece VAR BYTE cent VAR BYTE TRISA = %11111111 TRISB = %00000000 TRISC = %00000001 TRISE = %00000000 ADCON1 = %0000010 Inicio: ADCIN 0,Adc Temp = Adc*150/77 unid = Temp DIG 0 PORTB = unid + 224 Pause 5 dece = Temp DIG 1 PORTB = dece + 208 Pause 5 cent = Temp DIG 2 PORTB = cent + 176 Pause 5

SerOut2 PORTC.6,813,["a",DEC Temp,10,13] LCDOut $FE,1,"TEMPERATURA" LCDOut $FE,$C0,DEC Temp, " C " GoTo Inicio

INGENIERA EN SISTEMAS ELECTRNICOS

También podría gustarte