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

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

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dht11 en assembler
« Respuesta #45 en: 25 de Febrero de 2016, 01:43:04 »
El problema ya te lo dije, es insensato que pongas PORTA,0 en 1. Por que esa salida DEBERIA tener una resistencia de pull-up, por lo cual SI o SI va a estar en 1, por mas que lo pongas en 1 vos. El tema es si no se posee esa resistencia de pull-up. Pero vos me dijiste que ya tiene una resistencia de VCC a DATA  ( o el pin de datos ) el cual seria tu pull-up.

A ver si me explico mejor. Supongamos que tenes el DHT11 sin conectar al PIC. En el pin de VCC tendrias 5V, en de GND tendrias 0V y en el pin de DATA ( datos o como se llame ) deberias tener 5V. Vas y conectas tu PIC. El cual inicia como entrada (alta impedancia) el PORTA,0 y deberias tener 5V en el mismo ( un 1 ), supongamos que pones a 1 la salida PORTA,0, perfecto, estas poniendo 5V en una linea que tiene 5V. Es decir van a seguir estando los 5V alli y no va a haber diferencia entre los 5V del pull-up o los 5V de tu PIC para el DHT11, por lo cual si me decis que tenes que poner en 1 el PORTA,0 solo me queda pensar que falta la resistencia esa. Ahora si falta la resistencia de pull-up cuando pasas a entrada no vas a tener mas los 5V y va a estar flotando ( ni 1 ni 0 definido )

Si podes verlo con un osciloscopio seria ideal.

Pero ahi te explico el por que es ilogico pensar que necesitas poner a 1 la salida para que funcione, cuando ya de por si solo con la resistencia de pull-up esta en 1.
« Última modificación: 25 de Febrero de 2016, 02:25:12 por KILLERJC »

Desconectado jo.an.

  • PIC16
  • ***
  • Mensajes: 120
Re:Dht11 en assembler
« Respuesta #46 en: 25 de Febrero de 2016, 22:42:14 »
Yo lo veo asi:tenemos que enviar 50us bajo  y despues 27us alto.La resistencia pull up esta a +5v pero no trabaja por que tenemos  a 0v el ra5,0 ,por que enviamos 50us por bajo.Si no la ponemos alto no va a hacer los 27us que tienen que ser alto,por eso hay que poner bsf 0x05,0.
Saludos.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dht11 en assembler
« Respuesta #47 en: 25 de Febrero de 2016, 23:05:02 »
Solamente hay un solo momento en el que el PIC deberia estar en salida. El paso a paso es asi:

Paso 1:
Inicia el modulo, esperas 1 segundo hasta poder leer por primera ves, tu linea de datos esta en 1 por el pull-up, tu PIC como entrada.

Paso 2:
Para poder leer, con el PIC tenes que poner un 0, por lo cual pones en salida, lo pones a 0 por un minimo de 18ms, terminado ese tiempo lo pones en entrada lo cual la linea de datos se va a un estado de 1 por si solo por el pull-up. Es decir Soltas la linea de datos para que lo use el DHT11. Apartir de aca siempre el PIC como entrada, es decir que el unico momento de poner el pin como salida es para esos 18ms de tenerlo en 0. ( Lo que le indica al DHT11 que envie )

Paso 3:
El DHT11 observa esto, y procede a responder con un pulso inicial de 80us en bajo, y luego 80us en alto, Esto lo produce el DHT11 !!

Paso 4:
Llegan los bits DESDE el DHT11, el PIC solo tiene que leer el pin al igual que el paso 3, asi que tiene que estar como entrada, El cual siempre tienen 50us en bajo y lo que cambia es el pulso en alto, 26-28us que representa un 0 o 70us que representa un 1. Esto para los 40 bits ( de temperatura, humedad , y checksum ). Esto tambien lo produce el DHT11

Paso 5:
El DHT11 envia un pulso en 0 al final de los 40 bits con una duracion de 50us. No TAN importante por que podes "evitarlo" entre medida y medida ya que deberias leer el sensor cada 1s masomenos, ya que la velocidad de lectura del mismo es mucho mas lenta, lei de hasta 5 segundos. Esto tambien lo produce el DHT11

