termometro con micro control ad or

11
1 Sistemas de Control II - Laboratorio SISTEMAS DE CONTROL II TERMÓMETRO CON MICROCONTROLADOR CONTENIDO I. INTRODUCCIÓN 1. OBJETIVOS 1.1. OBJETIVO GENERAL 1.2. OBJETIVOS ESPECÍFICOS II. ASPECTOS TEÓRICOS 1. SOLUCIÓN MATEMÁTICA DEL PROBLEMA 2. SENSOR DE TEMPERATURA LM35 III. ASPECTOS PRÁCTICOS 1. SOFTWARE EMPLEADO 2. HARDWARE EMPLEADO 3. METODOLOGÍA 4. LAYOUT 5. PROGRAMA 6. SIMULACIÓN INGENIERÍA EN SISTEMAS ELECTRÓNICOS

Upload: jose-alejandro-cerruto

Post on 26-Oct-2014

87 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Termometro Con Micro Control Ad Or

1

Sistemas de Control II - Laboratorio

SISTEMAS DE CONTROL II

TERMÓMETRO CON MICROCONTROLADOR

CONTENIDO

I. INTRODUCCIÓN

1. OBJETIVOS

1.1. OBJETIVO GENERAL

1.2. OBJETIVOS ESPECÍFICOS

II. ASPECTOS TEÓRICOS

1. SOLUCIÓN MATEMÁTICA DEL PROBLEMA

2. SENSOR DE TEMPERATURA LM35

III. ASPECTOS PRÁCTICOS

1. SOFTWARE EMPLEADO

2. HARDWARE EMPLEADO

3. METODOLOGÍA

4. LAYOUT

5. PROGRAMA

6. SIMULACIÓN

\

I. INTRODUCCIÓN

1. OBJETIVOS.-

INGENIERÍA EN SISTEMAS ELECTRÓNICOS

Page 2: Termometro Con Micro Control Ad Or

2

Sistemas de Control II - Laboratorio

1. 1 OBJETIVO GENERAL:

Diseñar e implementar un termómetro 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 centígrados.

1. 2 OBJETIVOS ESPECÍFICOS:

Estudiar cada componente en forma individual

Diseñar el circuito para que el microcontrolador interprete los valores

proporcionados por el sensor LM35

Convertir mediante artificios matemáticos los valores ingresados como

variaciones de tensión en valores decimales.

Desplegar los valores decimales en un LCD

Proponer soluciones alternativas

II. ASPECTOS TEÓRICOS

1. SOLUCIÓN MATEMÁTICA DEL PROBLEMA.-

Haciendo uso del ADC de un PIC16f877, convertimos un valor analógico en unvalor digital. Posteriormente, es necesario convertir la cifra hexadecimal en decimal

El convertidor analógico digital lo configuraremos para que mida de 5 mili voltios en 5 mili voltios.

La cifra obtenida será un número 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 pequeño artificio matemático la convertimos al código 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 centígrado. 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 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ºCRango de alimentación 4 a 30 voltios Consumo: 60 µA (en reposo)

INGENIERÍA EN SISTEMAS ELECTRÓNICOS

Page 3: Termometro Con Micro Control Ad Or

3

Sistemas de Control II - Laboratorio

III. ASPECTOS PRÁCTICOS

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 precisión calibrada de 1ºC y un rango que abarca desde -55º a +150ºC.

Lo que quiere decir que por cada 1ºC en la variacion de la temperatura, el sensor en su salida obtendra una variacion

de 10 mV.

Por ejemplo si la temperatura es de -55ºC podemos obtener -550mV y si fuera de 150ºC 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 continuación:

Isis Proteus, librerías

MicroCode Studio v5.0

PICBASIC v2.6

MIKROC – MIKROELECTRONIKA

Visual Basic 6.0 – MICROSOFT

2. HARDWARE EMPLEADO.-

El equipo empleado se detalla a continuación:

Sensor de Temperatura LM35

PIC 16F877A

XTal=4MHz

R=100 Ohms

R=10K Ohms

C=0.1uF

LCD=16x2

3. METODOLOGÍA.-

Se procede de la siguiente manera:

Determinar el tipo de sensor a utilizar

INGENIERÍA EN SISTEMAS ELECTRÓNICOS

Page 4: Termometro Con Micro Control Ad Or

4

Sistemas de Control II - Laboratorio

Determinar los valores proporcionados por el sensor

Adecuar los valores leídos por el conversor análogo-digital a un sistema que sea

más interpretable.

Generar los datos de salida en función del medio, siendo este: pantalla LCD,

Interfaz Serial y/o Bcd’s de 7 segmentos.

Simular el circuito

Implementar el circuito

4. LAYOUT.-

CIRCUITO 1

