[elektro] DHT22

Nemeth Tibor nemeth.tibor798 at t-online.hu
Sun Mar 2 19:47:41 CET 2014


Hali!

2014.03.02. 3:10 keltezéssel, charles hoss írta:
> Csak most ebredtem, igy nem biztos hogy jo, de amit leirtal, az alapjan
> azonos a para es a hofok kodolasa.
> Mindegy hogy mikent forditom, ha olvasom az adatot es a szenzor ala teszem
>
> a kezem, akkor elkezd majd emelkedni es elobb utobb egy egesz fokot no.
> Ezalatt latom a beosztast es a lepteket is. Latni fogom hogy ugrik-e tized
>
> vagy harmincketted utan.

Az ötlet jó, bár előbb kommunikálni kellett, de már megy.
A megfejtés amúgy az lett, hogy 16 biten jön egy szó, ami binárisan a 
páratartalom 0.1% egységben majd újabb 16 biten a hőmérséklet 0.1°C 
egységekben. Semmi egész vagy törtrész.
mindez a doksiban így volt:
"DATA=8 bit integral RH data+8 bit decimal RH data+8 bit integral T
data+8 bit decimal T data+8 bit check-sum"
, nyilván nem olvasni elég jól angol.

Ha már billentyűt ragadtam, az egyéb kérdéseimre is leírom a 
tapasztalatokat.
Felhúzó ellenállás nem kell, esetleg hosszú, nagy kapacitású kábel 
esetére. Szkópon látszik, hogy felfutó élek kicsit lassabbak.

Az indító impulzus (min 500us low) után tartósan felhúzni nem szabad, 
mert összecsapnak a kimenetek. Szkópon hibás logikai szint jelent meg.
Ez a programrész így alakult Pic16F690-en,4M9152Hz-en .

#DEFINE DHTPIN	PORTB,4
	.
	.
	;indító low impulzus ideje lejárt, Bank0
	BSF	DHTPIN
;	GOTO	$+1
;	GOTO	$+1
	BSF	STATUS,RP0
	BSF	DHTPIN	;TRISB, Input
	BCF	STATUS,RP0

Mint látszik, az időhúzó lépések végük kikommenteződtek, már eggyel is 
látszott a szkópon az összecsapás. Nullával nem, ezért a felhúzást benne 
hagytam, bár működik úgy is, hogy egyszerűen csak bemeneti módba 
állítom. Mindebből úgy tűnik, a szenzor gyorsan válaszol, kb. 3us alatt.
Ez az adatlap szerint 20..40us lenne.
Leginkább ezzel vesződtem, elsőre tisztán iterruptosra próbáltam 
megírni, TMR0 és IOCH mexakításokra, de ez utóbbi nem mindig működött 
korrektül.
Most az van, hogy főprogramban pollozok és TMR0 csak időt mér, ha 
megszakít az már timeout, sőt ha bármilyen mexakítás közbejön, akkor meg 
eldobom, majd a következő jó lesz.

Üdv.
            Németh Tibor










More information about the Elektro mailing list