Ese paso a paso esta explicado aqui (casi una traduccion lo que puse yo aca de lo que dice el PDF), el cual podes leer y corroborar lo que digo:
http://akizukidenshi.com/download/ds/aosong/DHT11.pdf

Es el link que te pase en la primera hoja del hilo del foro. Sino podes leer lo que te paso PalitroqueZ que debe estar en español, e imagino que debe decir lo mismo.

En resumen, lo unico que debe "enviar" como salida es ese pulso en 0 de 18ms, todo el otro tiempo el pin debe estar como entrada.
« Última modificación: 25 de Febrero de 2016, 23:10:27 por KILLERJC »

Desconectado jo.an.

  • PIC16
  • ***
  • Mensajes: 120
Re:Dht11 en assembler
« Respuesta #48 en: 26 de Febrero de 2016, 15:21:42 »
Saludos:Si te fijas en el link que envio palitroquez muy amablemente ,la linea en color rojo es enviada por el pic y hay un pulso de 20 a 40us alto.Si paso de salida a entrada ra5,0  si se pondria en alto ra 0x5,0 por la resistencia pero me faltaria ese pulso alto que envia el pic.Agradezco inmensamente tu interes por ayudarme,pero si tienes ocasion de tener un dht11 en tus manos y lo pruebas fisicamente,te daras cuenta que sin ese pulso alto no funciona.No es por contradecir(no llegariamos a ningun lado),pero sigo al pie de la letra tus consejos,me han ayudado bastante a entender este sensor.Me dices que el sensor se demora entre lectura y lectura 1s hasta 5s,quizas no he tenido en cuenta esto y me estoy liando.Como estube trabajando con el dh11 ( ese que es un condensador que se varia la capacitancia segun la humedad) y la respuesta es inmediata,debe ser donde tengo el lio.Muchas gracias killerjc

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dht11 en assembler
« Respuesta #49 en: 26 de Febrero de 2016, 16:26:21 »
Yo me estoy basando en lo que es una comunicacion de 2 vias por un mismo canal, el cual tenes que tener protecciones, y la forma de hacerlo es tener salidas open-colector. Sino mira el I2C, en el que si ambos dispositivos activan al mismo tiempo no exista problemas. En eso me estoy basando. Voy a explicar nuevamente como seria el funcionamiento.

Citar
Saludos:Si te fijas en el link que envio palitroquez muy amablemente ,la linea en color rojo es enviada por el pic y hay un pulso de 20 a 40us alto.

Voy a copiar la imagen y voy a explicar el por que lo que asumo es verdad..



Justamente esa imagen corresponde al paso 2 (lo del PIC) y paso 3 que te dije yo.
Lo que estoy diciendo yo es que por mas que vos pongas tu PORTA,0 en 1 o lo pases como entrada, vas a tener SI o SI 5V en el bus de datos. Nomas que con el PIC vas a "eliminar" el efecto del pull-up, ya que estarias uniendo directo el canal de datos con VCC sin resistencia de por medio.
El circuito equivalente (del sensor y micro) seria asi:



Analicemos lo que yo digo ( Pensa nuevamente los transistores como llaves ).
- El Q del DHT11 esta abierto, es decir no hay paso. y el Q del PIC tampoco (como entrada, abierto). Por lo tanto la tension en el bus de datos es 5V.
- Comienza conduciendo el Q del pic, conectando la linea de datos a GND, para darle el pulso inciial de 18ms por eso tenes un 0 en la linea de datos.
- Aca tenes 2 opciones, pasarlo a entrada, o ponerlo en salida y en 1. Veamos la direfenrencia:
  Salida: Si pones en salida, y en 1, la linea de bus de datos va a tener 5V, por que se va a cerrar el transistor que no dibuje del PIC, el cual va a unir la linea de datos con VCC.
  Entrada: este se vuelve alta impedancia , es decir que se abre el Qpic. Por lo tanto la linea de datos no posee "conexion" a GND, y el unico voltaje es VCC a traves de la resistencia de pull-up, que como no hay corriente no hay caida de tension, por lo tanto queda con la misma tension de VCC ( la linea de datos ).

Entonces sigo sin comprender por que uno es distinto de otro cuando ambos tienen VCC en su salida.

