PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 1-Wire Temperatursensor DS18B20



LuK-AS
17.05.2005, 19:02
Hallo Gemeinde,

hier habe ich mal den funktionierenden Bascom-Code für einen DS18B20 Temperatursensor in 1-Wire Technik. Der Code passt gerade so in den AT90S2313 hinein :) (95% Speichernutzung) ob die Ergebnisse zu 100% stimmen, kann ich erst sagen wenn ich mal einigen Medien mit verschiedenen Temperaturen gemessen habe. Zumindest sieht das Ergebnis schon mal ganz anständig aus.


$crystal = 4000000
$baud = 19200

Config 1wire = Portb.0

Dim T1 As Single
Dim T2 As Single
Dim B1 As Byte , B2 As Byte , R As Byte
Dim Tmp As String * 6
Dim Vorzeichen As String * 1
R = &HFF

Do
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 250

1wreset
1wwrite &HCC
1wwrite &HBE

B1 = 1wread()
B2 = 1wread()

1wreset
If B2 >= 248 Then
B1 = R - B1
B2 = R - B2
Vorzeichen = "-"
Else
Vorzeichen = "+"
End If
T1 = B1 / 16
T2 = B2 * 16
T1 = T1 + T2
Print Vorzeichen ; T1 ; "C "
Waitms 250
Loop

End

Habe hier mehrmals gelesen, dass niemand den Sensor bis jetzt erfolgreich ausgelesen hat. Oke, ich gebs zu, Google und Datenblatt haben mir sehr dabei geholfen.

EDIT: Habe jetzt mal die Temp. unter meinem Arm gemessen, 36,7°C -- könnte also ziemlich genau hinkommen :)

Gruesse Clemens

x-ryder
17.05.2005, 20:06
ich habs auch schon geschafft, aber lustig finde ich ja das der sauschnell reagiert, das liegt aber doch warscheinlich am winzigen gehäuse oder?

das mit den 36,7°C iss aber natürlich nur ne ungefähre angabe weil der nur auf 0,5°C genau iss :-P aber passt doch ganz gutt

Martin

LuK-AS
17.05.2005, 20:09
HI Martin,

kannst ja Deinen Code auch mal posten, ist vlt. interessant das mal zu vergleichen.

Gruss Clemens

x-ryder
17.05.2005, 20:13
hmm jau, ich finde es grade bei mir nicht, muss ich morgen vom laden mitbringen

pod32
02.12.2005, 18:32
hast du den DS18B20 als "parasite" am laufen oder hast du ihm 5V gegeben?
Wie ist das mit den Pullup Widerständen zu verstehen? kommen die zw. GND und Taktleitung wg. Spannungsspitze oder wie ist das


danke