miércoles, 4 de diciembre de 2013

Sensor Temperatura y Humedad - DHT11




El DHT11 es un sensor digital de temperatura y humedad, que está calibrado en fábrica para dar precisiones del orden del 5% en humedad y 2% en temperatura, y trabaja en el rango de 0-50ºC y 20-90% de humedad relativa. Por lo que dará cobertura a la mayor parte de nuestras aplicaciones.
La señal se genera en un solo terminal y esto hace que su integración en cualquier proyecto sea de lo más sencilla.

El encapsulado es pequeño como podemos observar en la figura 


y puede llegar a transmitir señales a través del terminal de salida hasta 20 metros.

El circuito de polarización típico para este sensor es el que se presenta a continuación





donde podemos ver que la alimentación puede ser de 3 o de 5 Voltios y que al terminal de la señal le colocamos una resistencia pull-up de 5Kohms para garantizar que las ligeras fluctuaciones en las tensiones de la señal, asociadas a ruidos electrónicos, no afectan a la información que reciba nuestro Arduino. De hecho incluso podríamos meter algún condensador de 100 nF entre la alimentación y el GND con el propósito de filtrar también los ruidos en la misma.

De promedio no suele consumir más que 1mA como podemos ver en su hoja de datos, aunque puede llegar a tener picos de 2.5mA cuando está registrando y transmitiendo la señal. Algo que está muy dentro de las capacidades nominales de nuestros pines digitales del Arduino (40mA máx.)



El esquema de conexionado con nuestra protoboard podría ser algo similar a esto:



Si queremos ver cómo se llegan a entender nuestro Arduino y nuestro sensor DHT11, basta echarle un vistazo a la gráfica que de pulsos que se presenta abajo. Tanto nuestro Arduino como nuestro sensor usan el mismo canal para comunicarse y para transmitir, por lo que se tienen que organizar como lo harían dos trenes pasando por una misma vía.


Primero el Arduino cambia el estado del PIN de detección (en nuestro caso el PIN 8) de Alto a Bajo (o lo que es lo mismo de los 5 Voltios que tenía gracias a nuestra resistencia pull-up de 5K, a 0Voltios que es el nivel que da el PIN GND), y se queda así al menos 18 ms, con objeto de que el sensor DHT11 detecte que algo ha pasado. Transcurridos ese tiempo, y sabiendo que esa señal es la que avisa al DHT11 para que esté atento a las órdenes, el Arduino genera un pulso de 5voltios de 20 a 40 microsegundos y espera a ver qué le contesta el sensor DHT11, manteniéndose en nivel bajo y a la espera de la respuesta del sensor, quien le contesta con otro pulso de 5voltios de 80microsegundos y a partir de ahí le manda la información en formato digital, una vez hecho esto, pone de nuevo la línea en nivel bajo y Arduino entiende “cierra” la comunicación volviendo a poner el canal a 5 voltios como al principio.

No hay comentarios:

Publicar un comentario