Boletín No 46
1 de enero 2015
IMPLEMENTACIÓN DE SENSOR DE TEMPERATURA AMBIENTAL CON COMUNICACIÓN POR PUERTO PARALELO USANDO CÓDIGO ENSAMBLADOR
Isis Tatiana Galván García,
Email:
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
,
Roberto Antonio Orozco Vázquez,
Email:
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
,
Antonio Guadalupe Cruz Bautista,
Email:
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
,
Hind Taud,
Email: htaud @ipn.mx
Juan Carlos Herrera Lozada ,
Email:
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Centro de Innovación y Desarrollo Tecnológico en Cómputo. Instituto Politécnico Nacional
Abstract
El presente proyecto muestra la implementación de un sensor de temperatura ambiental, con el fin de tener almacenas la temperatura ambiente en registro usando pocos recursos de hardware y software y con entornos visuales poder acceder a esa base después de días, meses o años de forma compacta y portable. Los datos son mostrados en grados Centígrados y Fahrenheit en un equipo de cómputo con sistema operativo Windows 7 x32 que se comunica por puerto paralelo a un conjunto de dispositivos electrónicos compuesto por un circuito timer 555 en modo astable , un sensor de temperatura LM35, el circuito integrado ADC0804 el cual toma las señales analógicas y las convierte a señales digitales de 8 bits, una barra de leds, un amplificador de señales y dispositivos discretos con la función de ajustar las señales y adaptar la conversión de la energía calorífica a eléctrica adaptándola al sistema electrónico. El programa esta realizado en código ensamblador el cual se encarga de la actualización, conversión y muestra en pantalla de lecturas de la temperatura obtenidas con el timer.
Introducción
El desarrollo de la tecnología conlleva la necesidad de usar medidas específicas e implementar aparatos para su medición, tal es el caso de la temperatura, la cual se define como una magnitud física que refleja la cantidad de calor, en este caso, del ambiente. Para llevar a cabo dicha medición, se inventaron diversos instrumentos, el primero considerado en forma por Galileo en el año 1592. Sin embargo, Galileo no introdujo una escala de temperatura, ésta se introdujo hasta el 1700 donde Isaac Newton desarrollo la escala Newton la cual fue una medida, hasta llegar a los científicos William Thomson, Lord Kelvin y William Rankine quienes desarrollaron las medidas de la temperatura a nivel de energía interna del sistema que sea lo más bajo posible de la energía cinética del átomo (0 K igual 0 R).
Implementando distintas técnicas se buscaba mostrar las temperaturas con apoyo de los sensores que son dispositivos que miden magnitudes físicas y las transforma en variables eléctricas, físicas, etc. Específicamente, El cto. LM35 es un sensor de temperatura con una precisión calibrada de 1ºC. Su rango de medición abarca desde -55°C hasta 150°C. La salida es lineal y cada grado centígrado equivale a 10mV, por lo tanto:
150ºC = 1500mV |
-55ºC = -550mV1 |
La implementación del presente proyecto se divide en 3 partes: Configuración de Hardware, configuración de Software y conversión de datos, como se describe a continuación.
1. Configuración de Hardware
En la protoboard se conectó en primera instancia el LM555 en modo astable, ya que por una salida con forma de onda cuadrada (o rectangular) continua de ancho predefinido por el diseñador del circuito y que se repite en forma continua con cada pulso (ver Figura 1), el cual se puede determinar frecuencia con un potenciómetro o capacitores de diferentes medidas cuya salida se conecta a la entrada del LM35, con lo cual se actualiza la lectura de la temperatura de dicho dispositivo de acuerdo a la frecuencia del pulso del reloj (ver Figura 2).
Figura 1.Configuración del LM555 en modo astable |
Figura 2.Implementación del LM555 en protoboard |
La salida del LM35 está conectada a la entrada del convertidor ADC0804, para la conversión de la señal analógica en digital (binario) (ver Figura 3).
Figura 3.Conexión del LM35 al convertidor ADC0804 |
La salida del convertidor está conectada a las entradas de la barra de leds y el amplificador, así como a las entradas del cable paralelo que establece la comunicación entre el circuito y el puerto de la computadora (Figura 4).
Figura 4. Circuito en protoboard |
Se emplearon los siguientes dispositivos, debido a la facilidad para la obtención de datos, frecuencia en actualización de los mismos y su estabilidad para lograr una conexión adecuada: Computadora con procesador Intel Core i3-2105 a 3.1 GHz, de 4GB de RAM, Windows 7 Service Pack 1, de 32 bits, con puerto paralelo; sensor de temperatura (LM35), reloj (LM555), convertidor Analógico-Digital (ADC0804), barra de LEDS (BARR 10G), potenciómetro 1 KΩ (B1K), protoboard, cable paralelo hembra-hembra, Pines de conexión, fuente de 5.5V, amplificador de señal, 8 Resistencias 330 Ω, 2 capacitores cerámicos de 0.01µF (104), 2 capacitores electrolíticos de 10µF a 16V, 1 capacitor de tantalio de 10 µF 25V; en cuanto al software, se utilizó el debug de Windows para el código en lenguaje ensamblador.
2. Configuración de Software
Para lograr una comunicación bidireccional, es necesario configurar desde el setup de inicio de la pc el puerto paralelo como “Bidireccional” y posteriormente desde el debug de Windows usar el puerto 0378H (ver Figura 5).
Figura 5. Usar el puerto 0378H |
Para comprobar que existe la comunicación, se conectan LEDS a las salidas de los pines de conexión del cable paralelo para enviar datos desde la PC a la protoboard. El código para el envío de datos es:
Comprobando que hay comunicación se obtienen los datos del puerto paralelo y se hace su conversión a la escala Centígrada y Fahrenheit, usando la instrucción aam y la salida en pantalla, así como la variación de temperatura (Figura 6).
Figura 6 |
El código completo de ensamblador de la conversión a grados Centígrados y grados Fahrenheit y su salida en pantalla se encuentra en el siguiente enlace: https://www.dropbox.com/s/eacltqyqgiq7vpg/Conversion.txt
Para ver el circuito en funcionamiento y la salida en consola, dirigirse a este enlace: http://youtu.be/v7omJrywSfA
Conclusiones
Las lecturas de temperaturas fueron satisfactorias y velocidad inmediata en la obtención de los datos, al aplicar estímulo con una fuente de calor (encendedor, cerillo). El costo de los dispositivos empleados es económico y su durabilidad y resistencia a las pruebas fue notable.
Se implementa una forma de realizar la conversión de hexadecimal a decimal de los datos de la temperatura obtenidos, y posteriormente a grados centígrados y grados Fahrenheit de la comunicación por paralelo. La obtención del conocimiento, tanto en configuración física de sistemas analógicos e interrupciones en lenguaje ensamblador se amplió de manera significativa para una comprensión de las funciones del procesador.
Bibliografía
1.- George Gamow, Biography of Physics, Alianza Editorial S.A. de C.V. , cap. 4, 2001.
2.- http://www.national.com/ds/LM/LM35.pdf Consultada el 6 de julio de 2014.
3.- http://www.unicrom.com/tut_multivibrador_astable_555.asp Consultada el 20 de marzo de 2014.
4.- Peter Abel. Lenguaje Ensamblador para PC IBM y Compatibles. Prentice Hall Hispanoamericana. 3 Ed. Cap. 2, 3, 1996.