Вы находитесь на странице: 1из 8

Universidad del Azuay

Facultad de Ciencias de la Administracin


Escuela de Ingeniera de Sistemas y Telemtica
Microcontroladores
Prctica 6: PIC16F887 - Manejo del Mdulo Conversor
Analgico Digital (ADC) - Sensor de Temperatura.

Autor:
Beln Arias
David Lpez

Profesor:
Ing. Kenneth S. Palacio Baus

15/01/2015

Prctica 6: PIC16F887 - Manejo del Mdulo Conversor


Analgico Digital (ADC) - Sensor de Temperatura.

1 Objetivos

Manejar el mdulo conversor analgico digital (DAC) integrado en el


microcontrolador PIC16F887.
Visualizar el resultado de la conversin ADC de 10 bits, en un display
LCD.
Aplicar los conocimientos adquiridos en una aplicacin de medicin de
temperatura con el sensor LM35.
Controlar un ventilador en funcin de los valores de temperatura
registrados por el microcontrolador para simular un escenario de
aplicacin real.

2 Materiales y Equipos
- 1 Microcontrolador PIC16F887
- 1 Cristal de 20Mhz
- 2 capacitores 22-33pF
- 12 Resistencias 1 KOhm - 1/2W
- 1 metro Cable multipar (para armar el circuito)
- 1 Project Board
- 1 Pinza
- 1 Pelacables
- 1 Programador para PIC16F887 pickit2 con su cable USB
- 1 Fuente de alimentacin 5V
- 1 par de cables lagartos
- 1 Multmetro
- 1 LCD 16 X 2
- 1 Sensor LM35
- 1 Ventilador
- 1 Diodo LED
3 Marco Terico
CONVERSOS ANLOGO DIGITAL A/D
Formado por 10 bits de resolucin y 14 canales.
La resolucin de cada bit procedente de la conversin tiene un valor que es
funcin de la tensin de referencia Vref:
Resolucin =

Por lo tanto:

Vref
Vref Vref =
1024 1024

A la entrada analgica de:


0V = 00 0000 0000 lmite mnimo
5V = 11 1111 1111 lmite mximo
Es el nico dispositivo que puede funcionar en modo sleep (reposo), conectado
con un oscilador interno RC.
Registros:
ADRESH: parte alta del resultado de la conversin.
ADRESL: parte baja del resultado de la conversin.
ADCONO: registro de control 0.
ADCON1: registro de control 1.
ANSEL, ANSELH: configuracin canales anlogos y digitales E/S
(Urbano, 2015)
SENSOR DE TEMPERATURA LM35
Es utilizado para detectar la temperatura del aire ambiente. El rango de
temperatura va desde los -40 Celsius a 150 Celsius. Para determinar la
sensibilidad utiliza 10mV por cada grado Celsius. La salida es proporcional a la
temperatura.
Caractersticas:
-

Calibrado directamente en Celsius.


Escala de factor lineal
Exactitud 0.5C ( a +25C).
Bajo costo
Soporta 4V 30V
Bajo auto-calentamiento.

Presentaciones:

Ilustracin 1 Presentacin SENSOR LM35

(Sanchez, 2015)

4 Diseo del Sistema Microcontrolado


1. Investigue el funcionamiento y tipo de salida proporcionada por el sensor de
temperatura con respuesta lineal LM35.
2. Desarrolle un programa en MikroC que cumpla con las siguientes
condiciones:
a) Configure el mdulo conversor analgico-digital ADC del microcontrolador
PIC16F887 para leer la seal proveniente del sensor de temperatura.
b) Implemente un programa que permita visualizar la temperatura registrada
por el sensor en un display LCD 16x2.
c) El display LCD deber mostrar el texto Temperatura = y seguidamente el
valor en grados centgrados registrado por el sensor con una cifra decimal, por
ejemplo 25.3C.
d) Implemente un simple sistema de control, que controle un ventilador (motor
elctrico) que se encender cuando la temperatura exceda un valor
determinado (por ejemplo 45C) y que ser simulado a travs de un diodo LED,
conectado a RD0. Este LED deber permanecer encendido mientras la
temperatura se encuentre por encima del valor indicado.
e) Para las pruebas de funcionamiento del circuito, utilizaremos un cautn para
calentar el sensor, y forzar una elevacin de temperatura, para as comprobar
el funcionamiento del sistema de control del ventilador.
a) Plataforma de Hardware:

Ilustracin 1 Circuito Sensor de Temperatura con LM35 y PIC16F887

PIC16F887: este es el componente principal del circuito, debido a que en l se


