DS1820 zeiht nur 85Grad an

OP #864459
Hallo zusammen,
habe ein Problem mit einen DS18S20, es wird leider immer nur 85 Grad 
angezeigt. Habe VDD und GND auf Masse gepackt und einen 4,7 KOhm von der 
Daten auf 5 Volt.
Klemme ich die 5 Volt direkt an VDD geht garnichts mehr, es wird kein 
DS18S20 gefunden. Und so bekomme ich nur 85 Grad. Es soll unter Bascom 
laufen mit einem Atmega8.

Chris
Die 85° zeigt er genau so lange an, bis er zu einer Messung aufgefordert 
wurde. Einfach nur immer Werte auslesen verleitet ihn dazu nicht.

Und bei parasitärer Versorgung (VDD=GND) muss während der Messung das 
Signal aktiv hochgezogen werden sonst geht dem Ärmsten die Luft aus. Der 
4,7K Pullup reicht dafür nicht, da muss der Signalpin mithelfen.
Gast
Wir haben den 18S20 benutzt, da hatten wir des Effekt dass die erste 
Messwertübertragung immer 85° war (eine Art Standartwert der geliefert 
wird wenn keine Messung da ist).
Mach mal mehrere Messungen ohne einen Reset oder Init dazwischen.

Randy
OP
Erstmal danke für die Antworten,
a-k : Habe schon gesucht wir meinst du das mit dem Signalpin? und wie 
schließe ich Ihn dan an? Im Netz finde ich immer nur was mit Parasit 
Power und 5 Volt.

Randy : Ich habe mir die Routine abgetippt

Config 1wire = Portc.0

Dim Ar(2) As Byte
Dim Zaehler As Integer
Cls
Zaehler = 0
Do
 Zaehler = Zaehler + 1
 1wreset
 1wwrite &HCC
 1wwrite &H44
 1wreset
 1wwrite &HCC
 1wwrite &HBE
 Ar(1) = 1wread(2)

 Waitms 500
 Print Hex(ar(2)) ; Hex(ar(1))
 Shift Ar(1) , Right , 1
 Print Ar(1)
 print zaehler
 Wait 2
 Loop

End

Ist hier vieleicht ein Fehler, ich bin noch ein Anfänger und das sollte 
das erste Projekt werden.

Chris
Gast
@Christian

Meinst Du 2 Nachkommastellen ?
Ich kenne nur eine Routine, für 0.1 Grad Auflösung und habe das vor 
langer Zeit mal so realisiert

' calc for 0.1C resolution T is 10 times greater (integer)
' D0-D7 sind die 8 Bytes des DS1820
If (d0 And 1)=1 Then Decr d0
t=(50*d0-25+(100*(d7-d6))/d7)/10

Frank
OP
[Frank] wrote:
>
> ' calc for 0.1C resolution T is 10 times greater (integer)
> ' D0-D7 sind die 8 Bytes des DS1820
> If (d0 And 1)=1 Then Decr d0
> t=(50*d0-25+(100*(d7-d6))/d7)/10
>
Hallo Frank,
vielen Dank aber mir sagt das jetzt nichtz wirklich was, wie müßte ich 
das bei mir einbauen?

Chris

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.