Sie sind auf Seite 1von 16

Universidad Politcnica de Tulancingo

CONTROL DE TEMPERATURA MEDIANTE UNA INTERFAZ GRAFICA DE VISUAL C# EN COMUNICACIN CON ARDUINO.

U P T

Por:

Luis Eugenio Cabrera Ortega Emmanuel Delgadillo Salazar Enrique Gonzlez Amador Jos Carlos Prez Cruz Jorge Luis Rosales Borjas
Reporte

Supervisada por:

Ing. Arturo Negrete Medelln


Tulancingo de Bravo, Hidalgo

Agosto 2012

UPT 2012 Derechos reservados El autor otorga a UPT el permiso de reproducir y distribuir copias de este reporte en su totalidad o en partes.

INTRODUCCIN:

La automatizacin hoy en da es una de las reas con mayor aplicacin debido al amplio campo de aplicacin, tanto en la industria como en labores domsticas. Desde las primeras tarjetas operadas con relevadores hasta los procesos controlados mediante circuitos integrados, tales como PLCs, microprocesadores, micro controladores, entre otros. En el presente documento se darn a conocer los procedimientos mediante los cuales se desarroll un sistema de automatizacin para el control de temperatura de un ambiente dado, esto con ayuda de tres herramientas principales, Arduino, Visual C# y un sensor de temperatura LM35. Aplicando los principios bsicos para la automatizacin.

OBJETIVO:

Crear un sistema de interfaz grfica en Visual C# que interacte con el dispositivo Arduino que permita mantener un ambiente en especfico en un rango de temperatura asignado por el usuario.

MARCO TEORICO

El Arduino es una plataforma de hardware libre, basada en una placa con un micro controlador y un entorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos multidisciplinares. Comnmente consiste en una placa con un micro controlador Atmel AVR con puertos de entrada y salida. El software consiste en un entorno de desarrollo que implementa el lenguaje de programacin Processing/Writting. Arduino se puede utilizar para desarrollar objetos interactivos autnomos. El compilador necesario para programarlo est disponible de forma gratuita en su pgina oficial y est disponible para Mac OS X, Linux y Windows. Consta de 14 entradas digitales configurables entrada i/0 salidas que

operan a 5 voltios. Cada pin puede proporcionar o recibir un mximo de 40 mA. Si se conecta cualquier cosa a los pines 0 y 1 eso interferir con la comunicacin USB. Puede convertir valores anlogos a digitales con sus seis entradas analgicas que proporcionan una resolucin de 10 bits. Por defecto miden de 0 V a 5V, aunque es posible cambiar el nivel ms alto utilizando el Pin Aref y algn cdigo de bajo nivel. LM35 Circuito integrado en el cual se ha encapsulado un sensor de temperatura, el cual su voltaje de salida es cercanamente proporcional a la temperatura en Celsius. Su rango de medicin va desde -55 C hasta 150 C, su salida es lineal y su respuesta a la salida es de 10mv por grado centgrado.

Esta calibrado directamente en grados Celsius. La tensin de salida es proporcional a la temperatura. Tiene una precisin garantizada de 0.5C a 25C. Opera entre 4 y 30 volts de alimentacin. Baja impedancia de salida. Baja corriente de alimentacin (60uA). Bajo costo.

Visual C# Es un lenguaje de programacin orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET. C# es uno de los lenguajes de programacin diseados para la infraestructura de lenguaje comn. Su sintaxis bsica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes. Metas del diseo del lenguaje

Lenguaje de programacin orientado a objetos simple, moderno y de propsito general. Inclusin de principios de ingeniera de software tales como revisin estricta de los tipos de datos, revisin de lmites de vectores, deteccin

de intentos de usar variables no inicializadas, y recoleccin de basura automtica.

