Yo comparto mis arhivos en Dropbox.

Control de Temperatura con 4 LM35 y Comunicación con PC

Autor:
Federico Barchini

Agradecemos a:


Diego Eduardo San Juan Godoy

dsanjuang0200@ipn.mx
http://mx.geocities.com/irresistible_en_linea

LA TECNICA AL SERVICIO DE LA PATRIA


Descargas:
Carpeta (.doc)
Archivos Circuito Impreso (ORCAD)
Archivos Proyecto MPLAB (incluye el txt, asm, hex, lst, cod, err)


INTRODUCCION

El proyecto consiste en realizar un dispositivo que sea capaz de controlar la temperatura medida por cuatro sensores de temperatura en un rango de 0º a 99º C definido por el usuario desde la PC mediante el uso del microcontrolador PIC16F876A. Activar y desactivar actuadores para alcanzar la temperatura deseada. Las temperaturas medidas son visualizadas tanto en un LCD 2x16 como en la PC mediante la comunicación USART del PIC y utilizando el protocolo RS232.

Al conectar el dispositivo el usuario deberá introducir desde la PC el rango de temperatura deseada para cada uno de los sensores, como así también el tiempo de muestreo que podra ser de:

1)10 segundos

2)20 segundos

3)40 segundos

4)1 minuto

5)2 minutos

Una vez realizada las configuraciones se muestra en pantalla la temperatura actual de cada sensor, actualizándose de acuerdo al tiempo de muestreo seleccionado.

En funcionamiento si el usuario desea realizar algún cambio en la configuración, lo pondrá hacer pulsando la tecla “C” (en mayúscula).



FUNCIONAMIENTO DEL DISPOSITIVO


Los sensores de estado sólido que utilizamos para nuestro proyecto es el LM35 que tiene un rango de temperatura de -50ºC a 150ºC con incrementos lineales de 10mV/ºC, teniendo esto en cuenta tendremos que usar el ADC del PIC, si queremos hacer esto fácil debemos lograr un incremento de 1 bit/ºC es decir 1bit/mv.

Entonces vamos a calcular la tensión de referencia necesaria para cumplir con este requisito.

5V/256bits=0,01953125V/bits

El voltaje de referencia necesario

Vref+= (.01v/bit)(256)

Vref+= 2.56V

Como vemos el voltaje necesario en Vref+ es de 2.56V que es una tensión que está dentro del rango que maneja el conversor A/D del PIC, con una resolución de 8bits (en realidad ignoramos los LSB). El LM35DZ recomienda utilizar un diodo de referencia si utilizamos convertidores analógicos digitales, como el diodo LM336 (Diodo de referencia de 2.5V) acompañado de un preset para lograr la tensión necesaria.

El fabricante (LM35) también recomienda colocar capacitores de 100nF en paralelo con la salida, son capacitores de desacople es recomendable que sean de tantalio, de otra forma puede colocarse en su lugar capacitores cerámicos y deben colocarse físicamente lo más cerca posible de los sensores. Si no se colocan se tienen cambios rápidos de 1ºC en la salida de los sensores, que si no es importante que cambie en 1ºc se los puede omitir.



CONFIGURACION DEL ADC


El puerto analógico tiene una resolución de 10bits motivo por el cual; utiliza 2 registros ADRESH y ADRESL, dependiendo de la justificación; ADFM = 1 justifica a la derecha, los bits 9-8 quedan en el ADRESH y bits 7-0 quedan en el ADRESL; ADFM = 0 justifica a la izquierda, los bits 9-2 quedan en el ADRESH y bits 1-0 quedan en el ADRESL.

Una manera sencilla es con justificación derecha (los 2 más significativos en el ADRESH) los 8 menos significativos en el ADRESL, convirtiendo a BCD el ADRESH y dependiendo de los 2 HSB sumamos 768, 512 o 256 así tendremos la resolución de 0 a 1023 para enviar por puerto serie o mostrar en un LCD Configurado a 10bits mostrando el resultado en decimal.

