Hier ein Link der weiterhilft:
http://mikrocontroller.jacob-pirna.d...om_ds1820.html
Da kannst du ein Beispielprog. zu Ermittlung der Adresse Downloaden.
Ich hoffe das dir das weiterhilft
Gruß
Neutro
Hallo allerseits!
Wollte mal kurz fragen, ob jemand bereit ist, mir zu sagen wie ich die Seriennummer eines DS18S20 auslese und anschliessend am LCD ausgebe?
Habe bereits die Seite im Wiki hier glesen, aber ich bekomms nicht hin, das ganze dann am LCD auszugeben.
MfG,
Maxxtro
Hier ein Link der weiterhilft:
http://mikrocontroller.jacob-pirna.d...om_ds1820.html
Da kannst du ein Beispielprog. zu Ermittlung der Adresse Downloaden.
Ich hoffe das dir das weiterhilft
Gruß
Neutro
Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
(Mark Twain)
Hier gibt es so viele Beiträge zum Thema DS18x20, da ist bestimmt etwas dabei.
Wenn du schon etwas versucht hast, dann zeig das doch mal.
Gruß
Rolf
So, eine der Seriennummern ist jetzt z.B. 10994E710108006D.
Nun ist in einem der Codes auf der von Neutro geposteten Seite die Zeile
Die weitere Ansteuerung über diese zugewiesenen Nummern scheint mir logisch; aber wie kommt man auf z.B. &H10 usw? Ich sehe dorten keinen zusammenhang zwischen der Seriennr. und diesen Anweisungen?Code:' Die Adresse meines DS1820 die ich vorher ermittelt habe Dsid(1) = &H10 : Dsid(2) = &H68 : Dsid(3) = &H17 : Dsid(4) = &H25 : Dsid(5) = &H01 : Dsid(6) = &H08 : Dsid(7) = &H00 : Dsid(8) = &H98
MfG
Na ja, deine ist dannZitat von Maxxtro
Dsid(1) = &H10
Dsid(2) = &H99
Dsid(3) = &H4E
Dsid(4) = &H71
Dsid(5) = &H01
Dsid(6) = &H08
Dsid(7) = &H00
Dsid(8) = &H6D
Oder was meinst du?
Also, ich habe ja jetzt die Seriennummern meiner DS1820s.
Nun möchte ich die ja einzeln ansteuren.
Dazu brauche ich ja die jeweilgen Adressen bzw. Nummern der einzelnen Sensoren?!
Nur wie komme ich an die? Das wollte ich wissen.
Wie kommst Du auf diese nummern? Diese ganzen Dsid(1), Dsid(2),... sind also allesamt nur ein DS1820?
Falls ja, wie schreibe ich dann mehrere in die Liste?
Ja, das ist ein einziger Sensor. Da ist der Typ und andere Angaben drin verschlüsselt. Alle 64bit zusammen sind die eindeutige Seriennummer.
Du kannst die Nummern z.B. im EEPROM abspeichern und bei Bedarf wieder von dort einlesen. Das kann vor jeder Messung sein (das braucht etwas Zeit) oder alle beim Start in ein Array ablegen (das braucht etwas SRAM), wie das in dem Beispiel wohl gemacht ist.
Es könnte auch sein, das dort die Nummern alle direkt im Programm angegeben sind, dann hast du dir auch das Einlesen aus dem EEprom gespart.
Gruß
Rolf
Im Programm sieht das dann so aus:
Dim Dsid(16) As Byte 'Platz für 2 Sensoren
Dsid(1) = &H10 : Dsid(2) = &H68 : Dsid(3) = &H17 : Dsid(4) = &H25 : Dsid(5) = &H01 : Dsid(6) = &H08 : Dsid(7) = &H00 : Dsid(8) = &H98 'erster Sensor (aus dem Beispiel)
Dsid(9) = &H10 : Dsid(10) = &H99 : Dsid(11) = &H4E : Dsid(12) = &H71 : Dsid(13) = &H01 : Dsid(14) = &H08 : Dsid(15) = &H00 : Dsid(16) = &H6D 'zweiter Sensor (deine Nummer 10994E710108006D)
1wreset
1wwrite Match_rom
1wwrite Dsid(1) , 8 'bzw 1wwrite Dsid(9) , 8 für den zweiten
1wwrite Read_scratchpad
Gruß
Rolf
Vielen Dank Rolf! Soweit hauts jetzt hin!
Hab nur noch ein Problem mit der Temperatur selber; entweder unter 0° bekomme ich eine 3-stellige Zahl, oder negative temperaturen werden ordentlich angezeigt, aber ab ca. 3° - 0° wird mir nicht mehr z.B. 3,0° sondern 30 angezeigt...
Wie sieht dein Programm denn jetzt aus?
gruß
Rolf
Lesezeichen