lunes, 7 de febrero de 2011

Prueba


 


 

Programa del microcontrolador

El programa de nuestro microcontrolador esta desarrollado en el lenguaje Mikrobasic de la empresa Mikroe. Este lenguaje de programación utiliza sentencias al estilo de Basic.

Mikrobasic nos ofrece una amplia gama de microcontroladores soportados incluyendo muchos microcontroladores de alta gama, también incluye diversas marcas pasando por los PIC.

El programa completo se encuentra en el cuadro inferior y será detallado más adelante en el presente informe.

    program incubadora

    SYMBOL ICERRAR = PORTB.1

    SYMBOL IABRIR = PORTB.4

    SYMBOL IINICIO = PORTB.6

    SYMBOL IPARAR = PORTB.7

    SYMBOL INIVEL = PORTA.7

    SYMBOL ICOCINA = PORTA.6


 

    SYMBOL OABRIR = PORTA.1

    SYMBOL OCERRAR = PORTA.2

    SYMBOL OCOCINA = PORTA.3

    SYMBOL OMOTOR = PORTA.4


 

    '1. Declaración de variables

    dim habilitar as byte

    dim incr as word

    dim REF as WORD

    dim REF_TXT as string [10]

    dim incr_txt as string [10]

    dim ref1 as float

    dim porc as float


 

    '2. Declaración de procedimientos

     sub procedure cerrar

     OCERRAR = 1

     OABRIR = 0

     end sub

    
 

     sub procedure abrir

     OCERRAR = 0

     OABRIR = 1

     end sub


 

     sub procedure leer_temp

     REF = ADC_READ(0)

     REF1 = 3*(REF -726)/20 + 31

     floatTOSTR(REF1, REF_TXT)

     end sub


 

    sub procedure forzar

     IF IINICIO = 0 THEN

     habilitar = 1

     END IF


 

     IF IABRIR = 0 THEN

     abrir

     END IF


 

     IF ICERRAR = 0 THEN

     cerrar

     END IF

    
 

     if ICOCINA = 0 then

     OCOCINA = 1

     end if

    
 

     if ICOCINA = 1 then

     OCOCINA = 0

     end if


 

     if IPARAR = 0 THEN

     incr = 0

     delay_ms(2000)

     TRISB = %00000100

     LCD_out(1,1, "El contador ha ")

     LCD_out(2,1, "sido reiniciado ")

     TRISB = %11010110

     END IF

    end sub


 

    sub procedure interrupt

     if TestBit(PIR1,TMR2IF) = 1 then

     Inc(incr)

     PIR1.TMR2IF = 0

     end if

    end sub

    

    sub procedure finaldeproceso

     habilitar = 0

     OCOCINA = 0

     OMOTOR = 0

     abrir

     delay_ms(2000)

     TRISB = %00000100

     LCD_out(1,1, "Este Proceso ")

     LCD_out(2,1, "ha terminado ")

     TRISB = %11010110

    end sub


 

    main:


 

     OSCCON = %01111110

     ANSEL = 1

     TRISA = %11100001

     TRISB = %00000100

     LCD_CONFIG(PORTB, 7,6,1,4, PORTB, 3,5,0)

     delay_ms(2000)

     LCD_cmd(lcd_clear)

     Lcd_Cmd(Lcd_CURSOR_OFF)

     LCD_out(1,3, "Bienvenido")

     delay_ms(3000)

     LCD_out(1,3, "Bienvenido")

     LCD_out(2,1, "y preparado")

     TRISB = %11010110

     OMOTOR = 0

     cerrar


 

     T2CON = $FF

     TMR2 = 0

     INTCON = $C0

     incr = 0

    WHILE TRUE

    

    forzar

     PIE1.TMR2IE = 0

     WHILE (habilitar = 1) and (INIVEL = 0)

     PIE1.TMR2IE = 1

     TRISB = %00000100

     if incr < 102 then

     LCD_out(1,1, "Inic de proceso")

     end if

    
 

     lcd_out(2,9, "temp")

     lcd_out(2,13, ref_txt)

    
 

     if incr = 102 then

     lcd_out(1,1, "Estamos en ")

     end if

    
 

     if incr > 103 then

     porc = incr/100

     floatTOSTR(porc, incr_txt)

     lcd_out(1,12, incr_txt)

     end if

    
 

     if OCOCINA = 1 THEN

     lcd_out(2,1, "coc enc ")

     else

     lcd_out(2,1, "coc apa ")

     END IF

    
 

     TRISB = %11010110

    
 

     if incr > 10000 then

     finaldeproceso

     incr = 0

     break

     end if


 

     OMOTOR = 1

     cerrar

     leer_temp


 

     IF ref1 < 42 THEN

     OCOCINA = 1

     END IF


 

     IF ref1 > 43 THEN

     OCOCINA = 0

     END IF


 

     IF IPARAR = 0 THEN

     habilitar = 0

     OMOTOR = 0

     TRISB = %00000100

     Lcd_cmd(lcd_clear)

     Lcd_Cmd(Lcd_CURSOR_OFF)

     delay_ms(1000)

     LCd_out(1,1, "Estamos en pausa")

     Lcd_out(2,1, "presione iniciar")

     TRISB = %11010110

     END IF

    
 

     WEND


 

    WEND

    END.


 


 

