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????
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?
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.
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?
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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