Está en la página 1de 7

FACULTAD DE INGENIERA DE PRODUCCIN Y SERVICIOS

ESCUELA PROFESIONAL DE INGENIERA ELECTRNICA

ACTUADORES, SENSORES E INSTRUMENTACION

LABORATORIO

MEDICIN DE TEMPERATURA UTILIZANDO


EL SENSOR ANALGICO LM35

PRESENTADO POR:

ARTEAGA CARNERO, JAIME HANS


RIVERA TTURO, CARLOS EDGAR

ING. SAN ROMAN

AREQUIPA 2008
Medicin de Temperatura utilizando el Sensor Analgico LM35

1. Introduccin

El objetivo de esta experiencia de laboratorio es medir la temperatura de un entorno, dicha temperatura


debe tener el mayor rango posible, dicho rango se logra mediante el uso del sensor LM35.
El rango completo del LM35, segn el fabricante, va de -55C hasta +150C. En nuestro caso usaremos
solamente el mayor rango positivo que va de 2C a 150C, de manera optima, por razones de facilidad
prctica nosotros slo usaremos temperaturas positivas.

El desempeo de los sensores analgicos de temperatura, en general, en cuanto a rango de operacin es


superior al de los sensores digitales. Por ejemplo el rango del LM35 (analgico) va de -55C a 150C
mientras que el DS1820 (digital) va de -55C a 125C aunque slo provee una precisin de 0.5C
(relativamente baja) en el rango de -10C a 85C, adems a un costo mucho ms caro (por lo menos el
quntuplo).

La ventaja ms resaltante de los sensores digitales sobre los analgicos es su simplicidad (falta de
compensacin o falta de calibracin, por ejemplo). Aunque habra que recordar que la mayora de los
sensores que tienen una salida digital de datos tienen como base de su funcionamiento a un sensor
analgico, las variables fsicas naturales son en su mayora analgicas (al menos en un nivel que no sea
mecnico cuntico o de otro tipo discreto).

Adems el uso de sensores analgicos (al menos en su origen) es el ms difundido en la industria. Por
ejemplo termocuplas, termistores, etc. Uno de los problemas con este tipo de sensores analgicos es sin
duda la calibracin. Otro es la no linealidad de la medicin, etc.

2. Marco Terico

Para empezar, el sensor LM35 funciona, simplificadamente, as:

El sensor provee una salida de 10mV por cada grado centgrado. Por ejemplo si la temperatura es 20C la
salida del sensor es 200mV (es decir 20C x 10mV/C), lo que tambin funciona para temperaturas
negativas, as si la temperatura es -35C la salida del sensor es -350mV (es decir -35C x 10mV/C).

El sensor, para esto, tiene que estar alimentado con un voltaje entre 4 y 30V. Sin embargo hay que cuidar
que la corriente de polarizacin no provoque un calentamiento del sensor por el efecto Joule ya que esto
afectara nuestro deseo de que la salida de voltaje del sensor solo sea un reflejo de la temperatura externa.
Hay que decir, sin embargo, que el sensor posee un circuito de compensacin de temperatura para estos
casos.

Como en nuestro caso necesitamos un registro digital de la temperatura para posteriormente procesarla
(visualizarla, principalmente) el siguiente paso es digitalizar la seal analgica del sensor.

Para esto utilizaremos un Convertidor Anlogo Digital (ADC, por sus siglas en ingls). Existen diversos
mtodos para llevar a cabo una conversin anloga a digital, por ejemplo el mtodo de aproximaciones
sucesivas, el de rampa doble, el de resistencias ponderadas, etc.

Nosotros utilizaremos el ADC de aproximaciones sucesivas que viene embebido en el microcontrolador


PIC16F877. Dicho ADC tiene una resolucin de 10 bits (de lo cual hablaremos ms adelante junto con
otras caractersticas de este ADC en particular). De ms est decir que tambin utilizaremos este PIC para
realizar el procesamiento de los datos proporcionados por el ADC con el fin de proporcionar una
visualizacin adecuada (en nuestro caso, un LCD genrico) de la temperatura.
El ADC interno del PIC16F877

El PIC16F877 incluye un ADC interno de 10 bits (aunque hay la posibilidad de reducirlo a 8 bits), con 8
posibles canales de entrada, aunque en verdad existe un solo ADC que multiplexa estos canales.

Configurar el comportamiento de este ADC es muy simple. Hay 4 registros involucrados en la


configuracin del ADC:

Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


ADRESH Resultado (High Byte)
ADRESL Resultado (Low Byte)
ADCON0 ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE - ADON
ADCON1 ADFM - - - PCFG3 PCFG2 PCFG1 PCFG0

ADRESH y ADRESL se explican solos. Son los registros donde se almacena el resultado de la ltima
conversin analgica digital llevada a cabo. Como el ADC es de 10 bits se requieren dos registros de 8
bits (aunque sobre espacio).

Detalles sobre ADCON0

ADCON0 est separado en cuatro partes distintas, la primera est formada por los bits ADCS1 y ADCS0,
los cuales fijan la frecuencia de reloj usada para la conversin A/D. Veamos la siguiente tabla:

