PDA

View Full Version : DHT 11 Humidity & Temperature Sensor



jefrem
- 25th July 2013, 20:33
I compiled this code into 18F2550 but not worked, someone know change this code for 18F2550 ?

This code is to PIC16F84, I changed the pins configuration to 18F2550 but worked.


'================================================= ===================================
INCLUDE "modedefs.bas"
'Configura los registros necesarios para controlar los timers etc.
OPTION_REG = %00000000

'Configura todos los puertos como salidas y nadamas el puerto A.1 sera bidireccional.
TRISA = %00000
TRISB = %00000000

'Declara las variables que se van a nececitar para capturar los valores de temperatura y humedad.
'DATOS var byte[5] 'Almacena los 40 bits de datos provenientes del sensor
'DATOS1 var byte[5]
'CHKSM var byte 'Almacena la suma de los valores anteriores para comprobar si los datos enviados fueron correctos.
SENS var PORTA.0
LED_ERR var PORTA.1
DATOS_TX_1 VAR PORTA.2
INC var byte
'INC1 var byte
'DAT_DEC var bit
COLECTOR VAR BYTE[32]
HUMEDAD VAR BYTE
HUMEDAD1 VAR BYTE
TEMPERATURA VAR byte
TEMPERATURA1 VAR BYTE


'Fijar las configuraciones iniciales a las variables.
PORTB = 0
LED_ERR = 0

BACK:

TMR0 = 0
'Enviar la peticion de envio de datos al sensor.
output sens 'Configurar el puerto de datos como salida.
sens = 1
pause 500 'Esperar medio segundo antes de iniciar la comunicacion con el sensor.
sens = 0 'Mandar el puerto sens a 0.
pause 15 'Esperar algunos milisegundos (puede que tenga que ajustarse este tiempo)
sens = 1 'Mandar el puerto de dato a VCC para completar la peticion de comunicacion.
input sens 'Configurar el puerto de datos como entrada.
pauseus 184



PULSIN SENS,1,COLECTOR[31]
PULSIN SENS,1,COLECTOR[30]
PULSIN SENS,1,COLECTOR[29]
PULSIN SENS,1,COLECTOR[28]
PULSIN SENS,1,COLECTOR[27]
PULSIN SENS,1,COLECTOR[26]
PULSIN SENS,1,COLECTOR[25]
PULSIN SENS,1,COLECTOR[24]

PULSIN SENS,1,COLECTOR[23]
PULSIN SENS,1,COLECTOR[22]
PULSIN SENS,1,COLECTOR[21]
PULSIN SENS,1,COLECTOR[20]
PULSIN SENS,1,COLECTOR[19]
PULSIN SENS,1,COLECTOR[18]
PULSIN SENS,1,COLECTOR[17]
PULSIN SENS,1,COLECTOR[16]

PULSIN SENS,1,COLECTOR[15]
PULSIN SENS,1,COLECTOR[14]
PULSIN SENS,1,COLECTOR[13]
PULSIN SENS,1,COLECTOR[12]
PULSIN SENS,1,COLECTOR[11]
PULSIN SENS,1,COLECTOR[10]
PULSIN SENS,1,COLECTOR[9]
PULSIN SENS,1,COLECTOR[8]

PULSIN SENS,1,COLECTOR[7]
PULSIN SENS,1,COLECTOR[6]
PULSIN SENS,1,COLECTOR[5]
PULSIN SENS,1,COLECTOR[4]
PULSIN SENS,1,COLECTOR[3]
PULSIN SENS,1,COLECTOR[2]
PULSIN SENS,1,COLECTOR[1]
PULSIN SENS,1,COLECTOR[0]


inc = 0
for inc = 31 to 0 step -1
SEROUT DATOS_TX_1,N2400,[#colector[inc]]
next
SEROUT DATOS_TX_1,N2400,[13]



if colector[31] > 3 then
humedad.7=1
else
humedad.7=0
endif
if colector[30] > 3 then
humedad.6=1
else
humedad.6=0
endif
if colector[29] > 3 then
humedad.5=1
else
humedad.5=0
endif
if colector[28] > 3 then
humedad.4=1
else
humedad.4=0
endif
if colector[27] > 3 then
humedad.3=1
else
humedad.3=0
endif
if colector[26] > 3 then
humedad.2=1
else
humedad.2=0
endif
if colector[25] > 3 then
humedad.1=1
else
humedad.1=0
endif
if colector[24] > 3 then
humedad.0=1
else
humedad.0=0
endif
'-----------------------------------------------------------------
if colector[23] > 3 then
humedad1.7=1
else
humedad1.7=0
endif
if colector[22] > 3 then
humedad1.6=1
else
humedad1.6=0
endif
if colector[21] > 3 then
humedad1.5=1
else
humedad1.5=0
endif
if colector[20] > 3 then
humedad1.4=1
else
humedad1.4=0
endif
if colector[19] > 3 then
humedad1.3=1
else
humedad1.3=0
endif
if colector[18] > 3 then
humedad1.2=1
else
humedad1.2=0
endif
if colector[17] > 3 then
humedad1.1=1
else
humedad1.1=0
endif
if colector[16] > 3 then
humedad1.0=1
else
humedad1.0=0
endif
'-------------------------------------------------------------------------------


if colector[15] > 3 then
temperatura.7=1
else
temperatura.7=0
endif
if colector[14] > 3 then
temperatura.6=1
else
temperatura.6=0
endif
if colector[13] > 3 then
temperatura.5=1
else
temperatura.5=0
endif
if colector[12] > 3 then
temperatura.4=1
else
temperatura.4=0
endif
if colector[11] > 3 then
temperatura.3=1
else
temperatura.3=0
endif
if colector[10] > 3 then
temperatura.2=1
else
temperatura.2=0
endif
if colector[9] > 3 then
temperatura.1=1
else
temperatura.1=0
endif
if colector[8] > 3 then
temperatura.0=1
else
temperatura.0=0
endif
'-----------------------------------------------------------------
if colector[7] > 3 then
temperatura1.7=1
else
temperatura1.7=0
endif
if colector[6] > 3 then
temperatura1.6=1
else
temperatura1.6=0
endif
if colector[5] > 3 then
temperatura1.5=1
else
temperatura1.5=0
endif
if colector[4] > 3 then
temperatura1.4=1
else
temperatura1.4=0
endif
if colector[3] > 3 then
temperatura1.3=1
else
temperatura1.3=0
endif
if colector[2] > 3 then
temperatura1.2=1
else
temperatura1.2=0
endif
if colector[1] > 3 then
temperatura1.1=1
else
temperatura1.1=0
endif
if colector[0] > 3 then
temperatura1.0=1
else
temperatura1.0=0
endif
'-------------------------------------------------------------------------------
SEROUT DATOS_TX_1,N2400,["Temperatura: ",#temperatura,".",#temperatura1," ","Humedad: ",#Humedad,".",#humedad1,13]
pause 1000
clearwdt
goto BACK
end

'================================================= ==========================

Thank you in advance.

jefrem
- 25th July 2013, 20:35
The datasheet file:

http://www.micro4you.com/files/sensor/DHT11.pdf

jefrem
- 30th July 2013, 19:15
7053

7055

7054