temperature control

7
Resumen Se controlará la temperatura de una masa de agua. El valor deseado de temperatura se establecerá a través de teclado.El valor actual será sensado con el conversor ADC128S022 del sistema DE0!ano. El valor actual de temperatura " el valor ob#eto serán visuali$ados. El procesamiento de datos digitales se reali$ará en la %&'A del sistema. I. DESCRIPCIÓNG ENERAL DEL S ISTEMA . Se desea controlar la temperatura de un volumen de agua de no ms de un l!tro. Para ello se !mplementa un control de temperatura "asado en la DE#$Nano. La %!gura & !lustra el d!agrama de "lo'ues general del s!stema de control 'ue se real!menta grac!as al "lo'ue Sensar Temperatura 'ue m!de la temperatura de la masa de agua ( t!ene como sal!da un valor ser!al de &) "!ts 'ue representa el valor de la temperatura en el agua. El "lo'ue Procesamiento y Control rec!"e este dato (* con "ase en un valor de temperatura de re%erenc!a* genera una acc!+n de control representada med!ante una se,al d!g!tal 'ue act!va o desact!va el "lo'ue Actuado de acuerdo con la acc!+n de control. El "lo'ue -!sual! ar Datos se !mplementa para 'ue el usuar!o pueda o"servar el valor de temperatura de la masa de agua ( el valor de re%erenc!a 'ue se reg!stra a trav/s del "lo'ue Ingresar Datos . Cada uno de los "lo'ues menc!onados son descr!tos aldetalle en lapr+0!ma secc!+n de este documento. 1!g. &. D!agrama de "lo'ues general del s!stema Control de Temperatura de una Masa de Agua* 2asado en una DE#$Nano. II. DESCRIPCIÓN P3R 2 L345ES. A.Bloque Sensar Temperatura. 1!g. ). D!agrama de "lo'ues !nterno delbloque Sensar Temperatura . De acuerdo con el d!agrama de "lo'ues de la %! "lo'ue Sensar temperatura est const!tu!do descr!tos un por uno a cont!nuac!+n. Como elemento de real!mentac!+n* se determ!n+ termocupla t!po 7. Las termocuplas* tam"!/n co termopares* "asan su %unc!onam!ento en el e%ec por Sir Thomas Seebeck 8 en un c!rcu!to %ormado metales d!st!ntos* con dos un!ones a d!%erente aparece una corr!ente el/ctr!ca 9&: ;ver %!gur Este de transductor %ue eleg!do grac!as a su a med!da ;# a =## >C<* d!mens!ones reduc!das* e largo pla o* versat!l!dad* %!a"!l!dad* econom?a( espec!almente* de"!do a 'ue no re'u!ere e0c!ta El uso de este t!po de transductor trae cons!go un !nconven!ente* la un!+n %r?a. Con el uso de cu es necesar!o @acer una correcc!+n de la med!da un!+n %r?a. De"!do a 'ue el e%ecto See"ec con %unc!onam!ento de la termocupla en la un!+n ca conectemos los ca"les de sal!da de la termocup volt?metro o con un c!rcu!to ampl!%!cador de s una nueva un!+n de metales ;'ue generalmente n m!smo t!po< por lo 'ue e0!st!r una nueva un!+ e%ecto See"ec generando potenc!al 'ue a%ectar generada por la un!+n cal!ente. Este pro"lema se puede soluc!onar %c!lmente !mplementando un c!rcu!to acond!c!onador de se,al 'ue m!de la temperatur %r?a* corr!ge cual'u!er error !nduc!do en la m una se,al de &#m- por cada grado Cels!us 'ue e la un!+n cal!ente. El %unc!onam!ento del c!rcu cont!nuac!+n con "ase en el d!agrama es'uemt en la %!gura B. En la un!+n %r?a ;cone0!+n de los ca"les de la Control de Temperatura de una Masa 2asado en una DE#$Nano Parra 4. @oan Se"ast!an* Escuela de Ingeniería Elctrica y Electr!nica " #acultad de Ingeniería$ %n 'alle &