ADCS1 ADCS0 Frecuencia Conversin A/D Frecuencia Mxima PIC


0 0 Fosc/2 1.25Mhz
0 1 Fosc/8 5Mhz
1 0 Fosc/32 20Mhz
1 1 Frc(Osc. RC Interno del AD) Tp. 4us

Como nosotros vamos a usar un cristal de 20Mhz, nuestra seleccin para ADCS1:ADCS0 ser 1:0.

La segunda parte de ADCON0 consiste de tres bits, CHS2 CHS1 y CHS0, que son los que seleccionan
cuales de los 8 canales disponibles se usar en la siguiente conversin.

Veamos la siguiente tabla:

CHS2 CHS1 CHS0 Canal Pin


0 0 0 Canal 0 RA0
0 0 1 Canal 1 RA1
0 1 0 Canal 2 RA2
0 1 1 Canal 3 RA3
1 0 0 Canal 4 RA5
1 0 1 Canal 5 RE0
1 1 0 Canal 6 RE1
1 1 1 Canal 7 RE2

En nuestro caso slo utilizaremos un canal, el Canal0, por lo que CHS2:CHS1:CHS0 ser 0:0:0.

La tercera parte es un slo bit GO/DONE. Este bit tiene dos funciones. Si ponemos a 1 este bit se
inicia la conversin A/D. Cuando acaba la conversin A/D este bit automticamente se pone en 0, lo
cual hay que chequear permanentemente para empezar la siguiente conversin.

La cuarta parte es otro nico bit: ADON, que simplemente enciende o apaga el conversor A/D. Encendido
con 1, apagado con 0.

En resumen, para ADCON0 nosotros usaremos el valor binario 100000-1.

Detalles sobre ADCON1

ADCON1 es un poco ms complicado aunque slo est dividido en dos secciones.

La primera seccin es un solo bit: ADFM que es el bit que selecciona el formato de alineacin, 1 para
alinear el resultado a la derecha y 0 para alinearlo a la izquierda. La ventaja de esto es que hace muy
simple usar el Conversor de 10 bits como si fuese uno de 8 bits (poniendo a 0 el bit ADFM y leyendo
slo el resultado en ADRESH). En nuestro caso usaremos los 10 bits de resolucin. Usaremos ADFM con
valor 1.

Los bits PCFG3-0 es la parte ms complicada ya que configuran muchas cosas. Veamos la siguiente tabla:

PCFG3:0 AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 Vref+ Vref-
0000 A A A A A A A A Vdd Vss
0001 A A A A Vref+ A A A RA3 Vss
0010 D D D A A A A A Vdd Vss
0011 D D D A Vref+ A A A RA3 Vss
0100 D D D D A D A A Vdd Vss
0101 D D D D Vref+ D A A RA3 Vss
0110 D D D D D D D D Vdd Vss
0111 D D D D D D D D Vdd Vss
1000 A A A A Vref+ Vref- A A RA3 RA2
1001 D D A A A A A A Vdd Vss
1010 D D A A Vref+ A A A RA3 Vss
1011 D D A A Vref+ Vref- A A RA3 RA2
1100 D D D A Vref+ Vref- A A RA3 RA2
1101 D D D D Vref+ Vref- A A RA3 RA2
1110 D D D D D D D A Vdd Vss
1111 D D D D Vref+ Vref- D A RA3 RA2

En la tabla anterior se configuran cuatro cosas:


- Configurar un PIN como entrada analgica
- Configurar un PIN como entrada digital
- Configurar la referencia positiva para el conversor (Vref+)
- Configurar la referencia negativa para el conversor (Vref-)
Vamos a escoger el valor 0101 ya que slo necesitamos un par de entradas analgicas, vamos a usar
una referencia positiva de 2.5V (TL431) en RA3 y una referencia negativa de 0V (Tierra). Los dems
pines del puerto sern entradas digitales.

En resumen, nuestro valor de ADCON1 es 10000101.

3. Desarrollo

Ahora que hemos configurado el PIC, son necesarias algunas explicaciones adicionales para saber qu
significan estas configuraciones.

Nuestro ADC tiene 10 bits de resolucin, lo que significa que la salida del ADC puede variar entre 0
(todos los en 0) y 1023 (todos los bits en 1).

Cuando la salida del ADC est en 1023 la entrada analgica est a +Vref voltios (referencia positiva). En
nuestro caso +Vref = 2.5 V (En RA3).

Cuando la salida del ADC est en 0 la entrada analgica est a -Vref voltios (referencia negativa). En
nuestro caso Vref = 0 V (Tierra).

Recapitulando 1023 representa 2.5 V y 0 representa 0 V. Los nmeros del medio representan valores
medios (deducidos por una simple regla de tres).

Dividiendo 2.5 V entre 1023 resulta 0.00244 que es la resolucin en voltaje del conversor A/D. Por
ejemplo 1 representa 0.00244 V, 2 representa 0.00489 V, etc.

