Forum: Mikrocontroller und Digitale Elektronik Pull Up Widerstand


von Matthias (Gast)


Lesenswert?

Hallo.

Es geht um eine eigentlich triviale Sache aber ich steh gerade aufm 
Schlauch.
Mein Problem ist dass mein DHT22 Sensor falsche Werte liefert aufgrund 
sehr langer Leitungen. (ca.10m). Jetzt habe ich im Netz die Info 
gefunden dass es in so einem Fall hilft den Sensor mit 5V zu versorgen 
aber trotzdem einen PullUp Widerstand auf 3,3V verwenden soll...und 
genau das kapier ich grade nicht. Hab am Sensor zwischen VCC und 
Datenleitung einen 10k pullup hängen, aber wie soll ich dann einen auf 
3,3V ziehen wenn ich doch die 5V benutze????

von Wolfgang (Gast)


Lesenswert?

Matthias schrieb:
> Jetzt habe ich im Netz die Info gefunden dass es in so einem Fall hilft
> den Sensor mit 5V zu versorgen aber trotzdem einen PullUp Widerstand auf
> 3,3V verwenden soll...und genau das kapier ich grade nicht.

Wenn du sie nicht kapierst, wäre es ganz praktisch, wenn du die Info 
hier verlinken würdest. Vielleicht hast du irgendetwas daran nicht 
verstanden'

Funktioniert dein Sensor, wenn du ihn an einer kurzen Leitung betreibst?
Besitzt du ein Oszi, um die Signale anzusehen?
Was für eine Art von Leitung verwendest du?
Wie oft misst du?

von Matthias (Gast)


Lesenswert?

Die Quelle der Information war nur eine sehr ausführliche Rezession auf 
Amazon aber ich hab jetzt verstanden wie es gemeint ist. Den Widerstand 
am Sensor zwischen VCC Datenleitung rausnehmen und stattdessen einen 
Widerstand zwischen Datenleitung und 3,3V am Raspberry.

Da raten zwar auch viele davon ab aber ich bin schon so verzweifelt dass 
ich alles ausprobieren würde.

