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: > Ich messe alle 3 Sekunden, und Oszi hab ich leider keins Besorge dir eins. Mit Raten kommst du nicht weiter.
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
:
Bearbeitet durch User
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.
Welche Geschwindigkeit? Einfach 1/10 probieren. Notfalls bitbanging im timer-interrupt. Hilft aber nicht gegen Übersprechen oder Spikes
Christian S. schrieb: > Anscheinend soll das ein Koaxialkabel sein. "shielding-wire" würde ich mal mit "shielded wire" (≠ Koaxialkabel) übersetzen.
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
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.
3.3V ist die Untergrenze des DHT22. Bei 5V sendet er auch mit 5V, das mag dann der RasPi nicht. LG, Sebastian
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.
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.
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
:
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.