Upload: sebastian-parra-quiroga

Post on 02-Nov-2015

220 views

Category:

Documents


2 download

DESCRIPTION

First final project report of VHDL.

TRANSCRIPT

Control de Temperatura de una Masa de Agua, Basado en una DE0-NanoParra Q. Jhoan Sebastian, Escuela de Ingeniera Elctrica y Electrnica - Facultad de Ingeniera, Universidad del ValleResumen Se controlar la temperatura de una masa de agua. El valor deseado de temperatura se establecer a travs de teclado. El valor actual ser sensado con el conversor ADC128S022 del sistema DE0-Nano. El valor actual de temperatura y el valor objeto sern visualizados. El procesamiento de datos digitales se realizar en la FPGA del sistema.

Descripcin General del Sistema.

Se desea controlar la temperatura de un volumen de agua de no ms de un litro. Para ello se implementa un control de temperatura basado en la DE0-Nano. La figura 1 ilustra el diagrama de bloques general del sistema de control que se realimenta gracias al bloque Sensar Temperatura que mide la temperatura de la masa de agua y tiene como salida un valor serial de 12 bits que representa el valor de la temperatura en el agua. El bloque Procesamiento y Control recibe este dato y, con base en un valor de temperatura de referencia, genera una accin de control representada mediante una seal digital que activa o desactiva el bloque Actuado de acuerdo con la accin de control. El bloque Visualizar Datos se implementa para que el usuario pueda observar el valor de temperatura de la masa de agua y el valor de referencia que se registra a travs del bloque Ingresar Datos. Cada uno de los bloques mencionados son descritos al detalle en la prxima seccin de este documento.

Fig. 1. Diagrama de bloques general del sistema Control de Temperatura de una Masa de Agua, Basado en una DE0-Nano.

Descripcin por Bloques. A. Bloque Sensar Temperatura.

Fig. 2. Diagrama de bloques interno del bloque Sensar Temperatura.

De acuerdo con el diagrama de bloques de la figura 2, el bloque Sensar temperatura est constituido por 3 elementos descritos un por uno a continuacin.

Como elemento de realimentacin, se determin el uso de una termocupla tipo K. Las termocuplas, tambin conocidas como termopares, basan su funcionamiento en el efecto descubierto por Sir Thomas Seebeck: en un circuito formado por dos metales distintos, con dos uniones a diferente temperatura, aparece una corriente elctrica [1] (ver figura 3). Este de transductor fue elegido gracias a su amplio margen de medida (0 a 800 C), dimensiones reducidas, estabilidad a largo plazo, versatilidad, fiabilidad, economa y especialmente, debido a que no requiere excitacin externa.

El uso de este tipo de transductor trae consigo un inconveniente, la unin fra. Con el uso de cualquier termopar es necesario hacer una correccin de la medida a causa de la unin fra. Debido a que el efecto Seebeck condiciona el funcionamiento de la termocupla en la unin caliente, cuando conectemos los cables de salida de la termocupla con un voltmetro o con un circuito amplificador de seal se creara una nueva unin de metales (que generalmente no son del mismo tipo) por lo que existir una nueva unin sometida a efecto Seebeck generando potencial que afectara la medicin generada por la unin caliente. Este problema se puede solucionar fcilmente implementando un circuito acondicionador de seal que mide la temperatura de la unin fra, corrige cualquier error inducido en la medicin, y entrega una seal de 10mV por cada grado Celsius que este detectando la unin caliente. El funcionamiento del circuito se explica a continuacin con base en el diagrama esquemtico ilustrado en la figura 4.

En la unin fra (conexin de los cables de la termocupla con la plaqueta de circuito impreso) se tiene un sensor de temperatura LM35 que proporciona 10mV por cada grado Celsius. Es muy importante que este sensor este lo ms prximo posible a la unin fra. Gracias a este sensor y el divisor de voltaje formado por R1, RV1 y R2, se compensar el error inducido por la unin fra, y se proporcionara un voltaje de 0.04mV por grado Celsius, que es la misma tensin de salida que arrojara una termocupla tipo K. Esta seal es amplificada con una ganancia de 250, obteniendo 10mV por grado Celsius.

