Was brauche ich von der Seriennummer DS18B20?

OP #1921093
Lesenswert?

Hallo Leute!

Ich brauche nochmal eure Hilfe!
Ich möchte für eine Heizungssteuerung eine Schaltung mit mehreren 
DS18B20 aufbauen, die über einen Atmega8 ausgewertet werden.

Jetzt zu meinem Problem:

Wenn ich nur einen Sensor anschließe funktioniert alles. 
Beispielprogramm unter Bascom:

---
Do
 1wreset
 1wwrite &HCC
 1wwrite &H44
 1wreset
 1wwrite &HCC
 1wwrite &HBE
 Ar(1) = 1wread(2)

 Waitms 500
 Locate 1 , 1
 Lcd Hex(ar(2)) ; Hex(ar(1))
 Locate 2 , 1
 Shift Ar(1) , Right , 1
 Lcd Ar(1)
Loop
End
---

Um jetzt mehrere Sensoren auszulesen brauche ich ja die Seriennummer. 
Hab ich auch ausgelesen. Was brauche ich denn von der Nummer alles?
Reicht das die letzten zwei Stellen? Oder brauche ich alles was da 
ausgelesen wird. z.B 10E7A9710108006D?

Wie binde ich das in das oben stehende Programm ein?

1wreset
 1wwrite &H6D <------????
 1wwrite &H44
 1wreset
 1wwrite &H6D <-----????
 1wwrite &HBE
 Ar(1) = 1wread(2)

 Waitms 500
 Locate 1 , 1
 Lcd Hex(ar(2)) ; Hex(ar(1))
 Locate 2 , 1
 Shift Ar(1) , Right , 1
 Lcd Ar(1)
Loop
End

Ich dachte event. so. Aber es funktioniert nicht.

Kann mir jemand helfen?

Schö mit Ö...

Chris...
Persönliche Seite #1921261
Lesenswert?

Christian Betzen schrieb:
> 1wwrite &H0108006D <------????

Äh, nööö.
Ich habe zwar keine Ahnung von Bascom, aber 1wwrite schreibt sicherlich 
nur ein Byte und nicht mehr.

Du musst also schon die komplette Seriennummer als Einzelbytes senden.
Im DS18S20-Datenblatt steht auch drin, was Du da senden musst.

1. Reset-Pulse
2. Skip-ROM
3. Messung durchführen
4. Reset-Pulse
5. Match-ROM
6. ROM-ID
7. READ-SCRATCHPAD
8. Daten lesen
9. weiter mit 4 bis alle Sensoren eingelesen wurden


Das ganze ab 4. kannst Du auch mittels SEARCH-ROM machen. Nach jedem 
Schritt ist genau ein Sensor aktiv und kann nach dem Scratchpad befragt 
werden.
#1921339
Lesenswert?

Hallo,

ich habe vor einiger Zeit mal ein Multi-DS18... Progamm mit Bascom 
geschrieben. Genau das was du suchst.

Das Grundprogramm wurde dazu von mir modifiziert.

Da nur 1-dimensionale Arrays in BASCOM möglich sind, habe ich dies mit 
einem Trick umgangen.

Da die Messkurve nicht linear ist, habe ich auch noch eine 
Fehlerkorrektur ergänzt. Somit wird die quadratische Messkurve 
linearisiert.


Viel Erfolg.

W.
Angehängte Dateien:
#1921648
Lesenswert?

Im Datenblatt siehst du eine quadratische Fehlerkurve als Abweichung von 
der linearen Zuordnung der temperatur zu den Messwerten.

Wenn du diese Fehlerkurve mathematisierst und den somit berechenbaren 
Fehler als Korrekturwert benutzt, dann wird deine Messkurve linear.

W.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren