Autor Tema: No puedo leer la humedad relativa con SHT11  (Leído 4473 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Jorge_Loa

  • PIC10
  • *
  • Mensajes: 24
No puedo leer la humedad relativa con SHT11
« en: 29 de Mayo de 2007, 18:19:16 »
Hola amigos de Todopic, de nuevo realizando trabajos con un PIC me he encontrado inconvenientes................Resulta que debo hacer una aplicacion que mida humedad relativa (entre otras cosas) y nada que puedo leer el sensor ... (escogi el sht11 porque me parecio idóneo aunque nunca lo haya usado, y pues como me daban una muestra gratis me parecio mas idóneo).

A continuacion anexo el programa con el cual estoy trabajando, a partir de uno que vi en Internet; el sensor lo he configurado para trabajar a 12 bits y resulta que siempre me muestra en la LCD:           Humedad: 255% (he deshabilitado la rutina de convertir datos HEXA a el valor de HR y por ahora la LCD debe mostrarme el valor con el cual queda cargado el registro de humedad). En un principio creí que el sensor estaba molestando y lo cambie pero ambos me da lo mismo; en conclusion el problema es el siguiente:

En mi ciudad la humedad relativa es aprox 80-85%, configure el sensor a 12 bits y por lo tanto (segun el datasheet y la curva caracteristica para 12 bits que ahí se muestra) los registros del sensor deben quedar cargados con datos entre 2500 y 2700 (00001010 y 00001011 en el primer byte del sensor) y realmente esto es lo que me muestra la LCD si le pido que me muestre el primer byte(MSB); pero si le digo que me muestre el byte menos significativo (LSB) me muestra siempre 255, lo cual me dice obviamente que el registro a quedado cargado con FF; hice la prueba mostrando ambos datos por separado y variando la humedad relativa generando aire frio y caliente cerca del sensor y unicamente varia lo correspondiente al byte MSB; no se que puede estar mal aunque una revision al programa me lleva a pensar que el problema radica en el momento de generar el ACK (setACK) para empezar a leer el segundo Byte; el programa junto con las rutinas es el siguiente (omito por no ser necesarias las rutinas de la LCD) y agradezco todo tipo de ayuda.
Un solo privilegio: La inteligencia
Una sola aristocracia: La del Espíritu

Desconectado microman

  • PIC10
  • *
  • Mensajes: 17
Re: No puedo leer la humedad relativa con SHT11
« Respuesta #1 en: 31 de Mayo de 2007, 16:32:45 »
He utilizado este sensor...pero lo he programado en C (CCS) y el código me funciona perfectamente. Si lo deseas t puedo facilitar.

Saludos

Desconectado Jorge_Loa

  • PIC10
  • *
  • Mensajes: 24
Re: No puedo leer la humedad relativa con SHT11
« Respuesta #2 en: 31 de Mayo de 2007, 17:42:13 »
Gracias por la respuesta MICROMAN, y te agradezco mucho la ayuda; si me puedes facilitar el codigo de seguro me servira mucho aunque me toca ponerme a entender y ver como paso a Assembler porque tengo todo el programa montado en ese lenguaje.

De nuevo te agradezco.
Un solo privilegio: La inteligencia
Una sola aristocracia: La del Espíritu

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: No puedo leer la humedad relativa con SHT11
« Respuesta #3 en: 31 de Mayo de 2007, 18:14:08 »
hola, en la página tengo un ejemplillo de aplicación de este sensor en CCS C, pegale un ojo, quizá te sirva para desatrancarte:

http://www.hobbypic.com/index.php?option=com_content&task=view&id=16&Itemid=27

saludos!

Desconectado Jorge_Loa

  • PIC10
  • *
  • Mensajes: 24
Re: No puedo leer la humedad relativa con SHT11
« Respuesta #4 en: 31 de Mayo de 2007, 18:37:14 »
Gracias JIM, de hecho ya habia leido tu ejemplo en esa pagina pero no entiendo muy bien; (Tengo bastantes prblemas con el C....jeje, tendre que superarlos algún dia y apenas termine este trabajo empezaré a estudiar ese programa)

Podrias explicarme mejor, como podria traducirse este pedazo:

byte sht11_leer_byte(byte ack)
// reads a byte form the Sensibus and gives an acknowledge in case of "ack=1"
{
   byte i,val=0;

   output_high(DATOS);             //release DATA-line
   for (i=128;i>0;i/=2)           //shift bit for masking 0x80
   {
      output_high(CLOCK);               //clk for SENSI-BUS
      if (input(DATOS))   val=(val | i);  //read bit
      output_low(CLOCK);
   }
   if (ack) output_low(DATOS);      //in case of "ack==1" pull down DATA-Line
   else output_float(DATOS);
   output_high(CLOCK);             //clk #9 for ack
   delay_us(5);                    //pulswith approx. 5 us
   output_low(CLOCK);
   output_high(DATOS);             //release DATA-line
   return val;
}

si no estoy mal, esa es la parte donde se lee los datos generados por el sensor; mi rutina en ASM es la siguiente:

setACK         
   bsf      STATUS,RP0   ;   banco 1 _-_-_-_-_-_-_-_-_-_-_-_-_-_-
   bcf      TRISB,0      ;   pone DATA port,0 como salida
   ;bcf      TRISB,1
   bcf      STATUS,RP0   ;   banco 0 _-_-_-_-_-_-_-_-_-_-_-_-_-_-

   bcf      PORTB,1      ;   SCK  falling edge   bcf
   bcf      PORTB,0      ;   DATA change nivel logico 0   bcf
   bsf      PORTB,1      ;   SCK rising edge
   nop
   ;bsf      PORTB,0      ;   DATA change nivel logico 1(reposo)
   bsf      STATUS,RP0   ;   banco 1 _-_-_-_-_-_-_-_-_-_-_-_-_-_-
   bsf      TRISB,0      ;   pone DATA port,0 como entrada
   bcf      STATUS,RP0   ;   banco 0 _-_-_-_-_-_-_-_-_-_-_-_-_-_-
   return


Es lo mismo; dicen lo mismo?........................ No se si ahí esta el error pero creo que si; porque como anteriormente dije el sensor me genera datos del primer y segundo byte, solo que del segundo me genera siempre "FF" y este dato no cambia cuando vario las condiciones de humedad; sin embargo el primer Byte si varia; la rutina donde se debe decodificar este dato para convertirlo a humedad ya la tengo lista asi que solo me falta que el dato varie.............

Un saludo a todos...........
Un solo privilegio: La inteligencia
Una sola aristocracia: La del Espíritu

Desconectado Jorge_Loa

  • PIC10
  • *
  • Mensajes: 24
Re: No puedo leer la humedad relativa con SHT11
« Respuesta #5 en: 31 de Mayo de 2007, 18:46:55 »
Se me olvido lo siguiente:

sht11_Humedad      ;LECTURA HUMEDAD 2 bytes
         call    SHT11_INICIO   ;   Inicio de transmision
         movlw   b'00000101'
         call   SHT11_COMANDO   ;   Envio: Lectura de humedad
         call   waitACK      ;   espera que llegue ACK desde el sensor
         call   adqtime      ;   espera que pase el tiempo de adquisicion
         call   LEEmsb      ;   lee el byte alto
         call   setACK
         call   LEElsb      ;   lee el byte bajo
         call   setNACK
         ;call   CalcRH      ;   Calcula %RH y ajusta linealidad                           return         
   
y la rutina de leer el byte es:

LEEmsb         
         clrf   RXmsb      ;   limpia registro
         bsf   RXmsb,0      ;   pone un 1 que indicara en carry el final
msb         bcf   PORTB,1      ;   
         bsf   PORTB,1      ;   
         btfss   PORTB,0      ;   lee data
         goto   ceromsb
unomsb                      rlf   RXmsb,f      ;   rota a la izquierda
         bsf   RXmsb,0      ;   pone un 1  en el bit 0
         btfss   STATUS,C                   ;   salio la marca por carry?
         goto   msb      ;   continua y captura el siguiente bit
         return
ceromsb                      rlf   RXmsb,f      ;   rota a la izquierda
         bcf   RXmsb,0      ;   pone un 0  en el bit 0
         btfss   STATUS,C                   ;   salio la marca por carry?
         goto   msb      ;   continua y captura el siguiente bit
         return   

para el LSB la rytina es la misma pero cambiando msb por lsb....
Un solo privilegio: La inteligencia
Una sola aristocracia: La del Espíritu

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
Re: No puedo leer la humedad relativa con SHT11
« Respuesta #6 en: 31 de Mayo de 2007, 18:52:55 »
wow la verdad es que me has pillado, llevo muuucho tiempo sin tocar el ensamblador, siento no serte de mas ayuda... Respecto a que dice el código, si no recuerdo mal efectivamente esa es la parte en la que se lee un byte del sensor. Quizá si ojeas el datasheet del sensor la cosa te quede algo mas clara que si lo ves en C. Hoy estoy algo espeso... disculpa!

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: No puedo leer la humedad relativa con SHT11
« Respuesta #7 en: 31 de Mayo de 2007, 19:01:10 »
Yo también me pedí este sample. Muchas gracias maestro J1M  :mrgreen:

Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Jorge_Loa

  • PIC10
  • *
  • Mensajes: 24
Re: No puedo leer la humedad relativa con SHT11
« Respuesta #8 en: 02 de Junio de 2007, 15:27:01 »
Hola de nuevo a todos; les cuento que por fin me he desenredado y he hecho funcionar el SHT11...........(Ya se que muchos de uds lo han hecho y quiza esto no signifique nada, pero es que yo llevaba tres dias tratando de hacerlo)..y en gran parte debo mucho a este foro. Gracias JIM por tu programa, que al fin de cuentas lo lei todo para hacer una "interpretacion" a ASM, y ahora si..........a seguir con este trabajo.

No sobra decir, que si alguien lo necesita...(En ASM, obvio porque la mayoria de info la encontre en C, y cada dia veo cuan importante y necesario será aprender C) pues sin duda podré ayudarlo.........que ya estoy ansioso por ayudar y no que siempre me ayuden.

saludos a todos. :-/ :-/
Un solo privilegio: La inteligencia
Una sola aristocracia: La del Espíritu

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: No puedo leer la humedad relativa con SHT11
« Respuesta #9 en: 02 de Junio de 2007, 16:37:57 »
Yo tengo el sample hace tiempo empolvandose pues ahora ultimo ando sin tiempo para nada.

Si lo pudieras publicar Jorge_Loa te lo agradeceria bastante, pues deseo integrarlo a la patalla LCD de un nokia que tengo por aqui.

Saludos
« Última modificación: 02 de Junio de 2007, 16:50:30 por Veguepic »
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado Jorge_Loa

  • PIC10
  • *
  • Mensajes: 24
Re: No puedo leer la humedad relativa con SHT11
« Respuesta #10 en: 02 de Junio de 2007, 17:17:58 »
Pues a quien le sirva lo que he hecho es lo que adjunto; falta la rutina donde se hace un ajuste de linealidad ya que el dispositivo no lo es; no la he terminado aun, pero he probado lo demas de acuerdo a datos de humedad en mi ciudad y el datasheet del sensor y son consecuentes entre si.
Un solo privilegio: La inteligencia
Una sola aristocracia: La del Espíritu

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: No puedo leer la humedad relativa con SHT11
« Respuesta #11 en: 02 de Junio de 2007, 19:57:04 »
Ok, gracias.   :wink:
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado delmar

  • PIC10
  • *
  • Mensajes: 1
me podrias facilitar el codigo para el sensor sht11
« Respuesta #12 en: 01 de Septiembre de 2011, 00:39:48 »
He utilizado este sensor...pero lo he programado en C (CCS) y el código me funciona perfectamente. Si lo deseas t puedo facilitar.

Saludos

hola estoy trabajando el sensor sht11 pero tengo problemas al leer la humedad y la temperatura si alguen tiene un cosigo en ccs porfavor rolamelo