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