Controle Paneel |
|
|
Site info |
»
»
»
»
» Upload Archief
|
|
Stats |
Totaal online: 8 8 gasten 0 leden: |
|
|
Schema's > Computer & Microcontroller > Arduino DHT11 lowcost Temperature & Humidity sensor |
Schema informatie |
|
Moeilijkheidsgraad: |
|
Aantal punten: |
|
Hits: |
6620 |
Aantal stemmen: |
81 |
Gepost op: |
07-03-2014 |
Stem: |
|
» 0 reacties |
|
|
|
Schema |
|
Onderdelenlijst & Commentaar |

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 Symbol DHT11poort = LATA.5.
Code |
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=0elayMS 180 'send 18ms low
DHT11poort=1elayUS 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
|
|
|
|
|