Como nosotros utilizamos el ADC a 8 bits colocamos en justificación izquierda ADCON1<7> como cero, podemos considerar que los dos bits que quedan en el ADRESL son ruido eléctrico entonces convertimos los 8 bits que se encuentran en ADRES a BCD+30h (el ascii decimal) para enviarlos por puerto serie o LCD.

El PIC solo tiene un convertidor A/D pero tiene un multiplexor por el cual seleccionamos el pin del puertoA donde realizar la conversión. Podemos ver en el asm tenemos diferentes canales para realizar la conversión:

Canal 0_____Sensor1______AN0

Canal 1_____Sensor2______AN1

Canal 2_____Sensor3______AN2

Canal 3_____Vref+ ______RA3/AN3

Canal 4_____Sensor4______AN4


El Canal 3 no realiza conversión debido a que lo configuramos como entrada de tension de referencia.

Convertir de binario a BCD

Como los datos que enviamos por puerto serie o LCD deben ser ASCII, tenemos que convertir el binario que entrega el conversor A/D. Como trabajamos con 8 Bit la información a convertir entra en un registro y lo que tenemos que hacer es separar unidades, decenas y centenas mediante restas sucesivas de 100 en 100, después de 10 en 10 y lo que sobra son las unidades (se ve en el código asm). Ya separado el resultado de la conversión en BCD se debe sumar 30h para pasarlo a ASCII y queda listo para enviar al puerto serie o LCD.



Descargas:
Carpeta (.doc)
Archivos Circuito Impreso (ORCAD)
Archivos Proyecto MPLAB (incluye el txt, asm, hex, lst, cod, err)


8 comentarios:

andres dijo...

hola soy andres de durazno tengo un gran problema es que nose donde esta el circuito impreso de el proyecto de control de temperatura el de 4 lm35 y comunicacion de pc por favor tambien preciso la lista de materiales para llevar adelante este hermoso proyecto desde este momento estoy muy agradecido mucha gracias espero su respuesta lo cuanto antes por favor es que tengo que hacerlo cuanto antes

andres dijo...

hola gente todo bien quiero saber si me pueden ayuadar con mi proyecto va el de ustedes "Control de Temperatura con 4 LM35 y Comunicación con PC" quiero hacerlo y soy nuevo en esto quiero saber quien me puede ir dando instruciones como que materiales tengo que comprar y todo eso desde ya muchas gracias muy buena la web desde ya muchisimas gracias gurises

DIEGO FERNANDO dijo...

Seria bueno que agregaran tambien el programa para el manejo desde el pc

Luciano dijo...

El programa para el manejo del PC es el hiperterminal de windows, generalmente viene con todas las PC que usen WIN.

Lilian dijo...

hola, ¿que versión del proteus usas?

EDWIN dijo...

Hola me gustaria que alguien me enviara los archivos adjuntos de este blog ya que tengo un proyecto parecido y me interesa ver un aprte del codigo mi correo es kewin8923@gmail.com

HDJJ dijo...

HOLA SOY JUAN LA VERDAD ESTA MUY INTERESANTE EL PROYECTO, SOLO ME PREGUNTABA SI NO PUEDES SUBIR LA SIMULACION EN PROTEUS PARA TENER UNA IDEA DE COMO CONECTRARLO CON MAS PRECICION Y SI USASTE OSILADORES EXTERNOS GRACIAS Y EXITO...

JM Industrial Technology SA de CV dijo...

Hola

Me imagino que eres Politécnico, esta muy interesante tu proyecto, solo que te comento que en futuros proyectos trabajes con termopares ó pt100, son más complejos, pero te metes a que tu circuito pueda trabajar con temperaturas desde -200 hasta más de 1000º C, el hacerlo, pudieran hasta desarrollar algo para la industria, lo cual te puede dejar un negocio

si están interesados en estos en el siguiente link pueden encontrar literatura de los sensores industriales

http://jmi.com.mx/sensores.htm

espero les sea de gran utilidad

saludos

Comentarios, al FORO...

Chicos, por las consultas o comentarios, vayamos al FORO asi no tengamos problemas y todos podamos participar...
Alli publiqué unas respuestas.

Entradas populares

guía de empresas