Es interesante ademas ver como la persona que explica en español omite esa parte:

Citar
El microcontrolador debe iniciar la comunicación con el DHT11 manteniendo la linea de datos en estado bajo durante al menos 18 ms. (Aca parte faltante) Luego el DHT11 envía una respuesta con un pulso a nivel bajo de 80 uS y luego deja “flotar” la linea de datos por otros 80 uS

No dice nada de ponerlo a 1 ni pasarlo a entrada. Simplemente omite esa explicacion.
En el PDF que pase yo te lo voy a traducir:

Citar
Microprocessor I / O set to output at the same time output low, and low hold time can not be less than 18ms, then the microprocessor I / O is set to input state, due to the pull-up resistor, a microprocessor/ O DHT11 the dATA data lines also will be high

"El microcontrolador cambia el pin a salida, al mismo tiempo lo pone en bajo ( a 0 ), y mantiene ese pin en bajo por un tiempo no menor a 18ms, entonces el microcontrolador cambia el pin a entrada, que debido a la resistencia de pull-up la linea de datos del microcontrolador y del DHT11 va a estar en alto."

Y esto esta por fuera de todo lo que se podria llamar funcionamiento del DHT, la explicacion del pull-up es electronica basica. Y no posee relacion directa con como leer el sensor u otra cosa. Estamos hablando de tener 5V o no en la linea de datos, y con ambas soluciones se logra, poniendo a 1 la salida o poniendolo como entrada. Y no hay forma para el DHT11 discriminar su los 5V provienen del PIC o de la resistencia de pull-up.



Mirando un par de codigos de librerias estan poniendo la salida a 5V, justamente como yo estoy evitando. Me parece absurdo que se haga esto.
Algunos como los del link en español que paso PalitroqueZ hacen esto:

Código: C
  1. dhtlib_outhi();
  2.         dhtlib_setin(); // Turn pin to input

Es decir, lo ponen a 1, y ahi nomas lo ponen como entrada. Como dandole un pulsito. ( pulsito que no tiene sentido gracias a la resistencia de pull-up y lo que explique antes).
Este "metodo" si todo funciona bien no habria problemas. ya que es un pulsito muy muy pequeño comparado con los 28 a 40us que dice el pulso alto ( lo cual no correria riesgo de cortocircuito )

Buscando en Adafruit me encuentro con otro PEOR, en todo sentido de aplicacion, realmente estos tipos esta muy locos:

Código: C
  1. // First set data line low for 20 milliseconds.
  2.    pinMode(_pin, OUTPUT);
  3.    digitalWrite(_pin, LOW);
  4.    delay(20);
  5.  
  6.    // End the start signal by setting data line high for 40 microseconds.
  7.     digitalWrite(_pin, HIGH);
  8.     delayMicroseconds(40);
  9.  
  10.     // Now start reading the data line to get the value from the DHT sensor.
  11.     pinMode(_pin, INPUT_PULLUP);

Donde mantiene 40us el pin en alto, que supuestamente son 20 a 40 us, si es que el DHT11 se le ocurre a los 30us poner la salida a 0 es un cortocircito!. Esto no tiene explicacion realmente.

Finalmente:

Pero si queres agregarle el BSF y ver si funciona, pero para mi seria lo mismo (5V serian lo mismo desde donde vengan), hagamos la del articulo que paso PalitroqueZ. Aca le agrego el BSF y que sea momentaneo, es decir un pequeño pulsito nada mas. Tal y cual esta la otra libreria funcionando.

