Schema: Arduino DHT11 lowcost Temperature & Humidity sensor

[url=https://www.schematheek.net/index.php?p=upload/weergeven&id=2834][img]http://upload.schematheek.net/thumbs/2834.jpg[/img][/url]

De DHT11 Lowcost Temperature & Humidity sensor van Arduino is een veel gebruikte temperatuur en vochtigheids sensor die niet prijzig is.
Om deze aan de praat te krijgen kun je het beste een analoge poort gebruiken.
Onderstaande code werkt perfect op een 18F4620.
Wil je de code op een andere IC gebruiken pas dan even de poort aan in de [b]Symbol DHT11poort = LATA.5[/b].

Dim DataIn As Byte 'hi pulse from sensor
Dim Temp As Word
Dim Hum As Word
Dim ChkSum As Byte
Dim Index As Byte

Symbol DHT11poort = LATA.5

DelayMS 500
Clear
Cls

Print At 1,2,"DHT11 Sensor"
DelayMS 3000
Cls

While 1 = 1

Temp=0:Hum = 0:ChkSum=0

TRISA.5 = 0 'portb o/p
DHT11poort=1 'make high
DelayMS 50 'wait for a while
DHT11poort=0:DelayMS 180 'send 18ms low
DHT11poort=1:DelayUS 30 'send 30us hi
DataIn = PulsIn DHT11poort,1 'wait for hi

If DataIn < 33 Then
Cls
Print At 1,1, "DataIn = ",Dec DataIn ' if < 80us loop
Print At 2,1, "Sensor not ready" ' if < 80us loop
GoTo SNR
EndIf

For Index = 15 To 0 Step -1
DataIn = PulsIn DHT11poort,High 'recieve pulses from sensor
If DataIn > 18 Then SetBit Hum,Index
Next Index

For Index = 15 To 0 Step -1
DataIn = PulsIn DHT11poort,High 'recieve pulses from sensor
If DataIn > 18 Then SetBit Temp,Index
Next Index

For Index = 7 To 0 Step -1
DataIn = PulsIn DHT11poort,High
If DataIn > 18 Then SetBit ChkSum,Index
Next Index

Cls
Print At 3,1,"Check Sum = ",Dec ChkSum
Print At 4,1,"H:",Dec Hum.HighByte," %"
Print At 4,10,"T:",Dec Temp.HighByte,0,"C"

If ChkSum <> (Temp.HighByte + Hum.HighByte) Then
Cls
Print At 3,1,"Check Sum Error!"
EndIf

SNR:

DelayMS 1000

Wend

Ingestuurd door: pascalbianca

Een reactie achterlaten

Your email address will not be published.