Partes del programa

Declaración de símbolos

La declaración de símbolos sirve para representar casi cualquier fragmento de código de nuestro microcontrolador con nombres que nos sean familiares.

La declaración de símbolos es muy útil para recordar cuál es la conexión de los dispositivos hacia el microcontrolador.

    SYMBOL ICERRAR = PORTB.1

    SYMBOL IABRIR = PORTB.4

    SYMBOL IINICIO = PORTB.6

    SYMBOL IPARAR = PORTB.7

    SYMBOL INIVEL = PORTA.7

    SYMBOL ICOCINA = PORTA.6


 

    SYMBOL OABRIR = PORTA.1

    SYMBOL OCERRAR = PORTA.2

    SYMBOL OCOCINA = PORTA.3

    SYMBOL OMOTOR = PORTA.4


 

En el código de ejemplo se hace referencia a las entradas / salidas de nuestro microcontrolador y se las relaciona con nombres comunes como ICERRRAR u OCERRAR se les colocó las letras "I" y "O" en referencia a patillas que serán usadas como salidas o entradas.

Declaración de variables

Tomo programa necesita almacenar en su memoria valores momentáneos para luego ser usados dentro del transcurso del programa.

Aquí la lista de variables utilizadas en nuestro programa.

    dim habilitar as byte

    dim incr as word

    dim REF as WORD

    dim REF_TXT as string [10]

    dim incr_txt as string [10]

    dim ref1 as float

    dim porc as float


 

Declaración de procedimientos

En los procedimientos se puede hacer referencia a rutinas que resultarían tediosas repetirlas dentro del cuerpo del programa.

     sub procedure cerrar

     OCERRAR = 1

     OABRIR = 0

     end sub

    

     sub procedure abrir

     OCERRAR = 0

     OABRIR = 1

     end sub

    
 


 

Arriba se encuentran algunos de los procedimientos más comunes y más sencillos de entender en ellos se explica el funcionamiento de abrir y cerrar la válvula.

Luego estos procedimientos pueden ser invocados con simplemente escribir el nombre del procedimiento.

Aquí se presenta el siguiente procedimiento.

    sub procedure leer_temp

     REF = ADC_READ(0)

     REF1 = 3*(REF -726)/20 + 31

     floatTOSTR(REF1, REF_TXT)

    end sub


 

Este procedimiento posee una lectura del puerto ADC activado es decir el puerto analógico 0.


 

    sub procedure forzar

     IF IINICIO = 0 THEN

     habilitar = 1

     END IF


 

     IF IABRIR = 0 THEN

     abrir

     END IF


 

     IF ICERRAR = 0 THEN

     cerrar

     END IF

    
 

     if ICOCINA = 0 then

     OCOCINA = 1

     end if

    
 

     if ICOCINA = 1 then

     OCOCINA = 0

     end if


 

     if IPARAR = 0 THEN

     incr = 0

     delay_ms(2000)

     TRISB = %00000100

     LCD_out(1,1, "El contador ha ")

     LCD_out(2,1, "sido reiniciado ")

     TRISB = %11010110

     END IF

    end sub


 

En este procedimiento se pueden leer cada uno de los botones conectados a nuestro microcontrolador, y luego toman medidas de acuerdo al botón que se presione.


 

    sub procedure interrupt

     if TestBit(PIR1,TMR2IF) = 1 then

     Inc(incr)

     PIR1.TMR2IF = 0

     end if

    end sub


 

Este procedimiento es el que se ejecuta durante la interrupción y hace que la variable incr se incremente en una cifra lo que hace que nos encontremos más cerca de nuestro proceso final.


 

    sub procedure finaldeproceso

     habilitar = 0

     OCOCINA = 0

     OMOTOR = 0

     abrir

     delay_ms(2000)

     TRISB = %00000100

     LCD_out(1,1, "Este Proceso ")

     LCD_out(2,1, "ha terminado ")

     TRISB = %11010110

    end sub


 

