Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > > Hallo zusammen, > > > > > > ich möchte für eine Gewächshaussteuerung 5 DS1631-Temperatursensoren einsetzen, aber keiner der > > > Sensoren wird erkannt. Da alle Sensoren (auf Platine, adressiert) bei André bezogen wurden, schließe ich > > > einen Lötfehler (müßte ja bei allen 5 Sensoren sein) aus. Beim Auslsesen der Temperatur bekomme ich nur die > > > "Standardanzeige" -0,07 heraus, egal, ob Sensoren angeschlossen sind, oder nicht. Die Möglichkeiten, die ich > > > im Forum dazu gefunden habe (Spannung: 5V aus der Station, ok; Lötfehler bei allen 5 Sensoren: > > > unwahrscheinlich), habe ich soweit durch. Zum Testen habe ich die Beispielprogramme aus ähnlichen > > > Forumsbeiträgen verwendet; die Software sollte auf dem Stand vom November 2005 (Inbetriebnahme der > > > Station) sein. Andere Programme (AD-Wandlung,...) laufen ohne Probleme. Entweder mache ich einen > > > grundsätzlichen Fehler, oder der I2C-Bus meiner Station ist kaputt. > > > Gibt es eine Möglichkeit, den I2C-Bus anders zu testen? Gibt es Besonderheiten bei der Station? > > > Was habe ich übersehen? > > > > > > Danke und Gruß, > > > Georg > > > > Hallo Georg, > > > > da ich dein Programm nicht kenne, weiß ich nicht, wo der Fehler liegt. > > Du mußt erst den Sensor initialisieren und dann ein Start Kommando schicken. > > (Einfachwandlung oder kontinuierliches Wandeln starten.) > > > > Je nach Auflösung benötigst du bis zu 1000 ms Wartzeit, bevor du die Temperatur > > auslesen darfst. Ich denke du weißt, wie du die Adressen $90 bis $9E einstellen mußt. > > > > Ich habe jetzt nicht nachgeschaut, ob der I2C Bus der Station interne Pull-Ups hat!?! > > Lass mal etwas Code sehen........ > > > > Mfg, > > Willi aus Oelde > > > > > > > Hallo Willi, > > danke für die schnelle Antwort. Ich habe sicherheitshalber noch einmal alle Varianten mit allen Adressen > von 1 bis 5 durchprobiert. Zur Zeit stecken alle 5 Sensoren auf einem Steckbrett und sind jeweils über > 330 Ohm mit SDA und SDL verbunden. Doch nun zu den Programmen: > > Variante 1: > thread main > {int x; > lcdext.init(); > if i2c.start(0b10010001) > lcdext.print("Sensor gefunden"); > else > { > lcdext.print("Sensor reagiert"); > lcdext.line(2); > lcdext.print("nicht !!"); > } > quit 1; > } > => keine Reaktion von 0b10010001 bis 0b10010101 > > Variante 2: > thread main > { > stports.init(); > lcdext.init(); > ds1631.init(8); > loop > { > lcdext.line(1); > lcdext.zahl4n2(ds1631.readi2(5)); > lcdext.put(223); > lcdext.put('C'); > sleep 1000; > } > } > => Jeweils nur "-0,07°C" für readi2(1) bis readi2(5) > > Variante 3: > thread getTemp { > > run 100; > > int t1; > float temp; > string wert; > sleep(1000); > > //lesen der Adresse 0 > t1=0; > t1 = ds1631.readi2(5); > temp = t1; > temp = temp/100.; > //Integer in String umwandeln > str.putfloatf(wert, temp, 2); > lcdext.goto(0,0); > lcdext.print(wert); > //zurücksetzten > sleep(300); > lcdext.clear(); > wert = ""; > } > > thread main { > //initialisierung > ds1631.init(5); > lcdext.init(); > > run getTemp; > halt; > } > => Jeweils nur "-0.07" für readi2(1) bis readi2(5) > > Ich habe auch versucht, die Sensoren nicht nur gemeinsam ("8") sondern individuell zu initialisieren, aber > das hat ebenfalls nichts geändert. Ist eventuell der I2C-Bus nicht richtig initialisiert? > > Danke weiterhin. > > Gruß > Georg