Forum: Mikrocontroller und Digitale Elektronik DHT22 10k Widerstand Einfluss auf Messgenauigkeit?


von Filth _. (filth)


Lesenswert?

Hi,

beim DHT22 wird ein 10k Widerstand zwischen VCC und Datenleitung 
empfohlen. Ich habe hier 3 Stück, die ich an 3.3v ohne den Widerstand 
betreibe.

Frage: Kann der fehlende Pullup die Qualität der Messung beeinflussen? 
Nach meinem Verständnis sollte nur die Kommunikation mit dem iC 
betroffen sein, oder?

Danke

von Mike A. (Gast)


Lesenswert?

Filth __ schrieb:
> Kann der fehlende Pullup die Qualität der Messung beeinflussen?

Wie sollte er?

Filth __ schrieb:
> Ich habe hier 3 Stück, die ich an 3.3v ohne den Widerstand betreibe.

Hast du am µC den Pull-Up aktiviert oder sieht der Pegel von deinem 
Datensignal trotzdem sauber aus?

von Filth _. (filth)


Lesenswert?

Ich kann mir mangels Oszi das Signal nicht angucken. Aber ich bekomme 
Werte, also scheint es zu funktionieren.

von ??? (Gast)


Lesenswert?

Wieso muss eigentlich immer irgendjemand die Vorgaben des Datenblatts 
missachten und will dann wissen ob es nicht trotzdem funktioniert?

BTW: So ein 10k Widerstand kostet <1ct

von Filth _. (filth)


Lesenswert?

Es geht nicht um die Kosten sondern um die Frage, warum der empfohlen 
wird. Übrigens erwähnen die im Datenblatt nur einen 100nF zwischen VCC 
und GND aber keinen Widerstand.

Ich will auch nicht wissen, ob es dann noch funktioniert - ich weiß, 
dass es der Fall ist...

https://www.adafruit.com/datasheets/DHT22.pdf

: Bearbeitet durch User
von ??? (Gast)


Lesenswert?


von Jürgen S. (jurs)


Lesenswert?

Filth __ schrieb:
> Frage: Kann der fehlende Pullup die Qualität der Messung beeinflussen?

Du trollst, weil Du vermutlich doch einen PullUp-Widerstand verwendest.

Möglicherweise sogar, ohne es bisher selbst gemerkt zu haben.

Ich rate mal: Als Arduino-User verwendest Du eine Library zum Auslesen 
des Sensors? Mal angenommen, das wäre die Adafruit-Library. Dann wird 
dieser Code zum Initialisieren des Sensors verwendet:
1
void DHT::begin(void) {
2
  // set up the pins!
3
  pinMode(_pin, INPUT);
4
  digitalWrite(_pin, HIGH);
5
  _lastreadtime = 0;
6
}

Mit diesem Code wird der INTERNE PULLUP Widerstand des 
Atmega-Controllers aktiviert, also ein PullUp mit R= 20...50K

So what?

Das einzige was Dir fehlt, ist ein "externer PullUp" Widerstand. Aber 
ein PullUp ist vorhanden in Form des aktivierten "internen PullUp" am 
Pin des Controllers.

Zumindest bei Leitungslängen bis 50 cm sollte das völlig problemlos 
sein.

Wenn der Sensor allerdings mehrere Meter entfernt vom Controller 
angeschlossen ist, bietet sich ein kleinerer Widerstand als externer 
PullUp an.

von Dirk K. (dekoepi)


Lesenswert?

Viel verwirrender für mich war, dass laut Datenblatt ein 
4,7kOhm-Widerstand da hin soll. Messe ich nun den Widerstand, nachdem 
ich einen 4,7kOhm-Pullup verbaut habe, komme ich auf 2348Ohm.
In den DHT22-Modulen sitzt also schon der 4,7kOhm-Pullup drin ...

: Bearbeitet durch User
von Mike A. (Gast)


Lesenswert?

Dirk K. schrieb:
> In den DHT22-Modulen sitzt also schon der 4,7kOhm-Pullup drin ...

Habe gerade auch mal nachgemessen (AM2302 alias DHT22, ca. 1 1/2 Jahre 
alt) und kann die 4,7kΩ zwischen SDA und VDD bestätigen.

Da muss man dann wohl aufpassen, wenn man mehrere auf den Bus packen 
möchte und kann sich einen zusätzliche Pull-Up sparen.

von Seppi (Gast)


Lesenswert?

Mehrere gehen nicht, da sie keine eindeutige Adresse haben.

von Mike A. (Gast)


Lesenswert?

Seppi schrieb:
> Mehrere gehen nicht, da sie keine eindeutige Adresse haben.

Da hast du wohl wahr und das passt mit dem Pull-up im Sensor.

Ich hatte mich durch die Bezeichnung "Bus" irritieren lassen und gar 
nicht weiter aufs Protokoll geguckt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.