Código: ASM
  1. list     p=16F877 ;Se indica el modo de procesador
  2.          radix   hex
  3.  
  4. W       EQU     0
  5. F       EQU     1
  6.  
  7. STATUS  EQU     0x03
  8.  
  9. C       EQU     0
  10. Z       EQU     2
  11. RP0     EQU     5
  12.  
  13. PORTA   EQU     0x05
  14. PORTB   EQU     0x06
  15. PORTC   EQU     0x07
  16. PORTD   EQU     0x08
  17.  
  18. TRISA   EQU     0x85
  19. TRISB   EQU     0x86
  20. TRISC   EQU     0x87
  21. TRISD   EQU     0x88
  22.  
  23. ADCON1   EQU      0X9F
  24.  
  25.  
  26. d1       equ      0x20            
  27. d2       equ      0x21
  28. d3       equ      0x22
  29. reg1     equ      0x23
  30. reg2     equ      0x24
  31.  
  32. Checksum        equ      0x25
  33. TempDecimal     equ      0x26
  34. TempEntero      equ      0x27
  35. HumEntero       equ      0x28
  36. HumDecimal      equ      0x29
  37. CantidadBits    equ      0x30
  38.  
  39. ;----------------------------------------------------------------------------
  40.         ORG     0x00            ;vector de inicio
  41.         GOTO    Setup
  42.         ORG     0x04
  43.         RETURN
  44.  
  45.          
  46. Setup:
  47.         BSF     STATUS, RP0
  48.         MOVLW   0x06            ;Puerto A en modo digital
  49.         MOVWF   ADCON1
  50.         MOVLW   b'000001'       ; RA0 entrada
  51.         MOVWF   TRISA
  52.         CLRF    TRISB
  53.         CLRF    TRISC
  54.         CLRF    TRISD           ;
  55.         CLRF    TRISE
  56.         BCF     STATUS, RP0
  57.                
  58.         CLRF    PORTA
  59.         CLRF    PORTB
  60.         CLRF    PORTC
  61.         CLRF    PORTD
  62.         CLRF    PORTE
  63.  
  64. Main:
  65.         CALL    Delay_1s
  66.         CALL    Leer_DHT
  67.         CALL    Checkear_datos
  68.         ANDLW   0xFF
  69.         BTFSS   STATUS, Z
  70.         GOTO    Mal_dato
  71.         BCF     PORTB, 0
  72.         MOVF    TempEntero, W
  73.         MOVWF   PORTD
  74.         MOVF    HumEntero, W
  75.         MOVWF   PORTC
  76.         GOTO    Main
  77. Mal_dato:
  78.         BSF     PORTB, 0
  79.         GOTO    Main
  80.  
  81.  
  82.  
  83. Leer_DHT:
  84.  
  85.         CLRF    TempEntero
  86.         CLRF    TempDecimal
  87.         CLRF    HumEntero
  88.         CLRF    HumDecimal
  89.         CLRF    Checksum
  90.  
  91.         MOVLW   .40
  92.         MOVWF   CantidadBits
  93.  
  94.  
  95.         ; Aca enviar pulso inicial ( poner como salida, y luego a 0 por un tiempo, luego pasarlo a entrada )
  96.         BSF     STATUS, RP0
  97.         BCF     TRISA, 0                ; Salida
  98.         BCF     STATUS, RP0
  99.         BCF     PORTA, 0                ; Pongo un 0 en caso que no lo hubiera tenido
  100.         CALL    Delay_80us              ; Espero los 80us necesarios
  101.         BSF     PORTA, 0
  102.         BSF     STATUS, RP0
  103.         BSF     TRISA, 0                ; Entrada nuevamente
  104.         BCF     STATUS, RP0
  105.  
  106.  
  107.         ; Agregar aca la espera del primer pulso de respuesta que no forma parte de los bits.
  108.  
  109.         BTFSC   PORTA, 0        ; Espero que llegue el 0, desde el DHT11
  110.         GOTO    $-1
  111.         BTFSS   PORTA, 0        ; Estoy en 0, Espero que se ponga en 1 el DHT11
  112.         GOTO    $-1
  113.  
  114.         ; Ahora comienzo a recibir bit a bit
  115. Loop:
  116.         BTFSC   PORTA, 0        ; Espero que llegue el 0
  117.         GOTO    $-1
  118.         BTFSS   PORTA, 0        ; Estoy en 0, Espero que se ponga en 1
  119.         GOTO    $-1
  120.         CALL    Delay35us       ; Luego del delay pasan como maximo 17 ciclos hasta que vuelve a preguntar de nuevo, lo cual estaria dentro del rango de las 20 instrucciones para 4Mhz
  121.         BTFSS   PORTA, 0
  122.         GOTO    Es_cero
  123. Es_uno:
  124.         ; Si llego aca es 1
  125.         BSF     Checksum, 0     ; Observa que no uso INCF, sino que directamente pongo a 1 o 0 el bit
  126.         GOTO    Rotar
  127. Es_cero:
  128.         ; Si llego aca es 0
  129.         BCF     Checksum, 0
  130. Rotar:
  131.         DECF    CantidadBits, F ; Decremento la cantidad de bits restantes, cuando llega a 0 salgo, sino roto el valor, al rotar lo trato como un numero completo de 40 bits
  132.         BTFSC   STATUS,Z
  133.         RETURN
  134.         RLF     Checksum, F     ; Cuando roto por primera vez (en Checksum) el carry puede tener cualquier valor
  135.         RLF     TempDecimal, F  ; pero no importa por que en la proxima pasada sobreescribo ese bit con BSF y BCF, los demas carrys son necesarios
  136.         RLF     TempEntero, F
  137.         RLF     HumDecimal, F
  138.         RLF     HumEntero, F
  139.         GOTO    Loop
  140.  
  141.  
  142. ; Si W = 0 indica que esta todo bien, sino borra todo por que el dato es malo.
  143. ; Esto es para comprobar con el que llama
  144.  
  145.  
  146. Checkear_datos:
  147.         MOVF    HumEntero, W
  148.         ADDWF   HumDecimal, W
  149.         ADDWF   TempEntero, W
  150.         ADDWF   TempDecimal, W
  151.         XORWF   Checksum, W
  152.         BTFSC   STATUS, Z
  153.         RETURN                  ;W = 0
  154. Mal_Checksum:
  155.         CLRF    TempEntero
  156.         CLRF    TempDecimal
  157.         CLRF    HumEntero
  158.         CLRF    HumDecimal
  159.         CLRF    Checksum
  160.         RETURN                  ;W =/= 0
  161.  
  162.         end
  163.  
  164.  
  165. ; ******************************************************************
  166. ;
  167. ;                       Delays
  168. ;
  169. ; ******************************************************************
  170.                        
  171.  
  172.  
  173. ; Delay = 1 seconds
  174. ; Clock frequency = 4 MHz
  175.  
  176. ; Actual delay = 1 seconds = 1000000 cycles
  177. ; Error = 0 %
  178.  
  179. Delay_1s
  180.                         ;999990 cycles
  181.         movlw   0x07
  182.         movwf   d1
  183.         movlw   0x2F
  184.         movwf   d2
  185.         movlw   0x03
  186.         movwf   d3
  187. Delay_1s_0
  188.         decfsz  d1, f
  189.         goto    $+2
  190.         decfsz  d2, f
  191.         goto    $+2
  192.         decfsz  d3, f
  193.         goto    Delay_1s_0
  194.  
  195.                         ;6 cycles
  196.         goto    $+1
  197.         goto    $+1
  198.         goto    $+1
  199.  
  200.                         ;4 cycles (including call)
  201.         return
  202.                  
  203. ; Delay = 80 instruction cycles
  204. ; Clock frequency = 4 MHz
  205.  
  206. ; Actual delay = 8e-005 seconds = 80 cycles
  207. ; Error = 0 %
  208.  
  209. Delay_80us
  210.                         ;76 cycles
  211.         movlw   0x19
  212.         movwf   d1
  213. Delay_80us_0
  214.         decfsz  d1, f
  215.         goto    Delay_80us_0
  216.  
  217.                         ;4 cycles (including call)
  218.         return
  219.  
  220. ; Delay = 35 instruction cycles
  221. ; Clock frequency = 4 MHz
  222.  
  223. ; Actual delay = 3.5e-005 seconds = 35 cycles
  224. ; Error = 0 %
  225.  
  226. Delay_35us
  227.                         ;31 cycles
  228.         movlw   0x0A
  229.         movwf   d1
  230. Delay_35us_0
  231.         decfsz  d1, f
  232.         goto    Delay_35us_0
  233.  
  234.                         ;4 cycles (including call)
  235.         return