Fig. 3. Diagrama de funcionamiento termopar. [1]

1

Fig. 4. Circuito adecuador de seal para una termocupla tipo K. [4]

ADC128S022 es un conversor de anlogo a digital de 12 bits fabricado por Texas Instruments. Este elemento, integrado en la tarjeta DE0-Nano en encapsulado TSSOP de 16 pines, recibe la seal de voltaje DC del circuito de adecuacin de seal (figura 4) y entrega un valor serial de 12 bits que es procesado por el bloque Procesamiento y Control con el cual establece comunicacin a travs de las seales ~CS, SCLK, DOUT y DIN (figura 5) de acuerdo con los tiempos de operacin ilustrados en la figura 6.

Fig. 5. Entradas y salidas del ADC128S022.

Fig. 6. Diagrama de tiempos de operacin, ADC128S022. [7]

B. Bloque Ingresar Datos.

Fig. 7. Diagrama de bloques interno, bloque Ingresar Datos.

El bloque Ingresar Datos est constituido nicamente por un teclado matricial de 16 teclas a travs del cual el usuario del sistema ingresa el valor de temperatura en grados Celsius que ser el valor de referencia que tome el bloque Procesamiento y Control. Este bloque recibe cuatro seales digitales provenientes del bloque Procesamiento y Control y le entrega a este mismo bloque cuatro seales digitales mediante las cuales se identificar la tecla oprimida.

Fig. 7a. Funcionamiento, bloque Ingresar Datos.

La figura 7a ilustra en funcionamiento del bloque Ingresar Datos; el bloque Procesamiento y Control maneja las seales I1-I4 en cdigo One Hot. Cada seal I estar activa de manera individual un ciclo de reloj en el cual el bloque Procesamiento y Control debe identificar cual tecla es oprimida, revisando el estado de la seales O1-O4. En el diagrama se ilustra que en un instante de tiempo la seal I1 est activa (rojo) y la seal O4 se presenta activa (rojo), lo que le indica al bloque Procesamiento y Control que la tecla A fue oprimida.

C. Bloque Procesamiento y Control.

Fig. 8. Diagrama de bloques interno, bloque Procesamiento y Control.

Este bloque se implementa completamente en la FPGA Cyclone IV EP4CE22F17C6N de Altera. Como se ilustra en la figura 8, tres bloques, Control, Driver Teclado Matricial 4x4 y Driver LCD 2x16, son bloques funcionales en cdigo VHDL y conforman el bloque Procesamiento y Control.

El bloque Driver Teclado Matricial 4x4 maneja cuatro salidas en cdigo One Hot que se conectan al bloque Ingresar Datos, del cual recibe cuatro seales digitales que indicaran que tecla es oprimida. El usuario debe introducir valores de temperatura de dos cifras en grados Celsius en un rango de 30-99C. El usuario debe oprimir la tecla designada como ENTER cuando desee registrar el valor ingresado. Si el valor es vlido, se enva al bloque Procesamiento y Control.

El bloque Control recibe del bloque Sensar Temperatura un valor serial de 8 bits que corresponde al valor de temperatura medido en la masa de agua. Este valor ser comparado con el valor Referencia que proporciona el bloque Driver Teclado Matricial 4x4 y se generar una accin de control representada en una seal digital que se enva al bloque Actuador, activndolo o inactivndolo.

El bloque Driver LCD 2x16 es encargado de iniciar el LCD 2x16 y desplegar el mensaje VREF= junto con el valor de temperatura ingresado por el usuario. Si el valor de temperatura no es vlido, por ejemplo si es un valor fuera del rango de temperatura, el display debe desplegar el mensaje VREF INVALID y luego mostrar nuevamente el mensaje VREF=. La validez del dato ingresado por el usuario se indica a travs la seal OK (1 vlido, 0 invlido). Si el dato es vlido se procede a desplegar el mensaje VREF= junto con el valor Referencia en el rengln superior del display y en el inferior TEMP= junto con el valor Lectura que ser igual al valor medido por el bloque Sensar Temperatura.

