En esta entrada, vamos a explicar el funcionamiento del dispositivo DHT11. Para tal fin, hemos diseñado una librería que es capaz de obtener el valor de temperatura, humedad relativa y el checksum.
Para tal tarea, como venimos haciendo, vamos a emplear la placa MSP430 Launchpad. Para empezar, vamos a mostrar algunas características técnicas de éste dispositivo:
Características DHT11 | |
· No requiere de componentes externos | · Periodo mínimo de muestreo de 1 segundo |
· Alimentación desde 3V a 5.5V | · Bus propio, solo se necesita un pin |
· Medición de Temperatura: 0°C a +50°C (±2°C de precisión) | · Medición de Humedad Relativa: 20%RH a +90%RH (±5%RH de precisión) |
Tanto la descripción de los pines como la conexión con un microcontrolador, se muestran en las siguientes imágenes:
Sensor DHT11 | |
Para usarlo, deberemos implementar un su bus por software, cuya morfología es la que se muestra a continuación:
Donde la línea roja es la que deberemos implementar mediante el microcontrolador (señal de comienzo) y la azul, es la señal propia del dispositivo DHT11. El bus se puede desglosar en tres partes:
· 1.- Señal de Comienzo (Start signal): Es la que está dibujada en colo rojo de la figura anterior. Consiste en lanzar la señal de comienzo para la lectura de datos. Es el microcontrolador el que debe realizarla.
· 2.- Señal de Respuesta (Response signal): Una vez transmitida la señal de comienzo, el dispositivo DHT11 emite un pulso (80 μs señal baja y 80 μs señal alta) que determina que está presente.
· 3.- Datos (Data): Se empieza a transmitir los datos (40-bit).
Pero en este capítulo no pretendemos hacer una explicación exhaustiva de este periférico, nuestro propósito es mostrar cómo controlarlo mediante la librería que hemos diseñado para tal fin. Esta librería contiene dos archivos:
· DHT11.c : Dónde se alojan todas las funciones necesarias para el control del DHT11.
· DHT11.h : Dónde se alojan todas las definiciones, constantes y declaraciones necesarias del DHT11.
Librería: DHT11 |
· Lo que podemos hacer: |
· Realizar una lectura completa del sensor DHT11. |
La configuración del microcontrolador para trabajar con este dispositivo externo es la siguiente:
Configuración por defecto: DHT11 | ||
· Puerto a usar: | ||
· P1 | ||
Pin Launchpad | Pin DHT11 | |
P1.5 | ---> | DQ |
La función que nos permite obtener una lectura completa del dispositivo DHT11 es la que se muestra a continuación:
Leer desde el DHT11 | |
· Función: | |
void DHT11_ini (void) | |
· Ejemplos: | Descripción |
DHT11_ini (); | Almacena en una variable vector global una lectura completa. |
Y llegados a este punto, ya se han presentado todas las funciones fundamentales y necesarias para controlar el dispositivo DHT11.
Os pongo a vuestra disposición, los archivos que componen la librería para el manejo y control del dispositivo DHT11:
MSP430: Librería DHT11 | |||||||||||||
Compilador IAR | Compilador MSPGCC | ||||||||||||
C | C | ||||||||||||
|
|
Para poner en práctica los conceptos y el control del dispositivo DHT11, os dejo un ejemplo:
Ejemplo: MSP430 + DHT11 + UART | |
1. Programa | Lectura de temperatura y humedad relativa del dispositivo DHT11. |
· NOTA: Esta librería no está optimizada. Emplea el Timer A TA0 como recurso para generar retardos o tiempo de seguridad (Timeout).
Una lectura completa suele durar aproximadamente 23 ms.
En este capítulo, se han usado imágenes de terceros.
0 comentarios:
Publicar un comentario