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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.