D. Bloque Actuador.

Fig. 9. Diagrama de bloques interno, bloque Actuador.

El bloque Actuador tiene dos elementos hardware ilustrados en la figura 9. El Optocoplador es quien recibe la seal de control del bloque Procesamiento y Control. Si esta seal es 1 el Optoacoplador entra en conduccin activando la Resistencia Calefactora. Si la seal de control es 0, la Resistencia Calefactora es desactivada.

El diagrama esquemtico del bloque Actuador se presenta en la figura 10. El optoacoplador es el circuito integrado de 6 pines MOC3031 con principio de funcionamiento de conduccin basado en LEDs infrarrojos pticamente acoplados.

Fig. 10. Diagrama esquemtico, bloque Actuador.

EL BTA16 es el triac encargado de administrar la potencia de la Resistencia Calefactora de 120V/5A.

E. Bloque Visualizacin Datos.

Fig. 11. Diagrama de bloques interno, bloque Visualiza Datos.

El bloque Visualizacin Datos (figura 11) es un LCD 2x16 verde. Este tipo de display generalmente posee 16 pines de cuya conexin se ilustra en la figura 12.

Fig. 12. Distribucin de pines, LCD 2x16.

Son tres seales correspondientes a los pines 1,2 y 3. El pin 1 corresponde a tierra, el 2 a la alimentacin positiva (normalmente +5Vdc) y el 3 al ajuste de contraste.

Las seales de control del LCD son los pines 4,5 y 6. El pin 4 (RS) sirve para seleccionar el registro de datos (DR, Date Register) o el de instrucciones (IR, Instruction Register), con RS=1 o RS=0, respectivamente. El pin 5 permite leer (R/~W=1) o escribir (R/~W=0) en el mdulo LCD tanto datos como instrucciones. Y por ltimo, el pin 6 (E) permite habilitar, con E=1, o deshabilitar el display (E=0). Solo cuando el LCD est habilitado se puede establecer comunicacin.

Un bus bidireccional de 8 bits es formado por los pines del 7 al 14 (DB7-DB0). A travs de este bus es por donde se pueden escribir datos e instrucciones y se puede leer el estado del display.

Los caracteres que se pueden visualizar en pantalla se deben enviar en cdigo ASCII de 8 bits a la memoria RAM interna del LCD cuya capacidad es de 80 bytes, llamada DDRAM. En la figura 13 se observan las direcciones asignadas a cada celda de un display de 216.

Fig. 13. Direcciones DDRAM, LCD 2x16. [5]

La mayora de los LCD basan su funcionamiento en el controlador HD44780. Estos LCD necesitan ser inicializados tras ser alimentados. El proceso de inicializacin es necesario y si no se respetan los pasos y los tiempos que indica el fabricante, el LCD no puede ser puesto en marcha. La inicializacin puede ser llevada a cabo de dos formas: mediante reset interno o mediante instrucciones. Ya que los requerimientos de alimentacin para la inicializacin por reset interno difcilmente se cumplirn, la forma ms fiable de resetear el modulo LCD es hacerlo mediante instrucciones.

El procedimiento a seguir teniendo en cuenta un bus de datos de 8 bits se ilustra en el diagrama de la figura 14.

Fig. 14. Secuencia de inicializacin para LCD con controlador HD44780. [6]

El controlador HD44780 posee dos registros de 8 bits, uno de datos (DR) y otro de instrucciones (IR), que se pueden leer y escribir. En este caso solo se ejecutara la operacin escribir. El registro de instrucciones almacena el cdigo de la instruccin cuando es escrito. El registro de datos almacena de forma temporal el dato que va a ser escrito en DDRAM. Estos dos registros pueden ser seleccionados mediante la seal RS (pin 4) en modo lectura o escritura segn la seal R/W (pin 5) (ver figura 14). [5]