Es muy importante conocer esta resolucin de voltaje, y por simple facilidad es conveniente que esta
resolucin sea un nmero fcil de manejar en software (sin muchos decimales, por ejemplo).

En nuestro caso en realidad 2.5 / 1023 es 0.00244379276, el cual no es un nmero muy manejable por
el PIC, incluso si tomamos solo unos 4 decimales, por ejemplo, se produce un pequeo error. En este
punto se podran hacer dos cosas si se piensa mantener una resolucin de 10 bits: modificar la referencia
positiva +Vref , o atenuar (ganancia) la entrada analgica.

Nosotros llevaremos a cabo la segunda opcin. Daremos una ganancia mediante un OPAMP no inversor
con un potencimetro de calibracin de ganancia.

Software

Usaremos dos rutinas para: Inicializar el ADC interno del PIC16F877 y para llevar a cabo una conversin
A/D.

Init_ADC

; Confiurar ADCON0

movlw b'10000001'
movwf ADCON0

; Configurar ADCON1

BANKSEL ADCON1
movlw b'10000101'
movwf ADCON1
BANKSEL ADCON0
Return

Esta rutina simplemente configura los valore de ADCON0 y ADCON1

Read_ADC
bsf ADCON0, GO_DONE ;inicializa la
conversin
btfsc ADCON0, GO_DONE
goto $-1 ;espera hasta que el ADC
termine

movf ADRESH,W
andlw 0x03
movwf NumH
BANKSEL ADRESL
movf ADRESL,W
BANKSEL ADRESH
movwf NumL ; el resultado es puesto en NumL y
NumH
return

Esta segunda rutina lleva a cabo la conversin A/D y la guarda en los registros NumL y NumH (que son
registros de propsito general nombrados a nuestra discresin).

4. Resultados

Como ya mencionamos en un punto anterior: El LM35 nos proporciona 10mV por cada grado
Centgrado. Por una conveniencia de software nosotros vamos a buscar tener una resolucin de 10mV
(igual a la del sensor) mediante hardware.

Para esto usaremos un OPAMP no inversor como atenuador (usando un divisor de voltaje a la entrada,
para conseguir la atenuacin necesaria). Para calibrar el sensor con una sensibilidad de 10mV (con los 10
bits de ADC) bastar con conseguir una salida, del OPAMP, de 2,5 V (que coincida con la referencia
positiva +Vref. que a su vez se consigue mediante un IC TL431) para una entrada, del OPAMP, de 10,23
V.

Para el OPAMP hemos escogido un IC TL082 (Symmetric Supply), ya que tiene un mejor desempeo a
bajos niveles de voltajes que un IC LM358 (Single Supply). Ya que slo deseamos utilizar slo una
fuente de voltaje (5V), para generar los -5V para alimentar el TL082 se usar otro IC, el ICL7660 que
genera un voltaje negativo a partir de uno positivo. Este IC utiliza unos capacitares de carga.

Esto nos lleva al siguiente circuito para el acondicionamiento de la seal de entrada:


Una vez acondicionada, todo el procesamiento de la seal lo realiza el PIC trabajando a 20Mhz.

Para tener una temperatura de referencia de calibracin, usamos un termmetro digital basado en el IC
DS1820.

El programa comentado del PIC16F877 se adjunta como anexo.

5. Conclusiones

- Es importante escoger una resolucin adecuada para el ADC (dentro de su rango, por supuesto). Por
ejemplo para una aplicacin que no demande demasiada exactitud, escoger una resolucin elevada
complicar innecesariamente el sistema a disear.

- Hay que tener en cuenta los valores de referencia negativa y positiva (-Vref y +Vref) ya que estos,
junto con la resolucin, mejoraran el desempeo general del sistema. Por ejemplo si el sensor slo
tuviese una rango de salida de 0 100mV sera ilgico usar una rango para Vref y +Vref entre 0
10V; ya que los rangos superiores simplemente nunca se alcanzaran.

- Otra cosa importante y que se suele confundir con la resolucin es el tiempo de muestreo, por ejemplo
nosotros utilizamos aproximadamente 10 muestras por segundo. Esta caracterstica no debe superar
las limitaciones del ADC y debe ser escogida de acuerdo a la aplicacin, segn se est sensando una
variable que cambia con rapidez o una variable que vara lentamente.

- En nuestro software, se revisa constantemente por una bandera (bit) que se pone a cero cada vez que
acaba una conversin A/D (tcnica llamada polling). Esto est bien para esta aplicacin simple
como sta, en la que bsicamente slo se realiza una tarea (Mostar los resultados de la conversin).
Para aplicaciones que requieren realizar varias tareas lo ideal es usar interrupciones. El PIC provee
una interrupcin (configurable) para cada vez que termina una conversin A/D.

- Como ya se mencion anteriormente, si la variable anloga tiene una rapidez de cambio elevada (es
decir; es rpida), se recomienda usar un circuito sample and hold como etapa previa al ADC. En
nuestro caso esta etapa previa a sido obviada porque consideramos que la seal de sensor es
relativamente lenta.

También podría gustarte