Está en la página 1de 7

1

Control de Temperatura de una Masa de Agua,


Basado en una DE0-Nano
Parra Q. Jhoan Sebastian, Escuela de Ingeniera Elctrica y Electrnica - Facultad de Ingeniera, Universidad del
Valle
Resumen 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.

I.

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.

II.

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

2
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]

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. 6. Diagrama de tiempos de operacin, ADC128S022. [7]

Fig. 5. Entradas y salidas del ADC128S022.

B.Bloque Ingresar Datos.

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.

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.

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.

Fig. 7a. Funcionamiento, bloque Ingresar Datos.


La figura 7a ilustra en funcionamiento del bloque

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

4
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.

conduccin
acoplados.

basado

en

LEDs

infrarrojos

pticamente

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.

D. Bloque Actuador.

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


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

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]

7
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.

Fig. 16. Diagrama de tiempos, operacin escritura, LCD 2x16


con HD44780. [6]

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. 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/INSTRU
MENTACION/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/DE0Nano/Using_DE0-Nano_ADC.pdf
[Accessed: 11-nov-2013]