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

Re: 1-Wire 18B20 Kategorie: I²C-Bus (von ChristianS - 26.09.2010 12:26)
Als Antwort auf Re: 1-Wire 18B20 von ChristianS - 26.09.2010 12:06
Ich nutze:
C-Control II Station, OSOPT V3.1
Hallo,
tja, so ist das. Ich hatte einen fertigen Baustein ohne Option "R"bestellt und war davon
ausgegangen, das auch die Drahtbrücke bestückt ist.Habe diese nun reingelötet und
nun funzt es auch.

ChristianS.


> Hallo Bernd,
> danke für dier Antwort, hat aber leider nichts gebracht. Die Funktion
> hwcom.num(ds2482.init(0));
> sollte mir eigentlich eine -1 ausgeben, wenn ein Baustein angeschlossen ist, aber es bleibt
> bei "0". Der Baustein scheint überhaupt nicht zu regaieren.
> Ja ich verwende V1.2.
>
> hat noch jemand eine Idee?
>
> GruÃ?,
> ChristianS
>
>
> > Hallo Christian,
> >
> > ich nutze auch eine Bridge8 mit acht Sensoren. Allerdings sind sieben der acht Sensoren noch DS1820,
> > welche eine etwas andere Berechnung fordern. Das betrifft aber nur den Teil nach ds2482.readByte.
> >
> > Was mit auffällt:
> > Das Beispiel im Kommentar ist für das DS2482-100. Beim DS2482-800 mu� auch noch der jeweilig
> > benutzte 1-Wire-Bus ausgewählt werden.
> > ds2482.setCH(0,busNummer);
> >
> > Ob der ohne
> > ds2482.setCH(0,busNummer);
> > auf Bus 0 steht, weiÃ? ich jetzt nicht.
> >
> > Ich rufe zu Beginn der function getTemp1 erstmal
> > ds2482.resetDevices(0);
> > auf.
> >
> > Verwendest Du die V1.2 des Moduls ds2482?
> >
> > Bekommst Du eigentlich einen plausiblen Wert für die Temperatur angezeigt oder scheitert das Ganze
> > schon bei der Adresse?
> >
> > Viele Grü�e
> > Bernd
> >
> >
> >
> >
> > > Hallo,
> > > da habe ich das 1.Problem noch nicht gelöst, da kommt schon das Nächste. Ich habe einen
> > > 18B20an einer Bridge 8 angeschlossen und diese an den I2C-Bus der CC2-Station. Die Adresse des
> > > Busteins steht auf 0, also A0;A1;A2 gegen Masse. Der Sensor hängt am Port 1W0
> > > Folgendes Progrämmchen habe ich geladen:
> > >
> > >
> > > /******************************************************************/
> > > /* Beispiel zum Auslesen des DS1822 1Wire-Temperatursensors       */
> > > /* am DS2482-100                                                  */
> > > /******************************************************************/
> > >
> > > const DS1822ROM[]=34,135,56,17,0,0,0,247;
> > >
> > > const convertTEMP    = 0x44;
> > > const readSCRATCHPAD = 0xBE;
> > >
> > >
> > > /***********************************/
> > > /* Temperatur auslesen             */
> > > /***********************************/
> > > function getTempl(byte ds2482addr, byte ROM[]) returns long
> > > {long temp;
> > >  int x;
> > >
> > >  ds2482.matchROM(0,ROM);
> > >  ds2482.writeByte(ds2482addr,convertTEMP);
> > >
> > >  sleep 750;
> > >
> > >  ds2482.matchROM(0,ROM);
> > >  ds2482.writeByte(ds2482addr,readSCRATCHPAD);
> > >  x=ds2482.readByte(ds2482addr) or ds2482.readByte(ds2482addr) shl 8;
> > >
> > >  if x and 0xF000
> > >    temp= (x shr 4) or 0xF000;
> > >   else
> > >    temp= x shr 4;
> > >  return temp*10000 + (x and 0xF)*625;
> > > }
> > >
> > > function lcdzahl7n4(long zahl)
> > > {
> > >  lcdext.zahl3(zahl/10000);
> > >  lcdext.put(',');
> > >  zahl=zahl%10000;
> > >  lcdext.ziff(zahl/1000);
> > >  lcdext.ziff(zahl/100);
> > >  lcdext.ziff(zahl/10);
> > >  lcdext.ziff(zahl);
> > > }
> > >
> > > thread main
> > > {byte DS1822Addr[8],i;
> > >  long temp;
> > >  lcdext.init();
> > >  ds2482.init(0);
> > >
> > >  // ROM-Adresse des angeschlossenen DS1822 ermitteln.
> > >  // Es darf nur ein 1W-Bus-Device angeschlossen sein,
> > >  // wenn diese Funktion ausgeführt wird!
> > >  ds2482.getROM(0,DS1822Addr);
> > >  
> > >  // 64Bit Adresse ausgeben
> > >  for i=0...3 lcdext.zahl4(DS1822Addr[i]);
> > >  lcdext.line(2);
> > >  for i=4...7 lcdext.zahl4(DS1822Addr[i]);
> > >  sleep 2500;
> > >
> > >
> > >  lcdext.clear();
> > >  lcdext.print("Temperatur:");
> > >  lcdext.goto(2,8);
> > >  lcdext.put(223);
> > >  lcdext.put('C');
> > >  loop
> > >  {
> > >   lcdext.line(2);
> > >   lcdzahl7n4(getTempl(0,DS1822Addr));
> > >  }
> > > }

> > >
> > > Leider bekomme ich als Rom-Adresse nur Nullen angezeigt. Wo liegt das Problem?
> > >
> > > Danke und GruÃ?,
> > > ChristianS


    Antwort schreiben


Antworten:

Re: 1-Wire 18B20 (von André H. - 28.09.2010 8:19)
    Re: 1-Wire 18B20 (von ChristianS - 28.09.2010 12:48)