El final de todo el proceso se encuentra detallado en el procedimiento "finaldeproceso" en ella la variable "habilitar" regresa a 0 y con ello el proceso se ve interrumpido como se puede apreciar más adelante en el cuerpo del programa, además de mostrar el mensaje de "Este proceso ha terminado.

Cuerpo del programa


 

    main:


 

     OSCCON = %01111110

     ANSEL = 1

     TRISA = %11100001

     TRISB = %00000100

     LCD_CONFIG(PORTB, 7,6,1,4, PORTB, 3,5,0)

     delay_ms(2000)

     LCD_cmd(lcd_clear)

     Lcd_Cmd(Lcd_CURSOR_OFF)

     LCD_out(1,3, "Bienvenido")

     delay_ms(3000)

     LCD_out(1,3, "Bienvenido")

     LCD_out(2,1, "y preparado")

     TRISB = %11010110

     OMOTOR = 0

     cerrar


 

     T2CON = $FF

     TMR2 = 0

     INTCON = $C0

     incr = 0


 

Este es el programa principal, la variable OSCCON es el que determina la frecuencia de operación de nuestro microcontrolador, gracias a este microcontrolador no requerimos del uso de cristales. Se puede usar el reloj interno de nuestro microcontrolador.

Luego se configura la pantalla LCD indicando cada uno de los pines a utilizar de nuestro micro para ser usados en el LCD.

Después se muestra el mensaje de Bienvenida, se apaga el motor, se cierra la válvula, posteriormente se configura el contador del microcontrolador.

En esta parte del programa se hace referencia a un WHILE TRUE el cual es una sentencia repetitiva que no ha de terminar.


    WHILE TRUE

    

    forzar

     PIE1.TMR2IE = 0


 

Dentro de eta sentencia se llama al procedimiento forzar que es aquel que lee el estado de cada uno de los botones.

     WHILE (habilitar = 1) and (INIVEL = 0)

     PIE1.TMR2IE = 1

     TRISB = %00000100

     if incr < 102 then

     LCD_out(1,1, "Inic de proceso")

     end if


 

Luego se ingresa a otro while que sólo se activa cuando la variable habilitar es 1 y el la entrada de nivel es 0. Es decir cuando se ha presionado al menos una vez el botón IINICIO y el nivel se encuentra activado o el tanque está lleno.

La siguiente sentencia activa el contador interno del micro, y luego espera que nuestra variable incr alcance el valor de 102 para dejar de mostrar en la pantalla un mensaje de inicio de proceso.

     lcd_out(2,9, "temp")

     lcd_out(2,13, ref_txt)

    
 

     if incr = 102 then

     lcd_out(1,1, "Estamos en ")

     end if

    
 

     if incr > 103 then

     porc = incr/100

     floatTOSTR(porc, incr_txt)

     lcd_out(1,12, incr_txt)

     end if

    
 

     if OCOCINA = 1 THEN

     lcd_out(2,1, "coc enc ")

     else

     lcd_out(2,1, "coc apa ")

     END IF


 

En las primeras dos sentencias del código arriba mostrada muestra el mensaje de la temperatura grabada en la variable "ref_txt".

Luego el siguiente "IF" muestra un fragmento del texto que aparece en la pantalla LCD. El "IF" posterior muestra la variable "incr" dividida en 100 para mostrar un valor en porcentaje del avance del proceso.

El siguiente "IF" dependerá si nuestra cocina se encuentra encendida o se encuentra apagada e informará al usuario con un mensaje de texto en la pantalla LCD.

     TRISB = %11010110

    
 

     if incr > 10000 then

     finaldeproceso

     incr = 0

     break

     end if


 

     OMOTOR = 1

     cerrar

     leer_temp


 

En el código que se encuentra arriba se refiere al final de nuestro proceso se especifica que si nuestro contador llega al valor de 10 000 nuestro programa llegará automáticamente al final de proceso.

También se encuentra la sentencia que activa el motor de la batidora (OMOTOR =1) luego se especifica que la válvula se debe cerrar.


 

     IF ref1 < 42 THEN

     OCOCINA = 1

     END IF


 

     IF ref1 > 43 THEN

     OCOCINA = 0

     END IF


 

