1W und DS18S20

OP #2845731
Lesenswert?

Hallo Leute!

Ich weiß, es gibt 1000 Anleitungen und Beiträge zu diesem Thema. Aber 
ich weiß vor lauter Input nicht mehr wo mir der Kopf steht, deshalb 
finde ich den Fehler nicht.

Ich möchte ganz einfach einen DS18S20 auslesen und die Temperatur auf 
einem Display ausgeben. Ich bekomme im Display leider immer nur die 
Ausgabe "FF".

Der Bascomcode s. Anhang.

Danke schon mal!
Angehängte Dateien:
OP #2846180
Lesenswert?

Hallo Frank!

Hab die Zeiten eben mal auf 800 gesetzt.
Leider immer noch keine Funktion.
Ich weiß nicht was ich da falsch machen.

Hab eben noch n Programm probiert wo ich leider nur noch die .hex Datei 
von hab. Das funktioniert. Hier werden sogar mehrere Sensoren Adresse 
ausgelesen und dann die Temperaturen angezeigt.

Das brauch ich ja hier nicht einmal. Ich möchte nur einen einzigen 
Sensor auslesen.

Mfg

Christian
Gast #2846229
Lesenswert?

HAst Du einen Pullup-Widerstand (4,7k)?

Setz mal Stackwerte:

$hwstack = 32        ' default use 32 for the hardware stack

$swstack = 10         'default use 10 for the SW stack

$framesize = 40          'default use 40 for the frame space
#2846251
Lesenswert?

Hallo,

im Anhang befinden sich die entsprechenden Codes die ich 
verwende/verwendet habe um die Sensoren auszulesen.... beim ID auslesen 
hab ich einfach Spannungsversorgung per Krokoklemmen und den Sensor an 
den uC-Pin (hat geklappt :D) ... und beim auslesen der Temperaturen 
hängen aktuell die 7 Sensoren an einem Netzwerk (Stern/Reihe gemischt um 
Umkreis von 20m mit ISDN-Kabel (war noch da :D) ... verwende aber 
aufgrund der doch recht hohen Kapazität durch die vielen Kabel einen 2k 
Pull-Up...

Viel Spaß und Erfolg!
Angehängte Dateien:
OP #2846254
Lesenswert?

Hallo!

Also, wenn der Quelltext funktioniert, ist das ja schon mal schön.

Ich habe Pin 1 an GND, Pin 2 an c5, Pin 3 an +5V und ein Widerstand 4,7k 
zwischen Pin 2 c5 und +5V. Hab auch schon ohne Widerstand versucht oder 
mal mit 10k.

Ich werd mal noch schnell die Angaben von Stefan in den Kopf des 
Quelltexts einfügen.

Mfg

Christian
OP #2846279
Lesenswert?

Hallo *.*!

Hab jetzt mal alles auf nem anderen Klemmbrett mit anderen Kabeln 
aufgebaut. Außerdem hab ich mal nen anderen Code in die "do loop" 
Schleife eingefügt.

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

Leider ohne Erfolg.

Die Ausgabe im Display :

Zeile 1 FFFF
Zeile 2 127

Schulterzucken.

Mfg

Christian
#2846321
Lesenswert?

Christian Betzen schrieb:
> Hallo *.*!
>
> Hab jetzt mal alles auf nem anderen Klemmbrett mit anderen Kabeln
> aufgebaut. Außerdem hab ich mal nen anderen Code in die "do loop"
> Schleife eingefügt.
>
> Do
>  1wreset
>  1wwrite &HCC
>  1wwrite &H44
>  1wreset
>  1wwrite &HCC
>  1wwrite &HBE
>  Ar(1) = 1wread(2)
>
>  Waitms 500

> Leider ohne Erfolg.
die Pause muss zwischen "ConvertC -0x44" und "ReadScratchpad -0xBE"
Vor der Ausgabe ist das Nutzlos. UND es sind immer noch weniger als 
750ms!

Sascha
OP #2846327
Lesenswert?

Hallo *.*!

Also, ich habe mir eben mal schnell zwei neue DS18S20 bestellt. Weil ich 
mir nicht mehr ganz sicher war, ob nicht zwischenzeitlich die Dinger 
abgeraucht sind.

Ich hätte es mir sparen können. Die Lösung für das Problem ist die 
richtige Taktfrequenz!

Jetzt muss ich das nur noch alles in mein eigentliches Programm 
einfügen.

Danke an Alle, die sich um das Problem gekümmert haben.

Mfg

Christian

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren