TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: ferbarriga en 18 de Octubre de 2007, 20:10:28

Título: Problema en medidor de humedad con una variable.¿coma flotante?
Publicado por: ferbarriga en 18 de Octubre de 2007, 20:10:28
Hola gente. El tema es el siguiente. Estoy haciendo un medidor de humedad relativa. con un sensor capacitivo HS1101, que en conjunto con un 555, me entregan una frecuencia que varia desde aprox 6033HZ para un 100% de humedad y 7300 para el 0%. Mi idea era, con la instruccion PULSIN obtener el ancho del pulso alto. Luego multiplicarlo x2 para obtener el periodo de la señal, luego elevarlo a la -1 y asi obtener la frec. Desarrollando el metodo de los minimos cuadrados hice que la recta de Hr en funcion de la frecuencia sea lineal.
El micro que uso es un 16f84.
Pero el programa no funciona y me parece que es por que no puedo trabajar con coma flotante. Me gustaria que le echen una mirada haber que les parece, y Gracias por adelantado!!! :-/ :-/


'MEDIDOR DE HUMEDAD RELATIVA

' SENSOR --------------> HS 1101(CAPACITIVO)
 

 
entrada  VAR PORTB.4   'Defino el port de entrada
ancho     VAR WORD       'Defino la variable que me guarda el tiempo del ancho del pulso
humedad  VAR WORD
frec     VAR WORD
periodo  VAR WORD

TRISB.4 = 1


Pause 200
LCDOut $fe,1,   "   Medidor de   "
LCDOut $fe,$c0, "humedad relativa"

Pause 1000

      
medicion:

   PulsIn entrada,1,ancho      'Mide el ancho del pulso alto y lo guarda en  ancho

         IF (ancho <> 0) Then
            periodo= ancho * 2
            frec= 1/periodo
            Pause 10
            humedad = 56509/100 - ((767/10000)* frec)   'Recta de Hr en funcion de la frecuencia
            ancho=0
            goto mostrar
            
         EndIF     

mostrar:
            pause 200
            LCDOut $fe,1,  humedad,"%"
            pause 1000
            goto medicion
   
End
End
End
End
Título: Re: Problema en medidor de humedad con una variable.¿coma flotante?
Publicado por: navaismo en 18 de Octubre de 2007, 21:09:59
En PBP asi directamente no se puede trabajar con Punto decimal, Te recomiendo lo intetes con Proton para no complicar mucho.

Tambien tienes la altenativa de usar las rutinas de FP que hizo microchip pero eso si son muy pesadas o bien hacer uso del DIV32 para sacar decimales.  Hay un tema dedicado al punto decimal en PBP que hizo Mario checalo por si te sirve.
Título: Re: Problema en medidor de humedad con una variable.¿coma flotante?
Publicado por: ferbarriga en 18 de Octubre de 2007, 21:37:57
gracias por contestar navaismo. Estube viendo lo de las librerias fp. intente poniendo
include " fp0c.bas" o include "fp0c32.bas"
pero cuando compilo me tira un error
Título: Re: Problema en medidor de humedad con una variable.¿coma flotante?
Publicado por: navaismo en 18 de Octubre de 2007, 21:39:47
Si creo que solo soportan PIC como el 16f628 y el 877 ademas de que debes tener las librerias en el mismo lugar de tu proyecto. Y hacer las variables adecuadas a las rutinas de conversion.

Saludos.