Capacidad para desarrollar componentes de software que se puedan usar en ambientes distribuidos. Portabilidad del cdigo fuente. Fcil migracin del programador al nuevo lenguaje, especialmente para programadores familiarizados con C, C++ y Java. Soporte para internacionalizacin. Adecuacin para escribir aplicaciones de cualquier tamao: desde las ms grandes y sofisticadas como sistemas operativos hasta las ms pequeas funciones. Aplicaciones econmicas en cuanto a memoria y procesado.

DESARROLLO:

Primeramente se procedi a generar la interfaz grfica mediante el software Visual C#, la cual dentro de sus principales caractersticas debe tener un men de conexin, adems de permitir la seleccin del dispositivo con el cual se desea conectar, un panel frontal que permita al usuario establecer las parmetros de temperatura mxima y mnima a la que debe mantenerse el sistema, as mismo debe ser capaz de obtener datos generados por el Arduino para procesarlos y a su vez comunicarle al mismo si el dato recibido se encuentra o no dentro del rango de temperatura establecido.

INTERFACE VISUAL C#

El men de conectividad despliega las opciones de conectar, desconectar y seleccionar puerto. La programacin de este men se ha hecho en prcticas pasadas y bsicamente el objetivo que tiene es el de poder elegir a que puerto COM queremos conectarnos. La opcin de conectar o desconectar, las cuales permiten iniciar la comunicacin o terminarla respectivamente.

En la imagen anterior tambin se puede observar que se tienen dos numericUpDown1, se eligieron debido a que se necesitaba un interface que pudiera aumentar de uno en uno el valor mximo o mnimo de la temperatura. De igual forma se tiene en el men de ayuda, una interface que nos indica el funcionamiento y manera de operar la aplicacin. Y otra que nos indica el acerca de de la aplicacin.

Para el clculo de la temperatura se llev a cabo mediante razones y proporciones, comnmente llamada regla de 3. Para ello la entrada analgica de Arduino que lea los datos del sensor como funciona con valores de 0V a 5V y te dar 0 para 0V y 1023 para 5. Entonces bsicamente la frmula utilizada fue: valtemp = temperatura50 1024

Donde el valtemp es el valor de la temperatura en grados Celsius. Temperatura es el valor binario ledo del Arduino. Y el valtemp es el valor que se muestra en el textbox de temperatura.

Posteriormente solo se comparaba con los valores mnimos y mximos de temperatura. Y si el valor era mayor al valor mximo con la funcin serialPort1.Write () se enviaba al Arduino la indicacin de que encendiera el ventilador. En este caso serialPort1.Write("1");//Encender ventilador

Si el valor de temperatura era menor al mnimo entonces: serialPort1.Write("2");//Encender foco Si el valor estaba dentro de los valores mnimos y mximos entonces: serialPort1.Write("3");//Apaga todo. Esto se ejecutaba cada vez que se reciba un valor de temperatura de Arduino. PROGRAMA ARDUINO En el Arduino se utiliz la funcin Serial.available () y normalmente se utiliza con un if: If (Serial.available ())

Comnmente se leera si hay algo en el puerto entonces Y lo que se puso dentro del if fue la instruccin que lo que lea en el puerto lo guardara en una variable llamada valor. Valor=Serial.read (); Y por ltimo tambin se comparaban el valor ledo con los valores. Es decir si el valor ledo era igual a 1 entonces de acuerdo a la lgica tendra que encender el ventilador. Ya que en C# el uno indicaba que el valor de la temperatura era mayor que la temperatura mxima, por lo tanto estaba caliente. digitalWrite(ventilador,HIGH); De lo contrario que lo apagara, es decir si el valor era diferente de 1. Si el valor era 2 entonces encenda el foco ya que esto indicaba que estaba frio. digitalWrite(foco,HIGH); De lo contrario que apagara el foco. Y todo esto se ejecutaba cada 100 ms. De acuerdo a las caractersticas descritas en la hoja de datos del LM35, la conexin que se utiliz para esta prctica fue la conexin tpica como se muestra en la siguiente imagen:

De acuerdo con la hoja de datos del sensor se hizo la conexin en base a la siguiente figura:

