Anda di halaman 1dari 9

Autor: luis Gerardo collazos castro Tema: como medir la humedad relativa mediante pic y el sensor hs1101

Humedad relativa

Definicin

La humedad relativa1 es la humedad que contiene una masa de aire, en relacin con la mxima humedad absoluta que podra admitir sin producirse condensacin, conservando las mismas condiciones de temperatura y presin atmosfrica. Esta es la forma ms habitual de expresar la humedad ambiental. Se expresa en tanto por ciento %. = Donde: p(H2O) es la presin parcial de vapor de agua en la mezcla de aire. p*(H2O) es la presin de saturacin de vapor de agua a la temperatura de la mezcla de aire. RH es la humedad relativa de la mezcla de aire que se est considerando. 2 100% 2

La humedad relativa es la relacin porcentual entre la cantidad de vapor de agua real que contiene el aire y la que necesitara contener para saturarse a idntica temperatura, por ejemplo, una humedad relativa del 70% quiere decir que de la totalidad de vapor de agua (el 100%) que podra contener el aire a esta temperatura, solo tiene el 70%. La importancia de esta manera de reflejar la humedad ambiente estriba en que refleja muy adecuadamente la capacidad del aire de admitir ms o menos vapor de agua, lo que, en trminos de comodidad ambiental para las personas, expresa la capacidad de evaporar la transpiracin, importante regulador de la temperatura del cuerpo humano.

Sensor de humedad relativa hs11012


Este sensor de humedad relativa est basado en una nica clula capacitiva que tiene una respuesta lineal de humedad relativa con respecto a la capacitancia. Su smbolo es el siguiente:

a)
1 2

Referenciado de http://es.wikipedia.org/wiki/Humedad el 21 julio 2011. Datasheet RELATIVE HUMIDITY SENSOR technical data HS1100/HS1101.

b) Figura 1. Sensor de humedad relativa HS1101 a) Smbolo. b) esquema fsico. Existen principalmente dos formas de acondicionar la seal de salida de tal manera que podamos traducirla en datos reales, para poder manipular la seal de salida puesto que no existe un mtodo sencillo de medir la capacitancia directamente. Es as como en las especificaciones tcnicas del fabricante nos muestra estas dos formas; la primera con salida proporcional de voltaje expresada en el siguiente diagrama:

Figura 2. Diagrama de bloques para el acondicionamiento de la seal de salida para el HS1101, con voltaje de salida proporcional. El siguiente esquema es el implementado que consiste en un sistema con salida de frecuencia variable dependiendo de la capacitancia del sensor, as para tal objetivo hacemos uso de un multivibrador como lo es el NE555 en la configuracin Astable. Para ello tenemos las siguientes formulas: 1 = 2 1 + 2

1 0.693 1 + 2 () 2 = 2 2 2 0.693 2 = () ()

1 0.693 1 + 2 2 = = 1 () ()

1 + 2 1 + 2 2

Donde: t1 es el tiempo en que la seal de salida tiene un nivel alto. t2 es el tiempo en que la seal de salida tiene en un nivel bajo. D es el ciclo de trabajo de la seal de salida. C la capacitancia del sensor de humedad relativa.

Figura 3. Configuracin del NE555 en modo Astable. La figura 3 nos muestra la configuracin del multivibrador NE555 en modo Astable, donde esta calibrado para una capacitancia de 180pF correspondiente al sensor de humedad relativa, por lo que tendr una frecuencia de salida de 6.660 KHz con un ciclo de trabajo cercano al 50%. En relacin con la variable de inters tenemos que la capacitancia de 180pF corresponde a una humedad relativa (RH) del 55% a una temperatura ambiente de 25 C. Las ecuaciones que describen las anteriores caractersticas serian: 2 = 100 1 = 100

= 0.50025 50.02% = 1 = 1 0.693 1 + 2 2 1 2 2 0.693 ()

= 6660 2 = 601500

= 180 : 1 = 704.91

La respuesta de la humedad relativa con respecto a la frecuencia, estara descrita en la siguiente grafica donde hallaramos la relacin entre la variable a medir y la variable medida.

FHz vs RH
100 90 HUMEDAD RELATIVA (RH%) 80 70 60 50 40 30 20 10 0 6000 6200 6400 6600 6800 7000 7200 7400 y = -6,479E-06x2 + 0,01005x + 275,7

FRECUENCIA (Hz)

Figura 4. Grafica frecuencia vs humedad relativa. Los datos de la tabla 1 corresponden a los datos tcnicos presentados en la hoja de datos del fabricante, la cual tomamos como base para hallar la funcin que mejor caracterice los datos para minimizar el error. Evaluando los polinomios de primer, segundo y tercer orden, ente otras funciones de aproximacin encontramos que segn los criterios utilizados la funcin que mejor caracteriza la nube de puntos es la mostrada en la figura 4 correspondiente a un polinomio de orden 2.
RH 0 10 20 30 40 50 60 70 80 FRECUENCIA 7351 7224 7100 6979 6853 6728 6600 6468 6330

90 100

6186 6033