"ref1" es una variable en la cual se almacena de forma numérica la temperatura en grados centígrados. Está variable es la que determina si se prende o se apaga la cocina por tanto tiene como límites la temperatura mínima y la máxima permisible.


 

     IF IPARAR = 0 THEN

     habilitar = 0

     OMOTOR = 0

     TRISB = %00000100

     Lcd_cmd(lcd_clear)

     Lcd_Cmd(Lcd_CURSOR_OFF)

     delay_ms(1000)

     LCd_out(1,1, "Estamos en pausa")

     Lcd_out(2,1, "presione iniciar")

     TRISB = %11010110

     END IF

    
 

     WEND


 

    WEND

    END.


 

Este es el último "IF" y este se activa cuando el usuario presiona el botón de parado (IPARAR) con esta acción se rompe el bucle repetitivo además de mostrar el mensaje de "Estamos en pausa presione iniciar".

Por último se muestran las últimas sentencias que son las que cierran el bucle.

Read rest of entry

jueves, 12 de noviembre de 2009

VirtualBox para todos



Introducción
Para aquellos que nunca usaran el VirtualBox basta decir que es un programa que nos  trae otra PC independiente para poder utilizarla dentro de nuestro propio PC.  Dicho de otra manera es una emulación completa de otra máquina que puede funcionar al paralelo de la nuestra.
Los usos que podemos darle son bastante variados, eso depende de la creatividad de los usuarios, en mi caso personal utilizo siempre el VirtualBox para emular un Windows XP en mi laptop que vino por defecto con Windows Vista, esta por demás decir que Windows Vista trajo consigo una serie de incompatibilidades por las cuales tuve que instalar mi viejo pero recordado con cariño Windows XP, y que mejor manera de hacerlo que con VirtualBox, para no tener que buscar la innumerable lista de drivers que por supuesto no conseguiré en la página web de la marca de mi laptop por más que busque y rebusque.
A demás deben saber que si ustedes tienen otro sistema operativo (Linux, OS X, Solaris), pueden instalar también Virtual Box e instalar dentro de su computador una gran cantidad de sistemas operativos. En mi caso utilizo Ubuntu (Linux), donde emulo sin ningún problema Windows XP, Kubuntu (Linux), Ubuntu.
Instalación y configuración en Ubuntu


Prefiero descargarme la última versión desde la página web oficial de VirtualBox 






el enlace nos debe llevar a esta página en donde debemos descargar la versión que mas nos convenga, en este caso (ubuntu) ingresamos hacia el enlace que dice "Linux host" 

como vemos existe una gran cantidad de distribuciones linux soportadas. Para el caso de Ubuntu existe otro tanto de versiones, dependiendo del sistema operativo descargamos la conveniente.


Una vez descargado el fichero debe de tener la extensión DEB, el cual instalará automáticamente todo lo necesario para poder utilizar nuestro VirtualBox.


Configurando Puertos USB


Una de las ventajas de utilizar virtualBox es la posibilidad de utilizar hardware con comunicación USB que no tiene soporte para un sistema operativo distinto para el que fue diseñado.


Por ejemplo


  • Utilizar un scanner antiguo en Windows Vista, quizas el driver necesario para utilizar este dispositivo con comunicación USB, nunca llego a salir para Windows Vista.


  • Hacer funcionar un hardware no soportado por Ubuntu, la comunidad de Ubuntu hasta el momento no ha creado un programa para hacer funcionar un hardware, pero tenemos su driver para hacerlo funcionar bajo Windows.
