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!
Hallo chris001, Im Roboter-Netz Forum findest du sicherlich Listings und natürlich auch Abhandlungen zu deinem Problem. mfg RS
Hallo Christian, ohne lange zu probieren ist mir folgendes aufgefallen : Waitus 200 ' dem DS1820 etwas Zeit zum Messen geben Laut Datenblatt sollten da 750ms Zeit sein. MfG Frank_S
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
Hallo Christian, ich habe gerade keinen Aufbau da, aber in meinen funktionierenden Quelle wird nur 1x 1wreset ausgeführt, nimm mal vorsichtig das 2. weg. Wenn das auch nicht funktioniert mussich mal schnellwas aufbauen ... MfG Frank_S
Hallo Frank! Macht leider keinen Unterschied. Aber so wie ich das kenne muss man doch jedes mal wenn man ne neue Funktion auf dem Bus ausführt den vorher reseten. Wenn es für dich kein zu großer Aufwand ist, eine Testschaltung aufzubauen, wäre das toll von dir. Mfg Christian
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
Hallo Christian, die gute Nachricht zuerst, dein Quelltext funktioniert mit den Stackwerten. Wie hast du den DS18S20 angeschlossen ? Vdd an + GND an - DQ an C.5 und über 4,7k Widerstand an Vdd ? MfG Frank_S
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!
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
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
Wichtig ist, dass die Taktzahl tatsächlich stimt. Versuche es sonst einmal mit den internen 8 MHz
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
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
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.