Tabla 1. Relacin frecuencia humedad relativa. Datos del fabricante. Para caracterizar la nube de puntos se utilizo Matlab mediante las distintas funciones y la herramienta cftool . Para hallar la mejor aproximacin al encontrar las funciones mediante la herramienta cftool, implementamos el siguiente cdigo en Matlab.
clear all clc disp('LINEAS DE TENDENCIAS PARA LA GRAFICA DE FRECUENCIA Vs HUMEDAD RELATIVA'); rh=[0 10 20 30 40 50 60 70 80 90 100]; fz=[7351 7224 7100 6976 6853 6728 6600 6468 6330 6186 6033]; %Polinomio orden 1 y1=-0.0767*fz+564.9; e1_1=rh-y1; error_p1=[max(e1_1) min(e1_1) mean(e1_1)]; disp('ERROR POLINOMIO ORDEN 1'); disp(' mximo mnimo promedio'); disp(error_p1); %Polinomio orden 2 y2=-6.479e-6*fz.^2+0.01005*fz+275.7; e1_2=rh-y2; error_p2=[max(e1_2) min(e1_2) mean(e1_2)]; disp('ERROR POLINOMIO ORDEN 2'); disp(' mximo mnimo promedio'); disp(error_p2); %Polinomio orden 3 y3=6.348e-9*fz.^3-0.000134*fz.^2+0.8614*fz-1615; e1_3=rh-y3; error_p3=[max(e1_3) min(e1_3) mean(e1_3)]; disp('ERROR POLINOMIO ORDEN 3'); disp(' mximo mnimo promedio'); disp(error_p3);

Con los siguientes resultados:


LINEAS DE TENDENCIAS PARA LA GRAFICA DE FRECUENCIA Vs HUMEDAD RELATIVA ERROR POLINOMIO ORDEN 1 mximo 1.3200 mnimo -2.1689 promedio 0.0289

ERROR POLINOMIO ORDEN 2 mximo 0.5295 mnimo -0.5149 promedio -0.0522

ERROR POLINOMIO ORDEN 3

mximo 2.2336

mnimo 1.4229

promedio 1.7921

Por lo tanto la funcin a utilizar para los siguientes pasos ser: = 6.479 6 2 + 0.01005 + 275.7 () Como vemos en los resultados el error del polinomio de orden dos tiene las mejores caractersticas. Es de aclarar que en la hoja de datos tcnicos del fabricante hacen la aproximacin a un polinomio de orden tres. Por consiguiente en la ecuacin (7) RH representa la humedad relativa en trminos del tanto por ciento y Fhz la frecuencia en herz. Si logramos medir la frecuencia de salida del circuito de la figura 3 e introducirla en la ecuacin 7 obtendremos la variable deseada, que es nuestro objetivo.

a)

b) Figura 5. Herramienta cftool de Matlab. a) GUI manipulacin de datos y funciones. b) Resultados grficos.

MIDIENDO LA FRECUENCIA Para tal propsito hemos de utilizar como medio fsico para su implementacin el PIC18F4550 de Microchip y para la depuracin y programacin el software MikroC PRO for PIC v4.60.0.0. Con este programa vamos a trabajar en lenguaje C con distintas libreras que facilitan en gran medida la programacin, esto nos permitir desarrollar una mayor complejidad del programa aunque con un mayor espacio de memoria ocupado en comparacin de programar en lenguaje asembler. La metodologa a utilizar ser la utilizacin del modulo CCP1 del PIC por el cual mediremos cada flanco de subida, para as poder conocer el periodo de la seal y as saber cul es la frecuencia y seguidamente mediante la ecuacin hallada en el apartado anterior podremos conocer el valor de la humedad relativa. El cdigo implementado es:
unsigned short i = 0, j = 1, humrel, n1 = 40, n2 = 1; char relt[4]; unsigned periodo1 = 0, periodo2 = 0; float fr[20], fr2 = 0.0, rh = 0.0, fracion;

unsigned interrupt() { if(CCP1IF_bit){ if(i==0){ i=1; periodo1 = CCPR1L+CCPR1H*255; } else{ periodo2 = CCPR1L+CCPR1H*255; i=0; TMR3L = 0; TMR3H = 0; } CCP1IF_bit = 0; } } void main() { //Configuracin inicial TRISC = 0b10000100; //Configuracin puertos de entrada y salida CCP1CON = 0b00000101;//Captura cada flanco subida T3CON = 0B11000100; //Configuro el Timer3 CCP1IE_bit = 1; //Habilito bit de interrupcion del CCP1 CCP1IF_bit = 0; //A cero este bit para habilitar una captura por interrupcin INTCON = 0B11000000; //Habilito interrupcin general del CCP1 TMR3L = 0; TMR3H = 0; Uart1_Init(9600); //Inicializo la Uart a 9600 bps TMR3ON_bit = 1; //INICIO EL TIMER3 EN CAPTURA //---------------------------------------------------do{ //Hallo n1 valores y los almaceno en la variable fr while(j<=n1) { if(j==1){ fr[j] = (1.0/(periodo2-periodo1))/125.0e-9; //Frecuencia j++; } else { fr2 = (1.0/(periodo2-periodo1))/125.0e-9; fr[j] = fr2; j++; } } //-------------------------------------------------j=1; //Restablesco la variable //Saco el promedio de n1 vaores para mayor exactitud fr[0]=0.0; for(j=1;j<=n1;j++)

{ fr[0] = fr[0]+fr[j]; } j=1; fr[0]=fr[0]/(n1-0.0); //-------------------------------------------------//Hallo la humedad relativa a partir de la frecuencia hallada rh = ((10050.0*fr[0]-(6.479*fr[0]*fr[0]))/1000000.0) + 275.7; //----------------------------------------------------------//Aproximo la parte fracionaria al entero mas cercano humrel = rh/1; fracion = rh - humrel; if(fracion>=0.5) {humrel = humrel + 1;} //---------------------------------------------------//Envio solo apartir del segundo dato hallado if(n2==2){ //Delimito el rango de salida entre 0 y 100 % if(humrel>100) {humrel=100;} if(humrel<0) {humrel=0;} //------------------------------------------//Convierto a texto y elvio el mensaje ByteToStr(humrel,relt); Uart1_Write_Text(" Hr: "); Uart1_Write_Text(relt); //------------------------------------------}//-----------------------------------------//Desecho el primer dato hallado if(n2==1){ n2=2; } //------------------------------}while(1); }