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 miteinander, > > > > irgendwie soll es mit den Raumfühlern nicht so richtig klappen. > > Da ich die DS18B20 sternförmig in den jeweiligen Heizkreizverteiler verkabelt habe erhoffte ich mir > > über die 1W-Bridge-800 die Lösung meiner Probleme. Zunächst sah alles recht gut aus. > > An den seperaten 1W-Anschlüssen 0,1,2,6,7 waren bis heute je ein Temp.-Fühler angeschlossen. > > Hin und wieder lieferte einer, manchmal auch zwei Sensoren, den Wert -0,0625°C (Übertragung > > ausschließlich von "1"en. Zumeist ein Zeichen, wenn die Abfrage der Sensoren zu schnell, also mit zuwenig > > Wartezeit versehen war => eher kein Problem. > > > > Heute wollte ich den nächsten Temp.-Fühler an einen der noch freien 1W-Anschlüsse 3,4 oder 5 > > anschließen. Kein Weg führte zum Ziel. Zunächst vemutete ich der zusätzliche Fühler sei defekt. > > Konnte ich durch Anschluß an Port 7 ausschließen. Hier lieferte er regelmäßig reale Werte. > > Manchmal hat der zusätzl. Fühler an Port 4 funktioniert, aber nur dann wenn ich den Fühler an Port 6 > > nicht mit der DS2482 verbunden hatte. > > > > Gibt es hier eine Art "Lastproblem"? > > Hat jemand eine DS2482-800 mit allen Anschlüssen beschalten erfolgreich in Betrieb? > > > > Ein Fehler am Baustein (DS2482-800) selber möchte ich fast ausschließen, da besagte Phänomene > > genau so bei einem zweiten Baustein auftreten (zwei Heizkreisverteiler im EFH). > > Beim Anschluß eines Fühlers am 5 Port zeigt dieser lediglich die -0.0625°C an. > > > > Alle Temp.-Fühler werden mit 5V (OK, manchmal sind es nur 4,87V) "Speisung" betrieben > > => kein parasitärer Mode. > > > > Die Längen zu den Fühlern sind mitunter schon recht erheblich: > > Ltg.-Nr. Länge in Meter > > 1 11m > > 2 4m > > 3 6 / 10 / 22m > > 4 9 / 14m > > 5 5 / 12 / 23m > > 6 12 / 21m > > 7 13 / 22 / 26 / 32m > > 8 8 / 9m > > 9 12m > > 10 22m > > > > Aber das sollte doch gerade bei dem "gemächlichen" 1W-Bus nicht das Problem sein. ODER? > > > > Vielen Dank für Eure sachdienlichen Hinweise. > > Hallo Dirk, > > betreibe auch den DS2482-800 mit z.Zt. 15 Sensoren (alle DS18B20). > Habe die Ports 0-4 in Verwendung mit bis zu 4 Senoren auf einem Port und ähnlich langen Leitungen. > (Port 5 und 6 sind noch frei, Port 7 benötige ich um Romcodes neuer Sensoren einzulesen und an- > schliessend im EEPROM abzulegen). > > Alle Ports und Sensoren laufen bei mir ohne Probleme. > Ich betreibe die Sensoren ausschliesslich im parasitären Stromversorgungsmodus. > > Folgende Punkte fallen mir als Fehlerquellen ein: > Hast Du jeweils einen 100 Ohm Widerstand zwischen IO-Port und Bus geschaltet? > Wie zuverlässig ist deine gemeinsame GND/ 0 Volt Verbindung ? > Wir konstant sind die +5 Volt (Restwelligkeit) ? > Welche Kabel verwendest Du ? > Ich benutze normale Telefonkabel, Sternvierer-verseilt. > Habe testweise 3 Sensoren aber auch schon über einen 100m Ring H03VV-F 3x0,75 ohne Probleme > betrieben. > > Wichtig ist auch, dass Du ca. 800ms zwischen dem convertTemperatur Befehl zum Sensor > und dem Auslesen des Wertes wartest. > Anbei mein Quelltext zum Auslesen aller meiner Sensoren und Ausgabe auf HWCOM. > (habe jedoch das DS 2482 Modul selber für die 800er Version erweitert und benutze nicht die spätere > Version von Andre. Die Funktionen haben dadurch eine etwas andere Namensgebung, sind aber > kompatibel) > > <code> > //-------------------------------------------------- > function tempmessung() // Temperaturmessung manuell > //-------------------------------------------------- > { > > string s; //für Textausgaben > int i; // für Schleifen > byte getrom[16]; // Speicherstellen für ROM-Codes > int scratchpad; // Zwischenspeicher für gelesenen Temperaturwert > float temp [16]; // Zwischenspeicher für Temperaturwerte (wie maxSensor) > wait oneWirecapture ==0; > oneWirecapture =1; > for i = 0...(maxSensor-1) > { > eeprom.readbytearray(0,(i*16),getrom,16); // ROMcode aus EEprom lesen > if debug > { > s=Sensorname[i]; > hwcom.send(s,str.length(s)); > hwcom.ret(); > wait hwcom.ready(); > }; > if getrom[1]== 0xff continue; // wenn erste Speicherstelle FF (kein Romcode) weiter mit nächstem Sensor > ds2482800.setChannel (0,getrom[8]); // Kanalregister setzen 0-7 > ds2482800.resetDevices(0); > ds2482800.matchROM(0,getrom); > ds2482800.writeByte(0,0x44); //Convert Temperatur > sleep 800; // diese Zeit braucht ein DS18B20 bis der Wert ausgelesen werden kann > ds2482800.matchROM(0,getrom); > ds2482800.writeByte(0,0xbe); //read scratchpad > scratchpad=ds2482800.readByte(0) or ds2482800.readByte(0) shl 8; > if debug //Ausgabe des Temperaturintegers > { > s="Scratchpad gelesen:"; > hwcom.send(s,19); > wait hwcom.ready(); > s=""; > str.putint(s,scratchpad); > hwcom.send(s,10); > hwcom.ret(); > wait hwcom.ready(); > }; > if scratchpad and 0xF000 > temp[i]= (scratchpad) or 0xf000; > else > temp[i]= (scratchpad) ; > s=""; > str.putint(s,i); > if i<10 s=s+" "; > else s=s+" "; > s=s+Sensorname[i]; > s=s+" "; > str.putfloatf(s,(temp[i]*0.0625),1); > log(s); > }; > oneWirecapture =0; > }; > </code> > > > Gruß und viel Erfolg > Jörg