Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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
Ich nutze:
C-Control II Station, OSOPT V3.1
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: