Autor Tema: Dht11 en assembler  (Leído 16580 veces)

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

Desconectado jo.an.

  • PIC16
  • ***
  • Mensajes: 120
Dht11 en assembler
« en: 05 de Febrero de 2016, 16:26:01 »
Alguien tiene un ejemplo en assembler para hacer funcionar un senspr dht11 no me funciona

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re:Dht11 en assembler
« Respuesta #1 en: 05 de Febrero de 2016, 20:08:21 »
Código: [Seleccionar]
http://www.edaboard.com/thread247608.html?__hstc=48151032.708c6e9d5b1af0269f87039dbe7e4d0c.1454713141160.1454713141160.1454713141160.1&__hssc=48151032.1.1454713141160&__hsfp=1745313190
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado jo.an.

  • PIC16
  • ***
  • Mensajes: 120
Re:Dht11 en assembler
« Respuesta #2 en: 08 de Febrero de 2016, 22:06:30 »
Saludos palitroquez. Baje el ejemplo de la direccion que enviaste y no consigo que se mueva. Con que lo pueda ver en un puerto como varia la temperatura y la humedad de ahi en adelante vere como le hago. Gracias

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re:Dht11 en assembler
« Respuesta #3 en: 08 de Febrero de 2016, 23:55:40 »
y estás usando el mismo cristal?,

recuerda que la secuencia para leer la data del DHT11 requiere de unos tiempos establecidos para cada nivel lógico (incluyendo los de inicio para engancharlo con el pic).

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado jo.an.

  • PIC16
  • ***
  • Mensajes: 120
Re:Dht11 en assembler
« Respuesta #4 en: 09 de Febrero de 2016, 23:14:19 »
Estoy perdido.
       Empe    btfss 0x05,0
           Goto  empe
           Call   retardo de 50us
      Aqui     Call    retardo de 27us
                Movwf    0x08      ;puerto d
               Goto     aqui
siempre me sale el mismo valor en el puerto c  y no se varia el dato ni de humedad ni temperatura. Estoy encartado con este semsor. Si alguien a trabajado con dht11 y me pudiese pasar esta parte se lo agradeceria
Gracias de antemano

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dht11 en assembler
« Respuesta #5 en: 09 de Febrero de 2016, 23:24:25 »
Es muy complejo que alguien pueda ayudarte sin saber como es el codigo que tenes. Ni tampoco como lo esta conectado

Desconectado jo.an.

  • PIC16
  • ***
  • Mensajes: 120
Re:Dht11 en assembler
« Respuesta #6 en: 10 de Febrero de 2016, 14:46:59 »
Lo estoy conectando por ra,0 de un 16f877 con cristal de 4mhz el codigo para hacerlo funcionar es el que no consigo hacer. Daria igual con otro pic la cosa es verlo andar. Agradezco tu tiempo

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dht11 en assembler
« Respuesta #7 en: 10 de Febrero de 2016, 17:22:31 »
Es muy complejo que alguien pueda ayudarte sin saber como es el codigo que tenes. Ni tampoco como lo esta conectado

Y tambien, por que alguien en su sano juicio usaria:

Código: ASM
  1. btfss 0x05,0
  2. Movwf    0x08      ;puerto d

en ves de:

Código: ASM
  1. btfss PORTA,0
  2. Movwf    PORTD


Inclui el .inc de tu PIC, tiene todas las definiciones. Y si cometiste esos "errores" seguro que hay otros en el codigo.
« Última modificación: 10 de Febrero de 2016, 17:25:02 por KILLERJC »

Desconectado jo.an.

  • PIC16
  • ***
  • Mensajes: 120
Re:Dht11 en assembler
« Respuesta #8 en: 11 de Febrero de 2016, 16:10:49 »
Trabajo con sim84 desde hace 17 años y no admite los .inc tengo que declarar los registros,no importa. Me es mas comodo 0x05,0 que porta,0. Esto de los pics es hobby y queria hacerle un invernadero a mi señora. De todas formas gracias por vuestro tiempo ,seguire intentando

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dht11 en assembler
« Respuesta #9 en: 11 de Febrero de 2016, 18:06:35 »
Bueno jo.an. no puedo decirte mucho mas que necesitas actualizarte y que sin el codigo de tu proyecto no puedo determinar donde esta el problema.

Con lo cual respeto tu opinion de no querer pasarlo, pero que nos deja a mi y a cualquiera atados de mano para ayudarte. Y solo queda que vos mismo lo resuelvas.

Desconectado jo.an.

  • PIC16
  • ***
  • Mensajes: 120
Re:Dht11 en assembler
« Respuesta #10 en: 12 de Febrero de 2016, 13:57:16 »
creo que los tiempos estan bien,pero no consigo visualizar en los puertos los valores de humedad y temperatura.disculpad la forma de escribir el codigo algunos me critican pero aprendi a las malas.Hay varios ejemplos e C pero ni idea como pasarlos a assembler,seria otra opcion.Gracias a todos

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dht11 en assembler
« Respuesta #11 en: 12 de Febrero de 2016, 15:18:56 »
Ahora mirando el codigo se por que no te funciona. Y no te funciona por que realmente no tenes nada realizado.
Es como que crees que mandandole un pulso al sensor y poniendo el pin como entrada , los valores van a estar magicamente en W. Y eso no ocurre asi..
Es mucho mas complejo que eso. Ademas tenes que tener en cuenta que es una comunicacion con colector abierto o alta impedancia, ya que es un solo pin. y JAMAS de los JAMAS deberias poner tu pin como salida a 1, si como salida pero a 0 o como entrada ( alta impedancia ).

Leyendo el datasheet del DHT11 lo primero que dice es: Al darle alimentacion esperar 1 segundo antes de realizar la primera lectura. Lo cual jamas se espera.

Por otra parte la comunicacion la inicia el PIC poniendo el pin a 0 por un tiempo (deberia estar en alta impedancia - entrada hasta este momento me refiero para ponerlo a 0) y luego ponerlo como entrada y ver lo que llega.

Lo que llegan son 40 bits. pero estos bits no es tan facil como leer si es uno o cero. vienen "codificados".

Lo primero que llega como respuesta del sensor es.. un pulso bajo y luego alto indicando que el sensor va a transmitir. Seguido de eso cada bit viene representado por un pulso bajo y luego un pulso alto. Para saber que valor tiene ese bit. Hay que medir cuanto tarda el pulso alto.

El pulso bajo siemrpe es de 50us, y luego el alto depende, si es de 26/28us significa que es un 0 y luego comienza el otro bit, pero si tarda 70us significa que es un 1. Cuando recibas todos los bits, los 40, deberias verificar si lo que llego es correcto.

8 bits de humedad : 8 bits de humedad : 8 bits de temperatura : 8 bits de temperatura : 8 bits de paridad

Sumando los 8 +8 de humedad mas los otros 8 + 8 de temperatura te deberian dar igual a los de paridad. Sino hay un error y deberias de tirar la lectura

Comprobado esto, ya tenes tus bits de forma correcta en tu PIC. Y podes mostrarlo ahora si.

Datasheet del DHT11 donde explica esto:
http://akizukidenshi.com/download/ds/aosong/DHT11.pdf

Desconectado jo.an.

  • PIC16
  • ***
  • Mensajes: 120
Re:Dht11 en assembler
« Respuesta #12 en: 12 de Febrero de 2016, 17:08:08 »
es mas facil buscar la cuadratura del circulo que tabajar con este sensor.Seguire buscando.Gracias

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dht11 en assembler
« Respuesta #13 en: 12 de Febrero de 2016, 17:17:34 »
No se que buscas por que ya PalitroqueZ te paso la pagina donde la 3er/4ta respuesta masomenos hay una rutina para leer el DHT11. Que podes estudiar y ver como lo hace

Desconectado jo.an.

  • PIC16
  • ***
  • Mensajes: 120
Re:Dht11 en assembler
« Respuesta #14 en: 12 de Febrero de 2016, 21:36:52 »
Si.Lo descarge lo ensamble y no dice ni pio,no se por que.Saludos