almacenan las instrucciones a realizar y las configuraciones.
Diodos LED: este componente permite comprobar la secuencia previamente
grabada en el PIC16f887 y que se produzca la interrupcin cada segundo
independientemente de la secuencia.
Resistencias: mediante estos componentes se asegura que la corriente no
pase directamente a los diodos LED.
Cristal de 20Mhz: indique la velocidad a la que debe trabajar, en este caso,
HS cristal de alta frecuencia.
Capacitores: regular los picos de energa que genera el cristal.
Micropulsantes: para accionar las seales de inicio o de fin de la secuencia.
Fuente de alimentacin: para dar energa al circuito y verificar el
funcionamiento.
LCD: permite la visualizacin de la temperatura.
Sensor LM35: permite obtener la temperatura ambiente.
Ventilador: permite simular el enfriamiento.
LED: simula la alerta.
b) Funcionamiento Software:
Explicar el programa, su funcionamiento general y especfico.
Describa con extremo detalle lo siguiente:

1) La subrutina de lectura del valor analgico proporcionado por


el sensor y capturado por el mdulo ADC.
VariableADC = ADC_Get_Sample(0);

// Obtenemos lectura del canal 0

El valor tomado del canal 0 es almacenado en la variable entera


VariableADC.
2) La manera en la que se da formato al valor de temperatura
ledo para visualizarlo posteriormente en el LCD.
Temperatura = (float)(VariableADC * 0.488); // Mediante esta operacin se obtiene el valor de
la temperatura real.
FloatToStr(Temperatura, Text);
// Convierte el valor de punto flotante a String
Lcd_Out(2,1, Text); //muestra en el LCD en la fila 2 posicin 1

La variable tipo entero VariableADC es transformada


implcitamente a una variable de tipo flotante, donde es
multiplicada por el valor de 0.488 que resulta al hacer los clculos
para obtener el valor exacto de la resolucin del conversor
analgico-digital.
Mediante la funcin Float_To_Str funciones se transforma el valor
almacenado en la variable flotante a String y luego con la funcin
Lcd_Out este valor es presentado en el LCD.
3) El sistema de control del ventilador.
4)
if(Temperatura>=27.0)
{
PORTD.B7= 1; // se active el bit 7 del Puerto B para que el ventilador arranque
FloatToStr(Temperatura, Text);
Lcd_Out(2,1, Text);
Delay_ms(2000);

}
else
{
PORTD.B7= 0; //se desactiva el Bit 7 del Puerto B para que el ventilador se detenga.
FloatToStr(Temperatura, Text);
Lcd_Out(2,1, Text);
Delay_ms(2000);
}

Mediante estas sentencias se controla el ventilador a travs de un if


que verifica si la temperatura obtenida es mayor a 27 C, entonces
enciende el ventilador caso contrario lo apaga.
5 Pruebas y Verificaciones
Mediante el grabador PICKIT2 el programa estructurado en lenguaje c++
descrito es grabado en el PIC16f887. Se da energa mediante la fuente de
alimentacin de 5V y procedemos a observar los siguientes resultados:
La pantalla de LCD se enciende y muestra un mensaje :

Temperatura= 27C , tomando la temperatura actual del ambiente


para este caso son los 27C .
Cuando el sensor LM35 es calentado mediante el uso del cautn se observa que
se enciende un motor en este caso el ventilador, as como un LED para simular
la funcin de una alarma.
6 Conclusiones y Recomendaciones
Al realizar esta prctica se ha presentado observado que el conversor de ADC
se comporta de manera eficiente al realizar la conversin. La temperatura es
tomada por el sensor LM35 que es muy preciso ya que la temperatura que se
muestra en el LCD se aproxima demasiado a la temperatura real del ambiente.
7 Referencias

Sanchez, J. (12 de Enero de 2015). UTP. Obtenido de UTP:


http://blog.utp.edu.co/jnsanchez/files/2011/03/LM351.pdf
Urbano, F. (12 de Enero de 2015). SlideShare. Obtenido de SlideShare:
http://es.slideshare.net/faurbano/conversor-adc?next_slideshow=1
Zebadua, J. (12 de Enero de 2015). BlogSpot. Obtenido de BlogSpot:
http://juliozebadua.blogspot.mx/2012/11/uso-del-lm35-con-pic16f887mikroc-pro.html

PREGUNTAS
Incluya la respuesta a las siguientes preguntas al final de su informe:
1. Determine la resolucin del conversor analgico-digital del
PIC16F887, si ste tiene 10 bits para representar las
mediciones y adems los voltajes de referencia se han
conectado a 5Vcc y GND.
La resolucin del conversor analgico-digital est dado por:

ADCres=
Temperatura=

Vres 5 V
= 10 bits =0,0048828125V
bits
2
2

ADCreadADCres
LM 35 Vp
Donde: ADCread = lectura del conversor del canal
ADCres = resolucin del conversor
LM35Vp = voltaje del sensor por cada Centgrado

Ejm: si el valor ledo del canal es 64.3490 entonces

Temperatura=

64.34900,00488
0.01Vp

Temperatura=31.40 C

(Zebadua, 2015)

Вам также может понравиться