Temperatursensor 18B20 funktioniert nicht im parasitären Modus

Hallo zusammen,

mein Temperatursensor 18B20 funktioniert nicht im parasitären Modus. Hebe ich die Brücke zwischen linkem und rechtem Pin auf und gebe 5V auf den rechten Pin (normaler Modus), liefert der Sensor richtige Werte.

Warum funktioniert der parasitäre Modus nicht? Es wird immer -127,00 zurückgegeben.

Verkabelung und Code ist identisch zu: http://www.hobbytronics.co.uk/ds18b20-arduino

Einen weiteren Sensor habe ich auch schon getestet, aber identisches Verhalten. Die Genauigkeit habe ich schon auf 9bit gesetzt, um auszuschließen, dass es an der 12bit Auslesetiefe liegt.

Welche Ideen könnte man noch probieren, um dem Fehler auf die Spur zu kommen?

Vielen Dank für eure Anregungen.

Frank

Hallo, "nicht im parasitären Modus" Das muß man sich erst einmal auf der Zunge zergehen lassen- parasitären…

Ich mußte das erst einmal nachschlagen :blush: , hat wohl etwas mit Parasiten zu tun. :smiling_imp:

Wie sonst sollte man sich erklären können- warum jemand Plus und Minus verbindet. Mir ist kein elektronisches Bauteil bekannt, das man im KurzschlussModus betreiben kann. Versuche uns doch einmal zu erklären was Du vor hast- mit einfachen Worten. ;) Gruß und Dank Andreas

Linker Pin ... rechter Pin .... da der Sensor ja grundsätzlich zu funktionieren scheint schlage ich vor:

  • genaue Pinbezeichnung angeben oder vernünftiges Bild der Verschaltung auf der man was erkennen kann
  • das Timing beachten: parasitärer Modus erwartet ausreichend Wartezeit

Da es verschiedene Bauformen des Sensors gibt, muss ich meinen Vorrednern Recht geben.

Einfach mal den genauen Typ (Bauform) und Anschlussbild zeichnen.

Warum muss es unbedingt "parasitär" sein. Sind nicht genug Adern vorhanden ?

@SkobyMobil "hat wohl etwas mit Parasiten zu tun" Deine Anmerkung stimmt vollkommen und ja, hier wird am Bauteil Plus und GND zusammengeschaltet.

Hallo, vielleicht hilft es ja... ParasitenFalle Gruß und Spaß Andreas

Stechmücken stechen nicht nur, damit du dich an sie erinnerst (Datenaustausch), sondern damit sie satt werden. "Parasitär" ist schon ein edles Wort dafür ;)

Die Beschaltung ist richtig: Vdd und GND müssen verbunden sein. Ich habe mir die Software nicht angesehen. Für den Betrieb im parasitären Modus muss man zusätzlich eine Möglichkeit (in Hardware) vorsehen, den Datenpin (DQ) auf HIGH zu legen, während der Chip "arbeitet", also z. B. nach dem Kommando "CONVERT T" die Temperatur misst.

Hallo, das verstehe ich aber bei dem o.g. Sensor etwas anders…

Der muß ERST auf HIGH gesetzt werden, um den internen Kondensator aufzuladen. Dann- nach einer bestimmten Zeit, kommt der Befehlt- "liefer Wert" Das geht nicht gleichzeitig und es muß ein Timing eingehalten werden. Gruß und Spaß Andreas

@F200 Entweder deine Sensoren sind kaputt, oder du hast die Schaltung falsch aufgebaut.

Ich habe es eben nach dem von dir verlinkten Bild aufgebaut und den Sketch geflasht.

Es funktioniert sofort im "parasitären" Modus.

Also prüfe deine Schaltung oder poste ein Foto des Aufbaus.

Die OneWire Library übernimmt den Part mit der Stromversorgung offenbar schon korrekt. Aber ein Ergebnis von -127 heisst ja, dass überhaupt keine Kommunikation stattfindet. Kannst du mal eine anderes Kommando senden, z. B. READ ROM [33h]?

Hast du auch den Pullup auf dem Datenpin korrekt dran?

ElEspanol: Hast du auch den Pullup auf dem Datenpin korrekt dran?

Kann aber auch sein, der Datenpin ist nicht am richtigen Arduinoeingangspin.

Mit normaler 5 Volt Versorgung funktioniert es doch. Da gehts oftmals auch ohne Pullup. Aber parasitär ohne Pullup ist schlecht.

Das stimmt natürlich. Ich bin davon ausgegangen, der Widerstand ist dran, nur der Datenpin falsch angeschlossen.
Aber der TO hat ja geschrieben, es ist alles korrekt angeschlossen. Also müssen wir auf seine Antwort warten

Da ich das heute getestet habe, bin ich sicher, da ist ein Kontaktfehler im Steckbrett o.ä. :wink:

Hallo zusammen,

erstmal vielen Dank für die ganzen Antworten. Da komme ich ja kaum bei mit Antworten.

Hier mal gebündelt:

Hintergrund der Frage ist, dass es in einem größeren Projekt mit dem Auslesen der Sensoren nicht klappt.
Da habe ich wegen Adernmangel keine andere Möglichkeit als einige Sensoren parasitär zu betrieben. Andere kann ich mit Spannung versorgen. Erste Vermutung war, das kein Mischmodus möglich ist.

Zur Fehlersuche habe ich das Problem aber immer weiter eingrenzen können auf die hier im Eingangsposting beschriebene Situation. 3 Fotos zur Visualisierung.

1 zeigt die Übersicht
2 zeigt den normalen Modus → funktioniert
3 zeigt den parasitären Modus, der nicht funktioniert

Timing beachten: parasitärer Modus erwartet ausreichend Wartezeit

Das müsste über die Library gewährleistet sein.

genauen Typ (Bauform) und Anschlussbild zeichnen.

Dallas 18B20 Anschlussbild unter http://www.hobbytronics.co.uk/ds18b20-arduino

Entweder deine Sensoren sind kaputt, oder du hast die Schaltung falsch aufgebaut.

Dann wären mehrer Sensoren defekt, liefern aber mit normaler Stromversorgung richtige Werte. Erscheint mir eher unwahrscheinlich. Schaltungsfehler OK, aber ich sehe ihn nicht. Wenn ja, bitte melden.

Kannst du mal eine anderes Kommando senden, z. B. READ ROM [33h]?

Ja, probiere ich gerne; muss mir nur noch anshen, wie der Befehl genau lauten muss.

Hast du auch den Pullup auf dem Datenpin korrekt dran? und Kontaktfehler im Steckbrett
Habe die ganze Schaltung nochmal an anderer Stelle auf dem Bord gesteckt, aber es bleibt exakt gleich.

Datenpin ist nicht am richtigen Arduinoeingangspin

Kann ich ausschließen, da im normalen Modus die Auslesung klappt.

Stechmücken stechen nicht nur, damit du dich an sie erinnerst (Datenaustausch), sondern damit sie satt werden. "Parasitär" ist schon ein edles Wort dafür :smiley: Die Datenaustauchidee ist echt lustig.

Vielen Dank für eure Mühe und ich bin gespannt auf weiter Ideen.

Frank

2.jpg

3.jpg

Du schreibest, den Sensor hast du wie im Link angeschlossen.

In deinem geposteten Bild ist dieser aber an einem analogen Pin des Arduino angeschlossen (Glaube es ist A2) .

Mir ist nicht bekannt, dass die Library das auch verarbeiten kann. Setze den bitte auf einen digitalen Pin und es wird funktionieren.

Demnach wie lange die Anschlussleitung wird muss der Pullup ja in die Nähe vom Sensor und nicht an den Arduino, in dem Fall spart man keine Ader oder sehe ich das falsch?

Habe eben nochmal den Test mit einem analogen Pin (A0) durchgeführt. Auch das funktioniert. Fazit: du definierst vermutlich deine Pins im Sketch falsch. Diese stimmen nicht mit dem Aufbauüberein. Wenn die Sensoren grundsätzlich funktionieren, wie du schreibst, kann es nur daran liegen.

Scherheinz: Demnach wie lange die Anschlussleitung wird muss der Pullup ja in die Nähe vom Sensor und nicht an den Arduino, in dem Fall spart man keine Ader oder sehe ich das falsch?

Bei längeren Leitungen kann der Widerstand kleiner werden. Lt. Datenblatt darf die Länge im parasitären Betrieb (soweit ich erinnere) 20 Meter sein.

Ergänzung zu meiner Messung in Post #17.

Auch ein Gemischt-Modus (1 Sensor parasitär, 1 Sensor normal) funktioniert an analogem Pin (A0).