Pin
|
Denominación
|
Comentarios
|
|
1
|
GND
|
Masa
|
|
2
|
DATA
|
Entrada-Salida de datos
|
|
3
|
SCK
|
Entrada señal de reloj
|
|
4
|
Vcc
|
Alimentación (5V)
|
|
NC
|
NC
|
No conectado
|
Se ha desarrollado una librería para el control de este tipo de sensores <SHTxx_RyP.c>. Su documentación en detalle puede verse en el artículo "Librería C para sensor SHT11".
Aunque el sensor se puede alimentar con un rango de tensiones de 2.4v a 5.5v, la exactitud del valor de la medida de los valores ambientales dependerán de dicho valor. La librería c está desarrollada para una tensión de alimentación de 5v. Otros valores diferentes a éste pueden provocar errores en la exactitud de la medida de las variables ambientales.
Se debe colocar un condensador de desacoplo de 100nF entre los pines de alimentación y colocado lo mas cercano posible a estos en el sensor. La línea DATA también requiere de una resistencia pull up de 10k.
En la cabecera del programa habrá que llamarla
mediante la directiva:
#include
<SHTxx_RyP.c>
En el caso del empleo de la versión v3 o v4 del sensor
SHT71 o SHT75, la librería C a emplear será <SHT7xv3_RyP.c> que contiene
los coeficientes de cálculo adecuados para esas versiones.
/************* Definición de pines del bus serie
**************/
#define sht_data_pin PIN_A4
#define sht_sck_pin PIN_A3
Cargada la librería C para el sensor, y antes de
cualquier otra llamada al mismo, habrá que inicializarlo:
SHTxx_init(); //Inicialización
del SHT11
Para leer los valores de las medidas ambientales de Temperatura y Humedad, se llama a la función:
/** Llamada a la función de lectura de Temperatura y Humedad **/
SHTxx (sht_temperatura, sht_humedad);
SHTxx (sht_temperatura, sht_humedad);
Nos devolverá en las variables sht_temperatura y sht_humedad los valores de temperatura y humedad respectivamente.
Por defecto, el Registro de Estado se carga con la
configuración 0x00. Es decir, emplea una resolución de 14 bits para la lectura
digital de la Temperatura, 12 bits de resolución para la lectura digital de la
humedad y se deja apagado el calefactor interno del sensor. Si se desea cambiar
esta configuración, se deberá llamar a la función:
SHTxx_ESCRITURA_REGISTRO_ESTADO
(sht_registro);
Donde sht_registro deberá contener el
valor a cargar en el Registro de Estado en base a los bits que se desee
activar:
Bit
|
Tipo
|
Descripción
|
Por
defecto
|
7
|
---
|
Reservado
|
0
|
6
|
R
|
Detección de bajo voltaje:
‘0’ => Vcc > 2.47 V
‘1’ => Vcc < 2.47 V
|
Sólo lectura
|
5
|
---
|
Reservado
|
0
|
4
|
---
|
Reservado
|
0
|
3
|
---
|
No usar
|
0
|
2
|
R/W
|
Calefactor interno
‘0’ => off
‘1’ => on
|
0
|
1
|
R/W
|
Sin Recarga de OTP
|
0
|
0
|
R/W
|
‘0’ =>
resolución 12 bit RH / 14 bit Tª
‘1’ =>
resolución 8 bit RH / 12 bit Tª
|
0
|
Si no se desea cambiar los valores por defecto
(0x00), no es necesaria la llamada a la función.
El valor actual del registro de estado se puede leer
con la función:
/** Llamada a la función lectura del
valor del Registro de Estado **/
sht_registro=SHTxx_LECTURA_REGISTRO_ESTADO
();[+/-] Ver / Ocultar programa completo en C
El ejemplo que se ha realizado para confirmar el funcionamiento consiste simplemente en la muestra en un LCD de los valores de Temperatura y Humedad leídos. También se muestra el valor de configuración del Registro de Estado, que previamente se ha cargado con el valor 0x00. Aunque, como se ha hecho referencia antes, no sería necesario puesto que reside en el Registro de Estado por defecto. Tan solo se trata de una demostración de como se cargaría el valor deseado.
En esta animación se puede ver el funcionamiento.
Descargar archivos "Sensor SHT11 con PIC + Librerías C".
Artículo relacionado>> Librería C para sensor SHT11 con PIC
El proyecto contenido en el artículo ha sido diseñado y probado utilizando estas versiones de software:
- Windows 7
- Proteus V7.7 SP2 y V8
- CCS PIC C COMPILER v4.084
- Windows 7
- Proteus V7.7 SP2 y V8
- CCS PIC C COMPILER v4.084
PINES PIC16F876A
1 comentario:
Hola amigo buen día, una pregunta, puedo emplear tu libreria con el pic16f1827 empleando los mismo pines he tratado de hacer ello y nada, de casualidad los registros que usas son solo del pic16f876 ?
Publicar un comentario