El pin VS se conect a una fuente de alimentacin de 5 V el pin GND como su nombre indica se conect tierra de los 5V, y el pin de salida Vout se conect en serie con un potencimetro para calibrar el voltaje de salida del integrado a 10mV por grado centgrado. La razn del porque se conect el potencimetro a la salida del sensor fue para calibrar el sensor, con ayuda de un sensor digital checamos la temperatura en ese momento entonces checamos la salida del sensor con un multmetro y con el potencimetro aumentbamos o bajbamos la resistencia de acuerdo a lo que queramos a la salida. Por ejemplo la temperatura que se ley desde el termmetro digital fue de 23 C entonces a la salida del sensor se esperaban 0.230 V, por lo tanto lo que se hizo fue variar la resistencia del potencimetro hasta obtener el voltaje deseado. LM741 Para poder acondicionar la seal del sensor a un rango adecuado para conectarlo a un pin analgico de la plataforma Arduino, se utiliz un amplificador operacional para poder amplificar la seal del sensor y llevarla a un rango de 0 a 5V. Por ejemplo si la temperatura ambiente es de 23C, la salida del amplificador tendr que arrojar un voltaje de 2.3V, de esta manera ser ms fcil procesarla seal del sensor. Caractersticas del amplificador operacional LM741: Este dispositivo es un amplificador de propsito general bastante conocido y de uso muy extendido. Sus parmetros son bastante regulares, no teniendo ninguno que sea el mejor respecto a los de los dems, pero en conjunto presenta una alta impedancia de entrada, pequeos offset (de corriente y de voltaje) en la entrada y buenos parmetros. La configuracin que se utiliz para el amplificador fue la no inversora como se muestra en la siguiente figura:

Rf = 180K R1 = 18K A la entrada no inversora se conect la seal del sensor, que ser amplificada con una ganancia de 10. La salida del amplificador se conect hacia una entrada analgica del Arduino.

Una vez realizados los programas correspondientes de la interfaz y el Arduino, se realiz una maqueta, cuyo propsito es simular el ambiente a controlar y consta de lo siguiente:
Ventilador de Alta Velocidad para enfriamiento

Mdulo de Calefacci

Ambiente a Controlar

El mdulo de calefaccin consta de un Foco y tres ventiladores que hacen circular el aire caliente producido en la zona del foco hacia el ambiente a controlar.

Debido a que los dispositivos trabajan a diferentes voltajes y corrientes fue necesario realizar una etapa de potencia que permitiera la activacin de los mismos a partir de las seales emitidas por el Arduino, para ello se realiz un circuito en el cual se utilizaron 3 relevadores, los cuales se energizan a travs de un transistor 2n2222 cuya base es excitada por las seales del Arduino como se muestra a continuacin.

Una vez realizadas todas las conexiones se realiz la ejecucin del programa lo cual arrojo como resultado que si en el ambiente se rebasaba la temperatura mxima se enciende el ventilador de alta velocidad, mientras que al disminuir ms del lmite de temperatura mnima se encenda el mdulo de calefaccin y si la temperatura se encontraba entre el rango establecido el sistema permanece en reposo.

Temperatura Normal

Temperatura por debajo de la mnima.

Exceso de temperatura.

PROBLEMAS ENCONTRADOS:

Sincronizacin de los valores ledos con la interfaz de Windows Un error que se present en la lectura de los datos con la interfaz de Windows fue que cuando el Arduino hacia la lectura del dato que nos presentaba el sensor de temperatura, esta al enviarlo a la interfaz lo haca en toda una lnea y para indicarle que dejara de recibir este dato se le indico que hiciera un salto de lnea, entonces al hacer esta lectura la interfaz nos mostraba un error y se sala de la aplicacin que se cre, dicindonos que la cadena no tena un formato correcto. Este error se corrigi quitando el salto de lnea ya que la funcin que se utiliz en la interfaz read line lea lnea por lnea sin la necesidad de indicar un espacio entre la lneas. Otro problema que se nos presento es la oscilacin en cuanto al encender y apagar el sistema de enfriamiento y calentamiento, es decir en la aplicacin se le modificaba el valor mnimo y mximo de temperatura para activar los sistemas mencionados. Si los valores limites eran muy prximos es decir un valor mnimo de 23 y un mximo de 24, estos valores hacan que los sistemas se encendieran y apagaran de manera oscilatoria

