Forum: Mikrocontroller und Digitale Elektronik Dallas DS1820 Temp.-Sensor


von ProblemKind (Gast)


Lesenswert?

Hallo an alle,

ich verwende einen Dallas DS1820 OneWire Temperatursensor im 
Zusammenhang mit dem Arduino Mega und den Libraries OneWire und 
DallasTemperature um Temperaturmessungen durchzuführen. Ich habe alles 
EXAKT so nachgebaut, wie auf dieser Website zu sehen ist (Üblicher 
OneWire Parasite Aufbau):

https://sites.google.com/site/renebohne/projects/arduino-luminet/arduinomit1-wiretemperatursensords1820

Ich habe den Pull-Up Widerstand überprüft (4.7 kOhm), alle Leitungen 
sind richtig mit dem Arduino verbunden.
Jetzt habe ich mir zum Anfang wie auf der Website zu sehen, die Temp. 
über den Seriellen Monitor ausgeben lassen.(Der Sketch "Simple") Doch 
der Sensor zeigt beharrlich 85 Grad Celsius an, egal ob ich nun die 
Umgebungstemperatur ändere oder nicht. Hängt das Teilm irgendwie noch im 
Auslieferungszustand? Wurde aber initialisiert!
(Ich habe in der Library nachgesehen, es sollen wirklich Grad Celsius 
zurückgegeben werden)

Ich finde meinen Fehler einfach nicht, kann mir jemand weiterhelfen?

von MaWin (Gast)


Lesenswert?

DS1820, DS18B20 oder DS18S20 ?

von Lutz (Gast)


Lesenswert?

85 Grad sind der Resetwert des Sensors. Das ist dann wahrscheinlich 
schon mal die halbe Miete; das Auslesen funktioniert also. Schickst du 
vorher auch ein CONVERT_T vorweg?

von ProblemKind (Gast)


Lesenswert?

Danke Lutz,

ich werde das in der Library unter (*.begin() ) schnell checken...
Moment

von ProblemKind (Gast)


Lesenswert?

Ja, der Code rechnet die Temperatur in Gard Celsius richtig um...

von ProblemKind (Gast)


Lesenswert?

Und den Command sollte er auch losschicken...

von Lutz (Gast)


Lesenswert?

Dann wird es Zeit für den Code ...

von ProblemKind (Gast)


Lesenswert?

Ich schick einfach 44h nochmal manuell rüber, mal schauen.

von Lutz (Gast)


Lesenswert?

Nur der Vollständigkeit halber die volle Befehlskette:
Reset-Pulse, Skip Rom, Convert T, Reset-Pulse, Skip Rom, Read Scratchpad

von Jürgen (Gast)


Lesenswert?

Lutz schrieb:
> Reset-Pulse, Skip Rom, Convert T, Reset-Pulse, Skip Rom, Read Scratchpad

Wird nach Convert_T mindestens 750 mS gawartet ?

von ProblemKind (Gast)


Lesenswert?

Jeesss, es Funktioniert ;)

In der OneWire Library, ich hab grad nachgesehen, werden die Befehle, 
welche Lutz genannt hat, sauber der Reihe nach ausgeführt- jetz geht es 
:)

Danke an alle!

von ProblemKind (Gast)


Lesenswert?

Übrigens empfehlen die Coder der Library, sogar 1000ms zu warten, da es 
anscheinend mit 750ms Probleme gab.

von ProblemKind (Gast)


Lesenswert?

Hallo nachmal,

es ist wieder ein Problem aufgetreten:
Jetzt lässt sich der Sensor zwar auslesen, aber nur wenn er per USB 
Versorgung am Computer hängt. Die IDE braucht nicht offen zu sein. Wenn 
ich jetzt das ganze Teil an eine GEREGELTE, SAUBERE USB 
Spannungsversorgung anschliesse, zeigt der Arduino in kurzen Abständen 
(immer so alle 5 sec.) den Reset-Wert (85.00 Grad) an, dann aber wieder 
eine Zeit lang die normalen Werte.
 Woran kann das liegen? Ich hab jetzt softwareseitig einfach die 85.00 
Werte ausblenden lassen, aber das kann ja keine Lösung sein.

Danke im Voraus

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Die "Schaltung" ist aber nicht parasitär. Dort bekommt der Sensor sein 
+5V auf dem dafür vorgesehen Anschluss (oder ist der VCC-Anschluss des 
Sensors doch nicht angeschlossen?)

Im parasitäten Modus wird der VCC-Anschluss des Sensors auf GND gelegt. 
Den benötigten Strom bekommt der Sensor dann über die Datenleitung. Für 
die Zeit der Messung muss der Vorwiderstand überbrückt werden. Nennt 
sich "Strom-Pullup" und wird oft mit einem FET gemacht.

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.