SENS

SENS

D4

D7

D5

D6

D7

D4

D5

D6

RS

RS

E

E

RW

RW

69.0

3

1

VOUT2

U2

LM35

R1100R

C20.1u

RA0/AN0

2RA1/AN1

3RA2/AN2/VREF-/CVREF

4

RA4/T0CKI/C1OUT

6RA5/AN4/SS/C2OUT

7

RE0/AN5/RD

8RE1/AN6/WR

9RE2/AN7/CS

10

OSC1/CLKIN

13OSC2/CLKOUT

14

RC1/T1OSI/CCP2

16RC2/CCP1

17RC3/SCK/SCL

18

RD0/PSP0

19RD1/PSP1

20

RB7/PGD

40

RB6/PGC

39

RB5

38

RB4

37

RB3/PGM

36

RB2

35

RB1

34

RB0/INT

33

RD7/PSP7

30

RD6/PSP6

29

RD5/PSP5

28

RD4/PSP4

27

RD3/PSP3

22

RD2/PSP2

21

RC7/RX/DT

26

RC6/TX/CK

25

RC5/SDO

24

RC4/SDI/SDA

23

RA3/AN3/VREF+

5

RC0/T1OSO/T1CKI

15

MCLR/Vpp/THV

1

U1PIC16F877A

R210K

D7

14D6

13D5

12D4

11D3

10D2

9D1

8D0

7

E6

RW

5RS

4

VSS

1

VDD

2

VEE

3

LCD1LM016L

X1CRYSTAL

LABORATORIO 3 - SISTEMAS DE CONTROL II

TERMOMETRO DIGITAL BÁSICO

PIC16F877

LCD LM016L

LM35

CIRCUITO 2

INGENIERÍA EN SISTEMAS ELECTRÓNICOS

Page 5: Termometro Con Micro Control Ad Or

5

Sistemas de Control II - Laboratorio

RA0RA1RA2RA3

RB3

RA4

X3

X0X1X2

X0

X

X

RA3

RA0

RB3 RA2

RA1

RA4

X1X2

X3

OSC1/CLKIN16

RB0/INT 6

RB1 7

RB2 8

RB3 9

RB4 10

RB5 11

RB6 12

RB7 13

RA0 17

RA1 18

RA2 1

RA3 2

RA4/T0CKI 3

OSC2/CLKOUT15

MCLR4

U1

PIC16F84A

R11k

+5vX1

4MHz

D7

14D6

13D5

12D4

11D3

10D2

9D1

8D0

7

E6

RW

5RS

4

VSS

1

VDD

2

VEE

3

LCD1LM016L

+5V

R2

10k

+5V

CS 1

VIN(+) 2

VIN(-) 3

GND 4

VCC8

CLK7VREF5

DO6

U2

ADC0831

CS

CS

RXD RXD

RTS

TXD

CTS

CLK

CLK

D0

D0

A0

RXDA0

X0 13

X1 14

X2 15

X3 12

X4 1

X5 5

X6 2

X7 4

A 11

B 10

C 9

INH 6

X3

U3

4051

65%

RVA

1k

+10V

TATB

TATB

R4

1k

R51k

POT TERMISTOR NTC LM35 TERMOCUPLA

CONTROL DE TEMPERATURA PIC16F84 - 4 SENSORES

T1IN11

R1OUT12

T2IN10

R2OUT9

T1OUT 14

R1IN 13

T2OUT 7

R2IN 8

C2+

4

C2-

5

C1+

1

C1-

3

VS+ 2

VS- 6

U4

MAX232

C3

1uF

C4

1uF

C61uF

+5v

C51uF

62%

RV1

10k

+5V

170.00

+

-

CJ

TC1TCJ

TC1(CJ)

-tc

RT1

4k

ENTRADAS : TERMOCUPLA - LM35 - TERMISTOR NTC - POT

SALIDAS : LCD LM016L, RS232

40.0

3

1

VOUT2

U5LM35

+10VU5(+VS)

R31k

X1X0

MULTIPLEXOR

ADC SERIAL

LCD - LM016LRS-232

PIC16F84A

SISTEMAS DE CONTROL II - LABORATORIO No. 3

X2

X3

CIRCUITO 3

RB0RB1RB2RB3RB4RB5RB6RB7

RB0RB1RB2RB3

SEN

SEN

RB4

RB7

RB5RB6

OSC1/CLKIN16

RB0/INT6

RB17

RB28

RB39

RB410

RB511

RB612

RB713

RA017

RA118

RA21

RA32

RA4/T0CKI3

OSC2/CLKOUT15

MCLR4

U1

PIC16F84A

X1

4MHz

A7

QA13

B1

QB12

C2

QC11

D6

QD10

BI/RBO4