CONCLUSIONES:

LUIS EUGENIO CABRERA ORTEGA: Con la elaboracin de este

proyecto nos fue posible aplicar varios conocimientos adquiridos a lo largo de la carrera como lo es la parte de control, programacin y etapas de potencia, as como la integracin de las habilidades obtenidas en el presente curso para la creacin de interfaces graficas en programacin orientada a objetos de Visual C# y el Uso del componente Arduino, con lo cual se puede concluir que el control de procesos mediante un ordenador y dispositivos perifricos en de gran ayuda, ya que adems de facilitar las modificaciones al programa, su factibilidad y campos de aplicacin son muy altos.

JORGE LUIS ROSALES BORJAS: En este proyecto aplicamos varios

conocimientos adquiridos y a pesar de los problemas surgidos nos fue posible llevar a cabo el proyecto de manera satisfactoria, lo cual permite llegar a la conclusin de que es posible controlar un proceso o sistema

desde el ordenador utilizando dispositivos de comunicacin con algn puerto de la PC, en este caso el Arduino es el dispositivo que fungi como dispositivo de lectura y procesamiento de datos y C# como la interfaz grfica de interaccin con el usuario.

ENRIQUE GONZLEZ AMADOR: Este proyecto me agrado ya que en

primer lugar se obtuvo un resultado bueno, el resultado esperado. Si bien hubo algunas broncas, lo bueno es que se lograron resolver, y de igual manera se pudo observar el principio bsico para la automatizacin de un sistema. Me pareci muy agradable el poder entrar al mundo de la programacin de esta forma, y el haber logrado la comunicacin entre Arduino y mquina y de maquina al Arduino, creo que este tipo de proyectos pueden tener una gran aplicacin en la vida diaria. La manera en la que se logra interactuar es muy familiar ya que prcticamente ves resultados en Windows, en su ambiente. En cuanto a la realizacin de los circuitos para poder lograr la interaccin, se podra decir que conjuntamos varios conocimientos de la carrera para la conclusin correcta del proyecto, ya que se usaron de transistores, relevadores, sensores y la programacin. Por lo que me quedo con una gran satisfaccin de lo hecho en este curso.

JOS CARLOS PREZ CRUZ: Gracias a este proyecto se pudo descubrir

que el uso de la plataforma Arduino es de gran utilidad ya que resuelve muchos problemas de adquisicin de datos y control de componentes externos, los cuales tambin han permitido llevar al xito los resultados del proyecto, ya que como se ha mencionado resolvi de manera sencilla la adquisicin de seales provenientes de los sensores para controlar los motores que mueven los ventiladores que estabilizan la temperatura de la maqueta. C# fue tambin de gran utilidad ya que ofrece un ambiente muy amigable y por tanto muy sencillo de programar para el diseador y muy fcil de operar por cualquier usuario, ya que no necesita de grandes conocimientos para poder operar el sistema. Gracias a las formas programadas en C#, se pudo controlar de manera sencilla la temperatura deseada en la maqueta.

EMMANUEL DELGADILLO SALAZAR: En este proyecto nos pudimos

dar cuenta de que hay varias aplicaciones en las cuales podemos hacer la utilizacin del puerto serie, se realiz la conexin a travs de este puerto con la interfaz de lectura y procesamiento de datos como lo es un micro

controlador el Arduino y la interfaz grfica c# donde se mostraron los datos obtenidos de un sensor de temperatura.

Das könnte Ihnen auch gefallen