« Última modificación: 26 de Febrero de 2016, 16:29:12 por KILLERJC »

Desconectado jo.an.

  • PIC16
  • ***
  • Mensajes: 120
Re:Dht11 en assembler
« Respuesta #50 en: 28 de Febrero de 2016, 03:13:36 »
Todo el problema era que tengo una targeta con led puestos a cada pin, pulsador para porobar entradas y led para ver salidas.No cai en cuenta de haberle cortado la pista a ra5,0.Nunca habia tenido problemas con esta especie de protoboard,pero alguna vez tenia que ser.Millon de gracias y me descubro ante tu saber.Un saludo jose antonio

Desconectado jo.an.

  • PIC16
  • ***
  • Mensajes: 120
Re:Dht11 en assembler
« Respuesta #51 en: 04 de Julio de 2016, 23:47:45 »
Saludos killerjc: el dht11 me funciona a la perfeccion ,pero lo camblo por el dht22 y la temperatura me marca 00. Me podrias decir,,por favor,cual es la diferencia entre uno y otro?. Entiendo que la diferencia es que el dht22 marca decimales y el dht11 solo enteros. Muchas gracias

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dht11 en assembler
« Respuesta #52 en: 05 de Julio de 2016, 09:01:38 »
En la comunicacion y el formato que envia es igual, lo que no puede estar dando correcto y te esta marcando 00 es por el checksum, que el valor lo detecte como que no es correcto entonces pone todos los registros de temperatura a 0. Al menos asi lo habia realizado :P