El problema es que antes de hacer funcionar nuestros dispositivos USB en Ubuntu tenemos que seguir algunos pasos que a continuación describiré (modificado de http://hyanetworks.com/wordpress/2009/05/06/activar-puertos-usb-a-la-maquina-virtual-de-virtual-box-en-ubuntu-904-jaunty/).




Lo primero que necesitamos hacer es agregar nuestro usuario al grupo vboxusers:
sudo adduser USUARIO vboxusers
Se verá de la siguiente manera, recuerda que en USUARIO deberás poner TU nombre de usuario:



Muy bien, ahora editamos el archivo fstab el cual se encarga de montar todos los dispositivos, así que le añadiremos el ID del grupo a este archivo:
sudo gedit /etc/fstab
Al final del archivo agregamos lo siguiente:
## usbfs is the USB group in fstab file:
none /proc/bus/usb usbfs devgid=nnn,devmode=664 0 0
De la siguiente manera:

Ahora en lugar de las letras nnn debemos colocar el numero que identifica al grupo vboxusers para saberlo basta con mirar en Sistema/Administacion/Usuarios y grupos(Desbloqueamos)/Gestionar Grupos/Vboxusers/Propiedades



Quedará así en mi caso el numero es 125.

Ahora damos permiso de acceso a las instrucciones anteriores:
sudo chmod 666 /dev/vboxdrv
Como lo muestra la siguiente imagen:

Otorgamos permisos para montar USB,editando el siguiente archivo:
sudo gedit /etc/init.d/mountdevsubfs.sh
Agregamos las siguientes líneas al archivo:
domount devpts “” /dev/pts devpts -onoexec,nosuid,gid=$TTYGRP,mode=$TTYMODE
mkdir -p /dev/bus/usb/.usbfs
domount usbfs “” /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount –rbind /dev/bus/usb /proc/bus/usb
Tendría que quedar así:



-----------------------------------------------------------------------------------------------------------------------------------
Nota (No se encuentra en el post Original):  Si ustedes utilizan Ubuntu 9.10 como es mi caso, seguramente no aparecerá un documento como el que aparece en la figura superior, seguro tendran un archivo en blanco, pues la solucion que encontre fue pegar el siguiente texto y guardar el archivo.


#! /bin/sh
### BEGIN INIT INFO
# Provides:          mountdevsubfs mountvirtfs
# Required-Start:    mountkernfs
# Required-Stop:
# Default-Start:     S
# Default-Stop:
# Short-Description: Mount special file systems under /dev.
# Description:       Mount the virtual filesystems the kernel provides
#                    that ordinarily live under the /dev filesystem.
### END INIT INFO

PATH=/lib/init:/sbin:/bin
TTYGRP=5
TTYMODE=620
[ -f /etc/default/devpts ] && . /etc/default/devpts

TMPFS_SIZE=
[ -f /etc/default/tmpfs ] && . /etc/default/tmpfs

KERNEL="$(uname -s)"

. /lib/lsb/init-functions
. /lib/init/mount-functions.sh

do_start () {
	#
	# Mount a tmpfs on /dev/shm
	#
	SHM_OPT=
	[ "${SHM_SIZE:=$TMPFS_SIZE}" ] && SHM_OPT="-osize=$SHM_SIZE"
	domount tmpfs shmfs /dev/shm $SHM_OPT

	#
	# Mount /dev/pts. Create master ptmx node if needed.
	#
	domount devpts "" /dev/pts -ogid=$TTYGRP,mode=$TTYMODE

	#
	# Magic to make /proc/bus/usb work
	#
	# These following 4 lines were uncommented to make USB devices avabilable in vmware
	#
	mkdir -p /dev/bus/usb/.usbfs
	domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
	ln -s .usbfs/devices /dev/bus/usb/devices
	mount --rbind /dev/bus/usb /proc/bus/usb
}

case "$1" in
  "")
	echo "Warning: mountdevsubfs should be called with the 'start' argument." >&2
	do_start
	;;
  start)
	do_start
	;;
  restart|reload|force-reload)
	echo "Error: argument '$1' not supported" >&2
	exit 3
	;;
  stop)
	# No-op
	;;
  *)
	echo "Usage: mountdevsubfs [start|stop]" >&2
	exit 3
	;;
esac


-----------------------------------------------------------------------------------------------------------------------------------
También editamos el archivo 10-vboxdrv.rules:
sudo gedit /etc/udev/rules.d/10-vboxdrv.rules
Buscamos el MODE del SUBSYSTEM= “usb” y SUBSYSTEM=”usb-device” y los ponemos en 0666, de la siguiente manera:
SUBSYSTEM==”usb_device”, GROUP=”vboxusers”, MODE=”0666”
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, GROUP=”vboxusers”, MODE=”0666“
Así como en la siguiente imagen:

Listo, ya está todo lo que teníamos que modificar manualmente, ahora lo que sigue es dar de alta los puertos en la configuración de la Maquina virtual, asi que abrimos el vitual box y con la maquina virtual seleccionada, oprimimos el botón de configuración y nos vamos a la sección usb, ahí esta el icono que simboliza una usb con un signo de mas en color verde, al oprimirlo nos dará la lista de usb conectados al sistema, activamos los que queramos y listo.

Ya con esto podemos usar dispositivos que no tienen soporte para linux, como en el caso de mi scaner “SCANPRISA 340 U ” de Acer, que de hecho ya ni los fabrican, pues ahi está la solución a como seguirlo usando en nuestra pc sin problemas.

Y como lo dije, asunto arreglado.

Espero les sea de utilidad este post.











Read rest of entry

martes, 6 de octubre de 2009

Informe de Temperatura

Transmisores de Temperatura

Objetivos:
  1. Medir temperatura utilizando un Transmisor neumático y un Transmisor electrónico de temperatura.
  2. Graficar la salida del transmisor vs la temperatura: psi vs ºC, mA  vs ºC.
  3. Determinar el rango de ajuste o control de un transmisor.

Procedimiento:

  • TRANSMISOR TERMOCUPLA  “J” y “K”

El transmisor es de:               J                K
Rango de entrada:              0ºC a 100ºC              0ºC a 150ºC
Rango de salida:              4mA a 20mA              4mA a 20Ma
  1. Compruebe la calibración del transmisor de la siguiente manera:


escanear0001.jpg
-Alimente con 24 VDC el transmisor, entre los terminales 4(+) y 5(-), poniendo en serie una resistencia de precisión de 250Ω.

escanear0001.jpg

-Deje libre el terminal 3 para el caso de las termocuplas.
-Coloque el simulador de termocupla J, de termocupla K (norma DIN) entre los terminales 1-2



Zero (cero): Ponga el simulador de J o K en 0ºC, mida y calcule:

(J)              I = 3.98mA
(K)              I = 4.00mA

Span (rango): Ponga el simulador de J en 100ºC o el de K en 150ºC, mida y calcule:

(J)              I = 19.99mA
(k)              I = 20.00mA

escanear0001.jpg
¿Esta bien calibrado el transmisor? De no ser así, ¿Qué debería ajustarse?

Zero
Span
              El transmisor no estaba calibrado, por tal motivo tuvo que ajustarse varias veces el Zero  a 4mA y el Span a 20mA, para mantener el rango de salida de 4mA a 20mA. Los datos obtenidos en la parte superior en las termocuplas J y K son una vez calibrado el transmisor.

2. Cambie el simulador por las termocuplas J o K.
3. Con la temperatura del ambiente mida y calcule la Io, llene la tabla. Dibuje la  Iout  vs T.
La temperatura del ambiente medida es 20ºC.

  • Termocupla “J”

100°C
0°C
20°C
20mA
4mA
Io = X mA
(100 – 0) / (20 – 0) = (20 – 4) / (X – 4)

X – 4 = (20 – 4) x (20 – 0) / (100 – 0)

X = 7.2 mA


  • Termocupla “K”

150°C
0°C
20°C
20mA
4mA
Io = X mA
(150 – 0) / (20 – 0) = (20 – 4) / (X – 4)

X – 4 = (20 – 4) x (20 – 0) / (150 – 0)

X = 6.13 mA
Tabla del Transmisor electrónico de temperatura.
Termocuplas
J
K
Temperatura del Ambiente
(ºC)
Medida
Calculada
Medida
Calculada
Io (mA)
Io (mA)
Io (mA)
Io (mA)
20ºC
7.54
7.2
6.6
6.13

Io vs T




  • CALIBRADOR DE POZO SECO

La temperatura del ambiente es 20ºC, siendo esta:

  • Termocupla K:               0.798 mV              

  • Termocupla J :                   1.019 mV             

Pruebas de medición de Termocupla K
Temperatura(ºC)
mV Medido
mV Tabla
mV Error
50
0.9 + 0.798 = 1.698
2.022
0.324
100
3.0 + 0.798 = 3.798
4.095
0.297
150
4.9 + 0.798 = 5.698
6.137
0.439
200
6.9 + 0.798 = 7.698
8.137
0.439








Pruebas de medición de Termocupla J
Temperatura(ºC)
mV Medido
mV Tabla
mV Error
50
1.0 + 1.019 = 2.019
2.585
0.566
100
2.2 + 1.019 = 3.219
5.269
2.05
150
5.6 + 1.019 = 6.619
8.010
1.391
200
6.1 + 1.019 = 7.119
10.779
3.66




Pruebas de medición de Pt 100
Temperatura(ºC)
Ohms Medido
Ohms Tabla
Ohms Error
50
120.5
119.73
0.77
100
143.7
139.16
4.54
150
163.3
158.29
5.01
200
177.7
177.13
0.57





  • PIROMETROS INFRARROJOS
Objetivo:
  1. Verificar el funcionamiento de un medidor de temperatura por radiación infrarroja.
  2. Identificar la respuesta de un infrarrojo de emisividad fija y otro de emisividad variable.
  3. Medir temperatura en objetos de diferentes emisividades.

OBJETO
EMISIVIDAD DEL OBJETO
EMISIVIDAD DEL INSTRUMENTO
TEMPERATURA
(ºC)
Fijo
Variable
Fijo
Variable
Cobre
0.05
0.95
0.95
19.9
22
Aluminio
0.09
0.95
0.95
23.0
25
Acrilico
0.98
0.95
0.95
19.5
21




  • TRANSMISOR INFRARROJO
Objetivo:
              Realizar mediciones con un transmisor infrarrojo de emisividad fija E=0.95. Determinar al respuesta del transmisor.
Procedimiento:
  1. Conectar el transmisor como indica la figura.



Medidor portátil HND-R para pH, Redox y Temperatura

TEMP
HORNO
24Vdc
mA
TRANSMISOR













  1. Calentar el horno variando el voltaje de la fuente para obtener diferente valores de temperatura según la tabla y obtener la Io del transmisor para la temperatura correspondiente.

VOLTAJE (Volts)
TEMPERATURA(ºC)
Io(mA)
0
22.3
6.94
8
28.2
7.45
15
46.3
9.06








CONCLUSIONES
La calibración de un transmisor es necesaria para poder obtener una exactitud en la medición. Y esto lo pudimos comprobar en la medición de las salidas de los transmisores para las termocuplas “J” y “K”. El chequeo y el ajuste preliminar son necesarios para obtener un mínimo porcentaje de error. Llevar ajuste de Zero y Span es importante para obtener una buena medición dentro del rango de salida.
Los RTD (Detector Resistivo de Temperatura) usan alambres de metal puro para la medición de temperatura. Los metales puros tienen un coeficiente de resistencia de temperatura positivo bastante constante. El coeficiente de resistencia de temperatura, generalmente llamado coeficiente de temperatura es la razón de cambio de resistencia al cambio de temperatura. Un coeficiente positivo significa que la resistencia aumenta a medida que aumenta la temperatura. Si el coeficiente es constante, significa que el factor de proporcionalidad entre la resistencia y la temperatura es constante y que la resistencia y la temperatura se graficarán en una línea recta.
La linealidad de los transmisores de temperatura, es decir la proporcionalidad entre la resistencia y la temperatura es importante para la medición de temperaturas a través de rangos amplios.
Los termopares o termocuplas miden solamente temperaturas relativas, a diferencia de los RTD y termistores que miden temperaturas absolutas, esto se debe a que las termocuplas son uniones de diferentes metales o aleaciones, cuando se mide con un multímetro se forman termocuplas parasitas. Siendo necesarias eliminar estas o compensarlas para que la temperatura sea la real, por ese motivo se le suma un Voltaje de referencia obtenidas en un punto conocido como Bloque Isotérmico.
Los Pirómetros de radiación, es usado en casos donde no es posible tomar, por contacto directo con el proceso, la temperatura que sea necesaria para evaluar el proceso. La medición de temperatura sin contacto es altamente necesaria cuando estamos hablando de procesos donde las temperaturas son tan elevadas. Los Pirómetros de Radiación Infrarroja están basados en el principio que dice que todos los objetos emiten radiación a longitudes de onda ubicadas en la región infrarroja del espectro de radiación electromagnética. El infrarrojo es esa porción del espectro electromagnético más allá del que queda visible (azul a rojo, 0,4-0,75 um) a la respuesta del ojo humano. Los termómetros infrarrojos miden esta radiación y proporcionan una señal de salida calibrada en una variedad de rangos según los requisitos del cliente.

OBSERVACIONES
  • mA
    escanear0001.jpg Se verifico las salidas del transmisor, de acuerdo al simulador de las termocuplas J o K, encontrándose descalibrados, es decir fuera del rango de salida. Se procedió a ajustarse varias veces el Zero y el Span con el simulador, antes de conectar las termocuplas, al rango de salida de 4mA a 20mA.

http://www.electronguia.com.ar/Principiante/Informacion/Transductores%20de%20temperatura/29.gif


http://www.electronguia.com.ar/Principiante/Informacion/Transductores%20de%20temperatura/30.gif
Una vez calibrados se conecto las termocuplas de acuerdo a la norma DIN y se procedió a tomar las medidas.
  • En el calibrador de pozo seco para las pruebas de medición de las termocuplas “K” y “J” eran necesarios sumarles a los mili voltios medidos el mili voltaje en el punto de referencia, siendo este 0.798 mV (TAMB = 20ºC) para la termocupla K; y 1.019 mV (TAMB = 20ºC) para la termocupla J.



http://www.electronguia.com.ar/Principiante/Informacion/Transductores%20de%20temperatura/06.gif


Con el propósito de obtener la temperatura real en las termocuplas.
  • En la medición de temperatura con los pirómetros infrarrojos se utilizo dos pirómetros infrarrojos, uno de emisividad fija y otro variable. Aunque los objetos utilizados tienen una emisividad menor 0.1 se utilizo una cinta masking tape (ε=0.95)  para cubrir la zona del objeto a medir la temperatura. Obteniendo las temperaturas con los dos pirómetros de radiación infrarroja a esa emisividad.
Estos Pirómetro de infrarrojos: captan la radiación infrarroja, filtrada por una lente, mediante un sensor fotorresistivo, dando lugar a una corriente eléctrica a partir de la cual un circuito electrónico calcula la temperatura. Pueden medir desde temperaturas inferiores a 0 ºC hasta valores superiores a 2000 ºC.

RECOMENDACIONES
Ningún transmisor es el mejor en todas situaciones de medida. Lo importante es saber cuando debe utilizarse cada uno de ellos. Para eso es necesario tener en cuenta diferente factores: las prestaciones, el alcance efectivo, el precio y la comodidad.

APLICACIONES
Los termopares o termocuplas son los sensores de temperatura más extendidos (industria y laboratorio). Se emplean en situaciones de adquisición masiva de datos, muchos datos por muchos canales; en equipos para el control de procesos y medidas automáticas. Incluso se puede disponer de tarjetas y multímetros que incluyen la opción de medida de termopar entre sus posibilidades de operación.
Las termocuplas J y K son económicas, físicamente muy rígidas y cubren un amplio rango de temperaturas (-180 a 1370 ºC). No es recomendable usar una termocupla cuando el sitio de medición y el instrumento están lejos (más de 10 a 20 metros de distancia). El problema de la termocuplas es que suministran un voltaje muy bajo y susceptible a recibir interferencias eléctricas. Además para hacer la extensión se debe usar un cable compensado para el tipo específico de termocupla lo que aumenta el costo de la instalación. Tampoco es recomendable usar termocuplas cuando es necesaria una lectura de temperatura muy precisa (décima de ºC) pues la compensación de cero requerida por las termocuplas introduce un error típicamente del orden de 0.5 ºC. Otro problema que puede ocurrir con las termocuplas es que alguna contaminación u oxidación en los metales de la unión podrían provocar una lectura errónea (hasta 4 ó 5 ºC) sin que se detecte la falla. Luego en algunos casos es conveniente verificar periódicamente la precisión de la lectura.

Industrial de alimentos en general (envasado, pasteurización, cocción, conservación, etc.)
Circuitos de líquidos. (Aguas de enfriamiento, aceites, etc.)
Industria química (temperatura de reactivos)
Cámaras de secado (textiles, alimentos, papel, etc.)
Mediciones de 0 a 700 ºC
Industria del plástico y goma (extracción e inyección)
Medición de tambores rotatorios con termocupla de contacto
Temperatura de motores (Carcaza) con termocupla autoadhesiva.
Procesos en general donde el sensor está sometido a vibración.
Fundición de metales hasta 1300 ºC (no ferrosos)
Hornos en general

Los sensores RTD son utilizados en diferentes áreas de temperatura, profundidades de inmersión, condiciones ambiente, medios, etc. Para medios de cuerpo sólidos, líquidos o gaseosos en tuberías o tanques en aplicaciones industriales o higiénicas. Así como en Sistemas de enfriamiento ambientales, Aire de purga, Control de temperatura de fluidos, Enfriador y refrigerante, Aceite hidráulico, Combustible. Entre estos tenemos los Pt100 que pueden fácilmente entregar precisiones de una décima de grado con la ventaja que la Pt100 no se descompone gradualmente entregando lecturas erróneas, si no que normalmente se abre con lo cual el dispositivo medidor detecta inmediatamente la falla del sensor y da aviso.
Además la Pt100 puede ser colocada a cierta distancia del medidor sin mayor problema (hasta unos 30 metros) utilizando cable de cobre convencional para hacer la extensión.
              Los Pirometros de radiación, es uno de los instrumentos de NO CONTACTO más común. Es usado en casos donde no es posible tomar, por contacto directo con el proceso, la temperatura que sea necesaria para evaluar el proceso. La medición de temperatura sin contacto es altamente necesaria cuando estamos hablando de procesos donde las temperaturas son tan elevadas que el elemento primario podría hundirse o no trabajar (t>1500 ºC), como por ejemplo: fundiciones (zonas ardientes, pre-calentadores), Equipos de combustión o Incineradores-contenedores (calderas) de gases calientes y ollas de utilidad, horno rotatorio, estudios científicos (conservación de energía, estudios de flujo de calor, cartografía termal), estudio medioambiental (meteorológico, biológico, de agricultura, del censo aerotransportado remoto, de la tierra, del agua, de temperaturas superficiales del hielo), reactores nucleares, Hornos (las llamas, tuberías del hervidor, las galletas catalizadoras), etc.

Read rest of entry