Fig. 14. Descripcin de los pines RS/R/~W, LCD 2x16. [5]

Para escribir un carcter en una posicin determinada de la pantalla es necesario mandar al IR la direccin correspondiente a la celda (instruccin set DDRAM address) y posteriormente enviar el carcter al DR (instruccin write data to CG or DDRAM).

Las instrucciones ms utilizadas para el mando de un LCD 2x16 se registran en la figura 15.

Fig. 15. Instrucciones, controlador HD44780. [6]

Para que las instrucciones lleguen correctamente al controlador del display se debe respetar la secuencia de activacin de las seal es as como los tiempos mnimos y mximos expresados por el fabricante.

Es necesario respetar los tiempos mnimos y mximos expresados por el fabricante para que las instrucciones lleguen correctamente al controlador del LCD.

La seal ENABLE (E) debe estar a nivel bajo; as, se pueden poner las seales RS y R/~W a sus valores correspondientes (ver figura 14) y tras dejar pasar un tiempo tAS (tiempo de establecimiento de la direccin), se debe poner E en alto. Luego de este flanco ascendente en E se puede escribir en el LCD enviando el dato al bus de datos. Este dato debe permanecer un tiempo mnimo tDSW (tiempo de establecimiento de los datos en escritura).

Antes de poner E a nivel bajo para habilitar nuevamente el LCD, es preciso constatar que E haya estado en alto al menos un tiempo PWEH (ancho del pulso de habilitacin en alto).

La instruccin se carga en el interior del controlador HD44780 en el flanco de bajada de E pero para ello se deben mantener activas las seales de datos durante un tiempo tH (tiempo de mantenimiento de los datos) y las seales RS y R/~W durante un tiempo mnimo tAH (tiempo de mantenimiento de la direccin).

El tiempo mnimo entre dos flancos ascendentes en la seal E es tcycE (tiempo de ciclo de habilitacin).

La figura 16 ilustra el diagrama de tiempos de un LCD 2x16 con controlador HD44780 para la operacin de escritura. Los tiempos mnimos y mximos para este mismo tipo de operacin se registran en la figura 17.

En la hoja de datos del controlador HD44780 se establece un voltaje de alimentacin entre 4.5 V y 5.5 V, con niveles mnimo y mximo de voltaje para 1 y 0 de 2.2 V y 0.6 V, respectivamente.

Fig. 16. Diagrama de tiempos, operacin escritura, LCD 2x16 con HD44780. [6]

Fig. 17. Caractersticas de tiempo, bus de direcciones. [6]

Referencias

[1] http://es.wikipedia.org/wiki/Termopar[2]lm7915.pdf (objeto application/pdf). [Online]. Available: http://www.hep.upenn.edu/SNO/daq/parts/lm7915.pdf. [Accessed: 14-dic-2012].[3]20C Termopares.pdf (objeto application/pdf). [Online]. Available: http://www.profesaulosuna.com/data/files/ELECTRONICA/INSTRUMENTACION/SENSORES/TERMOPAR/20C%20Termopares.pdf. [Accessed: 14-dic-2012]. [4]Ver Tema - SOLUCION REEMPLAZO AD595 Y AVANCES DE MI MINI MAQUINITA Reballing. [Online]. Available: http://www.reballing.es/viewtopic.php?style=7&f=31&t=3304&start=20. [Accessed: 14-dic-2012].[5] Como gobernar un display LCD alfanumerico basado en el controlador HD44780, Available: http://eii.unex.es/profesores/jisuarez/descargas/ip/lcd_alfa.pdf [Accessed: 11-nov-2013][6] Datasheet HD44780, Available:https://www.sparkfun.com/datasheets/LCD/HD44780.pdf[Accessed: 11-nov-2013][7] Using the DE0-Nano ADC Controller, Available: ftp://ftp.altera.com/up/pub/Altera_Material/12.1/Tutorials/DE0-Nano/Using_DE0-Nano_ADC.pdf[Accessed: 11-nov-2013]