Pero no cambia mucho, solo cambia una cosa, que el DHT11 necesita un minimo de 18ms en el pulso inicial, mienrtas que el DHT22 es de 1ms como minimo.

Y que aproximadamente cada 2 segundos cambia el valor de lectura.

Desconectado joseydoris

  • PIC12
  • **
  • Mensajes: 58
Re:Dht11 en assembler
« Respuesta #53 en: 09 de Agosto de 2016, 20:56:03 »
Un saludo killerjc:El dht11 me funciona a la perfeccion,para el dht22 le cambie 18ms por 1ms y cuando prendo me da 55 de temp y 00 de humed. cuando le echo el aliento me pasa a 00 temp y 55 hume y se queda ahi.Te envio el pedazo de codigo con la modificacion de 1ms por 18ms.Gracias por tu tiempo

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dht11 en assembler
« Respuesta #54 en: 10 de Agosto de 2016, 09:04:07 »
Como dije antes, la lectura del DHT22 es igual a la del DHT11,, lo unico que cambia es que puede darse un pulso inicial mas corto.

Si estuviera leyendo cualquier cosa, entonces tendrias 00 de humedad y 00 de temperatura, ya que nunca daria el checksum.
Estuve viendo una libreria de Adafruit, que si tiene sus problemas, pero practicamente lo hace de la misma forma.

Intenta usar un cristal de alto valor y poner el delay para ese cristal, por que yo no recuerdo para que frecuencia lo pense, por que sino no daban los tiempos.

PD: Usa los nombres de los registros, no se que es 0x05 ni 3, ni 2 ni 0, Para algo estan :/

Desconectado joseydoris

  • PIC12
  • **
  • Mensajes: 58
Re:Dht11 en assembler
« Respuesta #55 en: 13 de Agosto de 2016, 01:28:58 »
Un saludo Killerjc:Para el dht11 hay que darle 18ms para que lea.Le he ido bajando el tiempo hasta 1ms y sigue igual.Cuando prendo temp 55 hum 33.Lo caliento un poco temp 00 hum 34 y ya no va para ningun lado,si fuera el cheksun me daria temp 00 hum 00 ya que si no coinciden los limpia los registros.No se que mas hacerle.No tengo a mano un cristal mas grande,no se si sera por eso.Los veo en la red con arduino y parecen que trabajan bien no se que cristal llevaran.Si me pudieses echar una mano con esto te lo agradeceria.att jose

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Dht11 en assembler
« Respuesta #56 en: 13 de Agosto de 2016, 09:59:55 »
Es que no es que no quiera ayudarte, no tengo ni un DHT22 presente como para probarlo y decirte que es. Asi que no puedo aportar mas.

Desconectado joseydoris

  • PIC12
  • **
  • Mensajes: 58
Re:Dht11 en assembler
« Respuesta #57 en: 14 de Agosto de 2016, 22:33:48 »
un saludo killerjc:si no se puede no se puede,que le vamos a hacer,otra vez sera.Gracias por todo