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.
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
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
Die Messung dauert etwas. 750ms solltest du ihm schon gönnen. Messung starten (44) und sofort auslesen (BE) geht nicht.
Vielen Dank, jetzt habe ich es halbwegs kapiert und er misst jetzt 27 Grad, wie bekomme ich noch zwei Komastellen hin? Chris
@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
[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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.