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

ds1631z: ds1631.readi2(i): falscher Wert Kategorie: I²C-Bus (von chrisk - 7.02.2009 22:25)


Hallo,

ich habe ein Problem mit dem DS1631 Temperaturfühler,
es wirden zwar eine Temperatur geliefert, allerdings kann diese nicht stimmen (32° im Keller)
Es sind 2 Sensoren derzeit angeschlossen (siehe Output unten)

Code::
int v_temperature[count+1];           //Array für den Status der Sensoren
byte i;
function init()
{
  ds1631.init(8);            //alle Temperatursensoren werden initalisiert.
  for i=0 ... count
   v_temperature[i]=0;
}
thread control
{
  sleep 1000;
  for i=0 ... count
  {
   wait(i2c.ready());
   v_temperature[i]=ds1631.readi2(i);
  }
}

Anzeigen lasse ich mir das ganze über die Serielle Schnittstelle per Hyperterminal:
Code:
    for i=0 ... temperature.count
    {
      hwcom.ret();
      hwcom.print("Nr:");
      hwcom.num(i);
      hwcom.print(" Temperature:");
      hwcom.num(temperature.v_temperature[i]);
      hwcom.print(" THH:");
      hwcom.num(ds1631.getThH(i));
      hwcom.print(" THL:");
      hwcom.num(ds1631.getThL(i));
   }
Output:
Nr:0 Temperature:3193 THH:1593 THL:1593
Nr:1 Temperature:-7 THH:-7 THL:-7
Nr:2 Temperature:-7 THH:-7 THL:-7
Nr:3 Temperature:3193 THH:1593 THL:1593
Nr:4 Temperature:-7 THH:-7 THL:-7
Nr:5 Temperature:-7 THH:-7 THL:-7
Nr:6 Temperature:-7 THH:-7 THL:-7
Nr:7 Temperature:-7 THH:-7 THL:-7

Code:
    for i=0 ... temperature.count
    {
      hwcom.ret();
      hwcom.print("Nr:");
      hwcom.num(i);
      hwcom.print(" config:");
      hwcom.num(ds1631.getConfig(i));
   }
Output:
Nr:0 config:127
Nr:1 config:255
Nr:2 config:255
Nr:3 config:127
Nr:4 config:255
Nr:5 config:255
Nr:6 config:255
Nr:7 config:255

Verwendet wird die DS1631Z Anschlussplatine lang.
Diese sind direkt an einem Sternverteiler für den Bus angehängt (SDA& SCL Kabellänge ist ca. 50cm).
+5V und Masse kommen von einem alten AT-Netzteil (das dürfte aber kein Problem sein, Displays,
 Tastaturen etc. funktionieren auf diese Art einwandfrei)

Hat jemand eine Idee woran die falsche Temperatur liegen könnte?

danke&lg

christian


    Antwort schreiben


Antworten:

Re: ds1631z: ds1631.readi2(i): falscher Wert (von Franz Stefan - 9.02.2009 13:39)
    Re: ds1631z: ds1631.readi2(i): falscher Wert (von Franz Stefan - 9.02.2009 14:01)
        Re: ds1631z: ds1631.readi2(i): falscher Wert (von chrisk - 9.02.2009 23:32)
            Re: ds1631z: ds1631.readi2(i): falscher Wert (von GeorgEichhorn - 17.02.2009 0:00)
                Re: ds1631z: ds1631.readi2(i): falscher Wert (von chrisk - 21.02.2009 17:40)
                    Re: ds1631z: ds1631.readi2(i): falscher Wert (von GeorgEichhorn - 26.02.2009 20:53)
            Re: ds1631z: ds1631.readi2(i): falscher Wert (von Franz Stefan - 13.02.2009 9:01)
                Re: ds1631z: ds1631.readi2(i): falscher Wert (von chrisk - 21.02.2009 10:34)
                    Re: ds1631z: ds1631.readi2(i): falscher Wert (von chrisk - 21.02.2009 17:36)
                Re: ds1631z: ds1631.readi2(i): falscher Wert (von chrisk - 21.02.2009 10:32)
                    Re: ds1631z: ds1631.readi2(i): falscher Wert (von chrisk - 20.03.2009 15:00)