Mit kurzer Leitung beim Testen funktionierten meine Sensoren 
einwandfrei. Jetzt hab ich sie an die Wände im Haus montiert und 
verkabelt (2x2x0,6 / shielded, not twisted) und er zeigt mir eine 
Luftfeuchte von 3000 :-(

Auch ein Test mit einem CAT 7 Kabel bringt das gleiche ergebnis.

von Matthias (Gast)


Lesenswert?

Ich messe alle 3 Sekunden, und Oszi hab ich leider keins

von Stefan F. (Gast)


Lesenswert?

Matthias schrieb:
> Ich messe alle 3 Sekunden, und Oszi hab ich leider keins

Besorge dir eins. Mit Raten kommst du nicht weiter.

von Hannes (Gast)


Lesenswert?

Matthias schrieb:
> Mit kurzer Leitung beim Testen funktionierten meine Sensoren
> einwandfrei. Jetzt hab ich sie an die Wände im Haus montiert und
> verkabelt (2x2x0,6 / shielded, not twisted) und er zeigt mir eine
> Luftfeuchte von 3000 :-(
>
> Auch ein Test mit einem CAT 7 Kabel bringt das gleiche ergebnis.

Wie lang sind deine Leitungen?

Das Datenblatt ist ein echter Witz, daher kann ich nur raten:
Hilft vielleicht ein 100nF direkt am DHT?

von Christian S. (roehrenvorheizer)


Lesenswert?

Matthias schrieb:
> verkabelt (2x2x0,6 / shielded, not twisted)

Anscheinend soll das ein Koaxialkabel sein. Bei solchen Längen können 
Reflexionen an den Leitungsenden die Signale verfälschen. 
Leitungsabschluß mit korrekter Impedanz oder Dioden in Sperrichtung 
gegen die Betriebsspannung sind übliche Methode, diesem Problem zu 
begegnen. Ob das bei Deinem Sensor nützt, ist wieder eine andere Frage.


>(ca.10m).
wurde ganz oben der Vollständigkeit halber genannt.

mfG

: Bearbeitet durch User
von Hannes (Gast)


Lesenswert?

Hab's eben gesehen: Kabel mit 10m, ca. 140pF/m kommen 1.4nF zusammen.

Mit 10k pullup also ein tau von 14 usec.

Puls mit 26..28 usec gibt eine "0", Puls mit 70 usec eine "1" - vermute 
ich mal. Ssorry, mein Madarin ist etwas eingerostet ...

Könnte (!) gerade noch hinhauen, wobei ein kleinerer pullup (4k7) helfen 
könnte.

von A. S. (Gast)


Lesenswert?

Welche Geschwindigkeit?

Einfach 1/10 probieren. Notfalls bitbanging im timer-interrupt.

Hilft aber nicht gegen Übersprechen oder Spikes

von Wolfgang (Gast)


Lesenswert?

Christian S. schrieb:
> Anscheinend soll das ein Koaxialkabel sein.

"shielding-wire" würde ich mal mit "shielded wire" (≠ Koaxialkabel) 
übersetzen.

von F. F. (foldi)


Lesenswert?

Matthias schrieb:
> Mit kurzer Leitung beim Testen funktionierten meine Sensoren
> einwandfrei.

Der ist digital. Der kann keine falschen Werte, aufgrund zu langer 
Kabel, liefern.

https://www.digikey.de/htmldatasheets/production/1801447/0/0/2/386.html
Da kannst du dir auch die Beispiele ansehen.

DS18B20 Datenblatt kannst du auch eine Menge drüber lesen, weil das one 
wire ist.

: Bearbeitet durch User
von 2aggressive (Gast)


Lesenswert?

Hannes schrieb:
> Das Datenblatt ist ein echter Witz, daher kann ich nur raten:
> Hilft vielleicht ein 100nF direkt am DHT?
Die Versorgungsspannung an dem Teil abzublocken kann nicht schaden, 
würde ich bei einer solch langen Kabellage auf jeden Fall empfehlen


Hannes schrieb:
> Könnte (!) gerade noch hinhauen, wobei ein kleinerer pullup (4k7) helfen
> könnte.
Leider finde ich keinen Hinweis darauf wieviel Strom "der Gerät" 
überhaupt treiben kann. Bauchgefühl: 10mA sollten bestimmt drin sein.


Also testen (mit kurzen Kabeln) eines Pullups mit 470 Ohm; wenns dann 
geht ist alles gut, dann weiter mit dem langen Kabel, damit sollte es 
dann auch gehen. Danach (Produktivbetrieb auf dauer) rantasten; 4k7, 
3k3, 2k2, 1k...sobald es rennt nehme man den nächstkleineren R.

Beispiel: Es funzt mit 3k3, dann nehme man 2k2 in die zu betreibende 
Installation. Immer vorausgesetzt das der Treiber auch in der Lage ist 
grössere Ströme zu treiben (hier im Beispiel 2k2 > 470)



Stefan ⛄ F. schrieb:
> Matthias schrieb:
>> Ich messe alle 3 Sekunden, und Oszi hab ich leider keins
>
> Besorge dir eins. Mit Raten kommst du nicht weiter.
Ein Scope macht das debuggen leichter, aber hier wird es auch mal ohne 
gehen, denke ich.

von Sebastian (Gast)


Lesenswert?

3.3V ist die Untergrenze des DHT22. Bei 5V sendet er auch mit 5V, das 
mag dann der RasPi nicht.

LG, Sebastian

von Christian S. (roehrenvorheizer)


Lesenswert?

Wolfgang schrieb:
> Christian S. schrieb:
>> Anscheinend soll das ein Koaxialkabel sein.
>
> "shielding-wire" würde ich mal mit "shielded wire" (≠ Koaxialkabel)
> übersetzen.

Ok, es ist nur ein abgeschirmtes Kabel.

mfG

von Mario M. (thelonging)


Lesenswert?

Auch als Telefonleitung J-Y(St)Y bekannt.

von Peter D. (peda)


Lesenswert?

F. F. schrieb:
> DS18B20 Datenblatt kannst du auch eine Menge drüber lesen, weil das one
> wire ist.

Nö.
So wie ich das sehe, wird nur beim Start ein Pullup benötigt (runde high 
Flanke), die Datenbits werden aber selbstständig als push/pull 
rausgetaktet.
Wie klein der Pullup sein darf, habe ich nicht gefunden.

Hannes schrieb:
> Das Datenblatt ist ein echter Witz

So isses.

von Hannes (Gast)


Lesenswert?

Peter D. schrieb:
> So wie ich das sehe, wird nur beim Start ein Pullup benötigt (runde high
> Flanke), die Datenbits werden aber selbstständig als push/pull
> rausgetaktet.

Push/Pull - da bin ich mir nicht so sicher. Wäre dies der Fall, dürfte 
man die Spannung am DHT nicht auf 5V erhöhen, ohne den auf 3.3V 
laufenden uC zu gefährden.

> Wie klein der Pullup sein darf, habe ich nicht gefunden.

Was ich in Applikationen gefunden habe sind die Werte 10k und 4k7. Ich 
habe aber auch nicht lange gesucht.

Dieser Witz von Datenblatt gibt das alles, so man kein Mandarin lesen 
kann, aber nicht her.

von Peter D. (peda)


Lesenswert?

Hannes schrieb:
> Push/Pull - da bin ich mir nicht so sicher. Wäre dies der Fall, dürfte
> man die Spannung am DHT nicht auf 5V erhöhen, ohne den auf 3.3V
> laufenden uC zu gefährden.

Die Signale vom Slave sind aber nicht abgerundet.
Viele ARM-Cortex haben zumindest einige IO-Pins, die 5V tolerant sind.

von Hannes (Gast)


Lesenswert?

Datenblätter auf:
https://www.makerguides.com/wp-content/uploads/2019/02/DHT22-AM2302-Datasheet.pdf
und
https://cdn-shop.adafruit.com/datasheets/Digital+humidity+and+temperature+sensor+AM2302.pdf
scheinen etwas besser.

Mit 1k pullup sollte es gehen (Ausgang kann scheints bis 8mA), dann aber 
ordentliches Puffer-C für Vcc, parallel zum 100n ev. noch einen Elko 
packen.

von Hannes (Gast)


Lesenswert?

Christian S. schrieb:
> Anscheinend soll das ein Koaxialkabel sein. Bei solchen Längen können
> Reflexionen an den Leitungsenden die Signale verfälschen.
> Leitungsabschluß mit korrekter Impedanz oder Dioden in Sperrichtung
> gegen die Betriebsspannung sind übliche Methode, diesem Problem zu
> begegnen.

Eine Laufzeit von 50ns (10m, 200.000 km/s) wirkt sich bei Signalen im 
30us-Bereich (1-wire-bus) nicht aus. Da sind wir noch fast 3 
Größenordnungen von weg.

Eine Lastkapazität von 1.4nF (Kapazitätsbelag 140 pF/m) hat dagegen 
schon Auswirkungen - vor allem, wenn diese nur mit 10 kOhm umgeladen 
werden. Immerhin sprechen wir dann von Zeitkonstanten um die 14us. Und 
das ist gerade mal Faktor 2.

Mir kommt eben noch ein Verdacht:
Matthias schrieb:
> ... aufgrund sehr langer Leitungen. (ca.10m).

Er schreibt von "Leitungen", also im Plural. Wenn er diese alle parallel 
getüddelt hat - na dann Prost Malzeit. Bei 4 Zimmerwohnung, Küche und 
Bad sind wir dann u.U. bei 6x 10m, ergo 8.4nF und folglich einer 
Zeitkonstante von 84us. Da ist mit 30us-Pulsen dann aber sowas von Ebbe.

von Wolfgang (Gast)


Lesenswert?

Peter D. schrieb:
> So wie ich das sehe, wird nur beim Start ein Pullup benötigt (runde high
> Flanke), die Datenbits werden aber selbstständig als push/pull
> rausgetaktet.

Push/Pull kann eher nicht sein, sonst gäbe es auf der Leitung Hauen und 
Stechen zwischen Master uns Slave.

von F. F. (foldi)


Lesenswert?

Peter D. schrieb:
> Nö.

Ist zwar schon eine Weile und nicht so schöne Umstände her, dass ich 
damit was gemacht habe, aber von der Funktion, bis auf das der DS18B20 
nur Temperatur misst, funktionieren die gleich.
Im Datenblatt vom DS18B20 steht dann auch ein 4,7k als Pullup.
Der Parasit-Mode ist möglich, aber (das weiß ich jetzt nicht aus dem 
Kopf) sind nicht alle Möglichkeiten im Parasit-Mode gegeben. Ich habe 
die immer komplett verdrahtet.
Damit habe ich dann keinerlei Probleme mehr gehabt.
Wenn man das im Griff hat, kann man ja immer noch mit Parasit-Mode 
testen.
Ich habe die allerdings immer nur mit 5V betrieben.

Einfach das Datenblatt vom DS18B20 lesen.

Noch eine Seite:
https://unsinnsbasis.de/ds18b20-dht22-dht11-temperatursensoren/#DHT11_und_DHT22

Adafruit hat das auch gut beschrieben:
https://cdn-learn.adafruit.com/downloads/pdf/dht.pdf

: Bearbeitet durch User
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.