PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ds1820 funktioniert nicht (anschluss richtig?)



sonium
11.09.2007, 15:54
Hallo, ich versuche erst mal mit Bascom einen ds1820 auszulesen. Ich hab ihn mit einem 4,7kOhm Widerstand wie hier beschrieben am RN-Control angeschlossen

http://embedded-system.net/embedded-system/images/dallas-ds1820-circuit.gif

VCC hab ich am +5V meines hängen. Der GND Pin hängt in der Luft. Ist das korrekt?

Hier außerdem der Bascom Code:


$regfile = "m32def.dat" 'Die Anweisung bestimmt Controllertyp, hier AVR Mega 32
$framesize = 32 'Stackanweisungen, die eigentlich nur bei größeren Programmen
$swstack = 32 'wirklich nötig werden
$hwstack = 32
$crystal = 16000000 'Die Frequenz des verwendeten Quarzes
$baud = 9600 'Die Baudrate für RS232 Ausgabe.

Config 1wire = Porta.0 'use this pin

Dim Ar(2) As Byte , A As Byte , I As Byte , Temperatur As Integer
Dim Halb As Byte

Print "Temp:"
Do
Wait 1
1wreset 'reset the device
1wwrite &HCC 'read ROM command
1wwrite &H44
Waitms 100 'read ROM command
1wreset 'reset the device
1wwrite &HCC 'read ROM command
1wwrite &HBE 'read ROM command
For I = 1 To 2
Ar(i) = 1wread() 'place into array
Next

Locate 2 , 1
Temperatur = Ar(1)

If Ar(2) > 0 Then Temperatur = 0 Else Shift Temperatur , Right

Print Temperatur ; ".";

Halb = Ar(1) And 1

If Halb = 1 Then Print "5" Else Print "0"

Print " C"
Loop

End

Wenn ich den Sensor nicht angeschlossen hab bekomme ich 0.0 Grad ansonsten 0.5 Grad (und so kalt ist es hier auch nicht)

uwente
11.09.2007, 16:39
Tach,
ich hab das ding auch,allerdings an einem Picaxe angschlossen, hab mit nen termostaten realisiert, dabei hab ich den gnd des sensors mit dem gnd des controllers verbunden, das funzt wunderbar. frei in "der luft hängende" anschlüsse, bei einem Bauteil mit nur 3 anschlüssen solten immer grund zum grübeln sein, wenn dein Code stimmt und und du ne brücke legst zwischen den beiden gnd sollte es klappen.

Hohen Wirkungsgrad wünscht
uwente

sonium
11.09.2007, 16:57
Hui, wenn ich da mit GND ran geh geht der Strom hoch. Ich hab mich jetzt nicht getraut die Strombegrenzung auf mehr als 200mA auf zu drehen (im Normalbetrieb ca 70mA) Außerdem hab ich rausgefunden, dass es schon bei 1wreset einen Fehler gibt (laut AVR Application Notes wurde dann kein Sensor gefunden)

uwente
11.09.2007, 17:04
oha, schonmal überprüft, ob das ganze evtl verpolt ist, diese to92 gehause können manchmal verwirrend sein.
wenn du auf die flache bedruckte seite schaust, und die beinchen zu dir zeigen, dann ist das linke bein gnd, das mittlere ist die datenleitung und das rechte ist die Spannungsversorgung (3 bis 5,5 Volt)

sonium
11.09.2007, 21:47
ok, so funktionierts, viele danke für die schnelle Hilfe :)

Edit:

Gleich nochmal die nächste Frage:

Wie bekommt man ne höhere Genauigkeit hinterm Komma?
Aus den Application Notes und Datenblatt werd ich nicht schlau, aber irgendwie soll es gehen. Digitemp (PC Interface) macht das außerdem auch ganz gut.

Mir ist klar, dass die Genauigkeit trügt, aber ich brauche nur nen relativen Wert.

wassermann
12.09.2007, 04:25
Hallo sonium,

der Hinweis "bottom view" im Datenblatt ist leider etwas klein dargestellt.

Für die höhere Genauigkeit einfach dein Array vergrößern (9 Bytes siehe Seite 6), die for-Schleife von 1 bis 9 und die Formel auf Seite 3 implementieren. Der CRC-check ist sinnvoll, da bei mir sporadisch Fehlmessungen auftraten.

Viel Spass beim Messen,
wassermann