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...
Laut Datenblatt müssen alle 8 Bytes stimmen. Du kannst aber auch den ROM-Suchalgorithmus benutzen. Dann mußt Du nur einmal feststellen, in welcher Reihenfolge die Sensoren gefunden werden. Peter
Hi Peter! Also so? 1wreset 1wwrite &H0108006D <------???? 1wwrite &H44 1wreset 1wwrite &H0108006D <-----???? 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 Schö mit Ö... Chris
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.
jup, habs grad ausprobiert, du musst die komplette adresse in 2er päckchen schreiben, weil immer nur 1 byte gesendet wird nun noch bei deinem ersten programm das "skip rom" durch "match rom" ersetzen und es sollte klappen
Wie sollen die Sensoren denn befestigt werden und wo? Du hast von Steuerung geschrieben, oder meinst Du eher ein Datalogger?
Die Sensoren sollen als Rohranlegefühler an den Heizungsrohren befestigt werden. Um Vor- und Rücklauf zu messen.
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.
>Fehlerkorrektur ergänzt. Somit wird die quadratische Messkurve >linearisiert. nur mal so-- womit vergleichst Du die Messkurve? MfG
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.
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.