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