QE9

RBI5

QF15

LT3

QG14

U2

7447

A7

QA13

B1

QB12

C2

QC11

D6

QD10

BI/RBO4

QE9

RBI5

QF15

LT3

QG14

U3

7447

+5v

+5v

PA0PA1PA2PA3PA4PA5PA6

QA0

QA2QA1

QA3QA4QA5QA6

PA0PA1PA2PA3PA4PA5PA6

QA0

QA2QA1

QA3QA4QA5QA6

A0

RXD

RTS

TXD

CTS

RA0RA1RA2RA3RA4RA5RA6

SA0SA1SA2SA3SA4SA5SA6

+5V+5V

RA0RA1RA2RA3RA4RA5RA6

SA0SA1SA2SA3SA4SA5SA6

CLK

CS1

VIN(+)2

VIN(-)3

GND4

VCC8

CLK7

VREF5

DO6

U4

ADC0831

+5V

81%

RV3

1k

+5V

CS

CLKDO

DO

CSA0

POT

T1IN11

R1OUT12

T2IN10

R2OUT9

T1OUT14

R1IN13

T2OUT7

R2IN8

C2+

4

C2-

5

C1+

1

C1-

3

VS+2

VS-6

U5

MAX232

C3

1uF

C4

1uF

C61uF

+5v

C51uF

+5V

R11k

+5v

110

110

330330

330 330

CONTROL DE TEMPERATURA PIC16F84 - 4 BCD'SENTRADA : POT

SALIDAS : 4 BCD'S, RS232

SISTEMAS DE CONTROL II - LABORATORIO No. 3

DRIVERS BCD

ADC SERIAL

PIC16F84RS232

CIRCUITO 4

INGENIERÍA EN SISTEMAS ELECTRÓNICOS

Page 6: Termometro Con Micro Control Ad Or

6

Sistemas de Control II - Laboratorio

D4D5D6D7

D4D5D6D7

EN

EN AN0

RS

RS

AN0RA0/AN0

2

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877A

X1

CRYSTAL20MHz

D7

14D6

13D5

12D4

11D3

10D2

9D1

8D0

7

E6

RW

5RS

4

VSS

1

VDD

2

VEE

3

LCD1LM032L

+5V

RXD

RTS

TXD

CTS

RC6

47.0

3

1

VOUT2

U3

LM35

+5V

RC6

A7

QA13

B1

QB12

C2

QC11

D6

QD10

BI/RBO4

QE9

RBI5

QF15

LT3

QG14

U2

7447

CEN1

DEC1

UNI1

+5v

UNIDECCEN

R4100

C70.1u T1IN

11

R1OUT12

T2IN10

R2OUT9

T1OUT14

R1IN13

T2OUT7

R2IN8

C2+

4

C2-

5

C1+

1

C1-

3

VS+2

VS-6

U4

MAX232

C3

1uF

C4

1uF

C61uF

+5v

C51uF

50%

RV1

10k

+5V

ABCD

ABCD

110

R11k

+5V

CONTROL DE TEMPERATURA PIC16F877 - 3 SALIDAS - VISUAL BASICENTRADA : LM35

SALIDAS : LCD LM016L, RS232, 7SEG - 4 DIG

SISTEMAS DE CONTROL II - LABORATORIO No. 3

RS-232

PIC16F877A

BCD 7 SEGMENTOS - 4 DIGITOS

LM35

LM032L

DRIVER BCD

ERROR

TXD3

RXD2

CTS8

RTS7

DSR6

DTR4

DCD1

RI9

P1

COMPIM

U9

NOT

INGENIERÍA EN SISTEMAS ELECTRÓNICOS

Page 7: Termometro Con Micro Control Ad Or

7

Sistemas de Control II - Laboratorio

5. PROGRAMA.-

CIRCUITO 1

INGENIERÍA EN SISTEMAS ELECTRÓNICOS

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 PRECISIONtlong = 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);}}

Page 8: Termometro Con Micro Control Ad Or

8

Sistemas de Control II - Laboratorio

CIRCUITO 2

CIRCUITO 3

INGENIERÍA EN SISTEMAS ELECTRÓNICOS

TRISB.0=0TRISB.1=0Inicio:

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 VariableGoTo Inicio

TRISB = 0Inicio: 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]

Page 9: Termometro Con Micro Control Ad Or

9

Sistemas de Control II - Laboratorio

CIRCUITO 4

INGENIERÍA EN SISTEMAS ELECTRÓNICOS

TRISB = 0Inicio: 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]

Adc VAR BYTETemp VAR WORDunid VAR BYTEdece VAR BYTEcent VAR BYTE

TRISA = %11111111TRISB = %00000000TRISC = %00000001TRISE = %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 "