Re: Frostwächter Kategorie: Sensoren (von Markus - 5.01.2010 11:25) | ||
Als Antwort auf Re: Frostwächter von ChristianS - 3.01.2010 20:31 | ||
| ||
Hallo Christian, ich hab jetzt auch mal 2 I2C Slaves an einem P82B96 angeschlossen. Das funktioniert bei mir ! Also: --->I2C Slave Nr 1 CC2 ----> P82B96 ----10m--CAT-5-Leitung---> P82B96 --->I2C Slave Nr 2 Das mit den DS18B20 1-Wire Sensoren funktioniert natürlich auch. Auch bei denen solltest Du mind. 750ms warten (am Besten alle Sek abfragen) Aber genauer wird es damit auch nicht. Markus > Hallo André, > hm, Du hast recht. Ich habe alte Werte. Muss ich wohl noch mal drüber nachdenken. > > Ich dachte: > Wenn ich "init" aufrufe, dann schaltet er die Temperaturkonvertierung auf "permanent",das ist nicht gut. > Deshalb: > Ich initialisiere und schreibe die Config mit LSB=1 einmalig beim Programmstart. > In meinen thread, der einmal pro Minute aufgerufen wird lese ich dann die Temperatur aus. > Wenn ich Dich richtig verstehe, dann löst das Schreiben von 0x51 erst das Wandeln der > Temperatur aus. Also müsste ich erst 0x51 schreiben und dann auf das LSB warten, bevor ich lese, > richtig? > > Danke und Gru�, > ChristianS. > > > Hallo Christian, > > > > > ich habe das nun anders gemacht und bekomme auch völlig andere Werte: > > > > > > thread TEMP > > > /******************************************************************************/ > > > /* Temperatursensor auslesen */ > > > /******************************************************************************/ > > > { > > > wait ds1631.getConfig(t1Sensor)&0b10000000; //ist Temperaturwert gewandelt? > > > i2c.start(ds1631.Addr[t1Sensor]); //addressiere Temperatursensor > > > i2c.write(0x51); //sende "start convert T"-Kommando > > > i2c.stop(); > > > temp1=ds1631.readi2(t1Sensor); //lese vorhandenen Temperaturwert > > > //hwcom.num(ds1631.getConfig(t1Sensor)); > > > //hwcom.print(": "); > > > //hwcom.num(temp1); > > > halt; > > > } > > > /******************************************************************************/ > > > > > > dieser Thread wird nun jede Minute gestartet. Somit sollte die Eigenerwärmung ausgeschlossen > > > sein. > > > > Prinzipiell schon. > > Hast Du auch die Initialisierung entsprechend geändert? Ich gehe mal davon aus. > > Du solltest mind. 750ms zwischen dem Starten der Konvertierung und dem Auslesen warten. > > Ansonsten bekommst Du einen eine Minute alten Wert. > > Wenn das nichts ausmacht, so solltest Du die Temperatur vor dem Start-Convert-Kommando > > abfragen. > > > > > > > > Du sprichst bei der Eigenerwärmung von einem konstanten Wert, kannst Du diesen ungefähr > > > > beziffern? Ich habe das im Datenblatt nicht gefunden.. > > > > Indirekt steht es drin. > > So gut wie die gesamte Leistungsaufnahme wird unweigerlich in Wärme umgewandelt. > > Während der Konvertierungsphase benötigt der Sensor ca. 1mA. > > Bei Schreiben ins EEProm ca. 440µA, Bei I²C-Zugriffen ca. 110µA. > > D.h. ca. 5mW während der Konvertierung, die zu Wärme werden. > > > > MfG André H. | ||
Antwort schreiben Antworten: |