Captura y representación de datos. Asignatura de Diseño y control por ordenador.
Volver a la página principal

Interfaz para captura y representación gráfica (termograma) de datos analógicos.

ter1.gif (56259 bytes)

ter5.gif (45059 bytes)

ter2.gif (57430 bytes)

ter8.gif (48807 bytes)

ter7.gif (62641 bytes)

ter9.gif (57036 bytes)

 

Este programa realiza las siguientes funciones:

  - Lectura simultánea de dos valores analógicos (0 a 1.27 v)

- Conversión digital (0 a 255)

- Representación gráfica en tiempo real del valor termométrico.

- Almacenamiento en disco de los muestreos en ficheros DBF.

 

 

El dispositivo de captación consiste en un sensor LM334 que es una fuente de corriente proporcional a la temperatura. El circuito asociado, una vez ajustado, ofrece una variación de tensión de 2.73 V a 0º hasta 3.73 V a 100º.

 

El valor generado es digitalizado mediante dos conversores analógico-digital ADC0831 cuya tensión de referencia está ajustada a 1.27 V.

 Las salidas de estos dos conversores se conecta a los pines SLCT y PE del puerto de estado de la impresora. La señal de reloj de los conversores se obtiene de los pines 2 (D0) y 3 (D1) del puerto de datos.

Un simple programa de control del termómetro que realice lecturas de los conversores puede ser el siguiente:

REM Lectura del termometro

DO 'bucle infinito

pause = 1 'muestras cada 1 segundos!

starttime = TIMER

WHILE (timenow - starttime) < pause

timenow = TIMER

WEND

D% = 0 'data byte a 0

Dx% = 0

OUT &H378, 1 'deseleccionar conversor a reset (CS=1)

OUT &H378, 0 'seleccionar conversor para iniciar conversion

OUT &H378, 2 'primer ciclo de reloj, high

OUT &H378, 0 'primer ciclo de reloj, low

FOR I = 1 TO 8 'bucle de conversion

D% = D% * 2 'desplazar byte datos a la izquierda, sitio para next bit

Dx% = Dx% * 2

OUT &H378, 2 'ciclos de reloj 2 a 9

OUT &H378, 0

X% = INP(&H379) 'el dato esta en el bit 4 del byte de estado

A% = X% AND 16 'mascara bit D4 pin 13 SLCT (los demas bits a 0)

A% = A% / 16 'desplazar a LSB position el bit 4

D% = D% OR A% 'insertar en LSB del byte

A% = X% AND 32 'mascara bit D5 pin 13 SLCT (los demas bits a 0)

A% = A% / 32 'desplazar a LSB position el bit 5

Dx% = Dx% OR A% 'insertar en LSB del byte

NEXT I

OUT &H378, 1 'conversor a off

 

temp = D% / 2 '/ 2 dividir por 2!! cada numero es medio grado!

temp2 = Dx% / 2

 

PRINT TIME$, temp, temp2 'este es el resultado de la conversion

IF INKEY$ <> "" THEN END

LOOP

Para resultados más vistosos ( y cómodos) utilizaremos el programa TERMOMETRO.EXE, realizado en Delphi que permite, además, guardar las capturas en formato DBF.

Este ejemplo muestra la evolución de la temperatura interior de un local (amarillo) y la exterior (verde) con un muestreo cada 20 minutos.

 

 

Volver a la página principal