Hallo evtl. passt meine Software nicht oder das Kabel, bzw, meine Verbindungen. ich habe nun schon einige Links zum Thema Verkabelung OneWire Bus und DS18B20 gelesen als auch hier im Forum diesen Thread Beitrag "DS18B20 Problem Telfonkabel 4 polig" Als Verkabelung verwende ich aktuell ein Brandmeldekabel rot BMK-J-Y(ST)Y 2x2x0,8 , ist geschirmt , leider etwas starr, hatte ich noch ein paar Meter. Als Master verwende ich einen Arduino Mega2560 Clone (habe hier zwei , einmal SaintSmart ca 3 Jahre alt und ein neuerer Clone ). Als Pullups testete ich mit 4,7K und 2,2 k sowie mit 2x 4,7k. Die Software zum Auslesen der Hardwareadressen als auch zum Auslesen der Temps stammt aus der DallasTemperature.h Bibliothek. Die Sensoren sind alle an einer Leitung mit kürzeren Abgängen < 0,5m wobei der letzte ein DS18B20 Wasserdichter Sensor ist der an einem ca 1m langen ungeschirmten Kabel hängt. Die Verbindungen sind reine Mikrofonbuchsenstecker (siehe Bilder) Bei den Verbindungen wurde die Abschirmung auf ca 5cm entfernt als auch beim Anschluß zum Arduino. Beim Auslesen der Hardwareadresse funktioniert alles 1a. Ich bekomme alle Adressen. Mit diesem Code #include <OneWire.h> void setup() { Serial.begin(115200); Serial.println("//\n// Start oneWireSearch.ino \n//"); for (uint8_t pin = 8; pin < 13; pin++) { findDevices(pin); } Serial.println("\n//\n// End oneWireSearch.ino \n//"); } void loop() { } uint8_t findDevices(int pin) { OneWire ow(pin); uint8_t address[8]; uint8_t count = 0; if (ow.search(address)) { Serial.print("\nuint8_t pin"); Serial.print(pin, DEC); Serial.println("[][8] = {"); do { count++; Serial.println(" {"); for (uint8_t i = 0; i < 8; i++) { Serial.print("0x"); if (address[i] < 0x10) Serial.print("0"); Serial.print(address[i], HEX); if (i < 7) Serial.print(", "); } Serial.println(" },"); } while (ow.search(address)); Serial.println("};"); Serial.print("// nr devices found: "); Serial.println(count); } return count; } Mit diesem Code versuche ich die Sensoren auszulesen. // // FILE: oneWireSearch.ino // AUTHOR: Rob Tillaart // VERSION: 0.1.02 // PURPOSE: scan for 1-Wire devices + code snippet generator // DATE: 2015-june-30 // URL: http://forum.arduino.cc/index.php?topic=333923 // // inspired by http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html // // Released to the public domain // // 0.1.00 initial version // 0.1.01 first published version // 0.1.02 small output changes #include <OneWire.h> void setup() { Serial.begin(115200); Serial.println("//\n// Start oneWireSearch.ino \n//"); for (uint8_t pin = 8; pin < 13; pin++) { findDevices(pin); } Serial.println("\n//\n// End oneWireSearch.ino \n//"); } void loop() { } uint8_t findDevices(int pin) { OneWire ow(pin); uint8_t address[8]; uint8_t count = 0; if (ow.search(address)) { Serial.print("\nuint8_t pin"); Serial.print(pin, DEC); Serial.println("[][8] = {"); do { count++; Serial.println(" {"); for (uint8_t i = 0; i < 8; i++) { Serial.print("0x"); if (address[i] < 0x10) Serial.print("0"); Serial.print(address[i], HEX); if (i < 7) Serial.print(", "); } Serial.println(" },"); } while (ow.search(address)); Serial.println("};"); Serial.print("// nr devices found: "); Serial.println(count); } return count; } Nach dem Auslesen bekomme ich gerade noch Temperaturen von 2 Sensoren angezeigt Anfangs hatte ich zu Testzwecken alles nur mit normalem 0,5mm Draht angeschlossen, da hatte ich schon das gleiche Problem. Nach dem Lesen in Foren hatte ich dann dieses abgeschirmte Kabel verwendet. Wieder das Gleiche. Jetzt weiß ich nicht mehr weiter edit: Das Foto mit den offenen Kontakten des einen Sensoren dient nur dazu damit man sieht wie der Sensor verlötet und verbunden ist. Die Sensoren sind an Buchsenleisten angelötet damit ich sie später mal leichter tauschen kann edit2: hatte es mit 4,7 und 2,2 K probiert nicht wie oben ursprünglich geschrieben mit 2,5k
:
Bearbeitet durch User
@ Achim A. (achim_a) >Als Verkabelung verwende ich aktuell ein Brandmeldekabel rot >BMK-J-Y(ST)Y 2x2x0,8 , ist geschirmt , leider etwas starr, hatte ich >noch ein paar Meter. Die Längen sind unkritisch. >Als Pullups testete ich mit 4,7K und 2,5 k sowie mit 2x 4,7k. Ist OK. >Die Software zum Auslesen der Hardwareadressen als auch zum Auslesen der >Temps stammt aus der DallasTemperature.h Bibliothek. Welche? Du meinst eine Arduino-Lib? >Bei den Verbindungen wurde die Abschirmung auf ca 5cm entfernt als auch >beim Anschluß zum Arduino. Unkritisch. >Beim Auslesen der Hardwareadresse funktioniert alles 1a. Ich bekomme >alle Adressen. Gut. Aber geht auch auch dauerhaft? Mach das mal in einer Dauerschleife, laß dir das Ergebnis ausgeben und beobachte. >Nach dem Auslesen bekomme ich gerade noch Temperaturen von 2 Sensoren >angezeigt Das kann auch ein Fehler in deinem Programm sein. >Jetzt weiß ich nicht mehr weiter Wenn du hast, nimm drei deiner Sensoren und pack sie auf ein Stück Lochraster direkt nebeneinander. Wenn dein Programm damit funktioniert, ist es möglicherweise ein Problem des Timing oder deiner Verkabelung. Wenn nicht, hast du einen prinzipiellen Softwarefehler oberhalb von OneWire.
Falk B. schrieb: > Wenn du hast, nimm drei deiner Sensoren und pack sie auf ein Stück > Lochraster direkt nebeneinander. Wenn dein Programm damit funktioniert, > ist es möglicherweise ein Problem des Timing oder deiner Verkabelung. > Wenn nicht, hast du einen prinzipiellen Softwarefehler oberhalb von > OneWire. Vielen Dank, ok das mit der Schleife und Auslesen probiere ich , leuchtet mir sofern ein, da ich dann sehe ob es an den Wartezeiten zw. den abfragen liegen könnte. Ich hatte die Wartezeiten schon geändert da ich das hier iom Forum gelesen hatte, aber vielleicht ist immernoch die Wartezeit nicht lange genug. Auf dem Steckbrett funktioniert es einwandfrei. Und ja es ist aus einer Arduino-Lib Frage: Wie kann mit einem normalen Multimeter herausfinden ob die Verkabelung sauber ist, sprich Verbindungen, Kontakte ok etc. Kann man das über Widerstandsmessung herausfinden? Aktuell teste ich nur nach dem Verlöten ob ich eine Verbindung habe (normaler Durchgangsprüfung) oder u.U. einen Kurzschluss fabrizierte
@ Achim A. (achim_a) >Wie kann mit einem normalen Multimeter herausfinden ob die Verkabelung >sauber ist, sprich Verbindungen, Kontakte ok etc. Kann man das über >Widerstandsmessung herausfinden? Kommt drauf an. >Aktuell teste ich nur nach dem Verlöten ob ich eine Verbindung habe >(normaler Durchgangsprüfung) oder u.U. einen Kurzschluss fabrizierte Das ist OK und sollte meistens ausreichen. Man kann noch den Widerstand zwischen den Adern messen, der sollte im dreistelligen kOhm Bereich und darüber liegen.
Achim A. schrieb: > Die Software zum Auslesen der Hardwareadressen als auch zum Auslesen der > Temps stammt aus der DallasTemperature.h Bibliothek. Ein Link darauf wäre sinvoll. Achim A. schrieb: > for (uint8_t pin = 8; pin < 13; pin++) Man darf Code auch kommentieren. Was läuft denn da von 8 .. 12? Diese tonnenweise eingestreuten Serial.print verwirren mich sehr. Ich würde erstmal alle Daten in ein Array einlesen und danach mit sprintf() formatiert ausgeben.
Achim A. schrieb: > Auf dem Steckbrett funktioniert es einwandfrei. Der AVR ist etwas stark, das kann leicht zu Reflexionen auf den Kabeln führen. Probier mal einen Widerstand (47 ... 220Ω) in Reihe zum AVR zur Bedämpfung der Flanken.
Peter D. schrieb: > Was läuft denn d das läuft nicht viel da ich nur den PIN 8 nutze. das ist ein Beispiel-Sketch der Bibliothek. Den habe ich unverändert gelassen. Vielleicht sucht er so mehrere Pins ab da ja auch ein Multibus möglich ist der Link zur Bibliothek https://github.com/milesburton/Arduino-Temperature-Control-Library/blob/master/DallasTemperature.h
Peter D. schrieb: > stark etwas Stark ? du meinst das Signal oder die Spannung? den 47 Ohm bzw. 220Ohm Widerstand in Reihe, meinst Du das ich diesen in die Signalleitung in Reihe schalte Den Widerstand 4,7K zw. Signal und 5V lasse ich aber oder?
Peter D. schrieb: > Diese tonnenweise eingestreuten Serial.print verwirren mich sehr. > Ich würde erstmal alle Daten in ein Array einlesen und danach mit > sprintf() formatiert ausgeben. ok, das ist unsauber auch zum Lesen des Codes, ich muss da heute Abend mal ne abgespeckte Version probieren und dann hier posten das stammt halt alles aus den Beispielen der Bibliothek. Bei neuen Bauteilen oder Sensoren teste ich immer so, erst nachdem alles geht bastle ich alles in mein Programm ein, zuvor nehme ich stets vom Bibliothek-Programmierer bereitgestellte Beispielprogramme die normalerweise laufen sollten Aber eben mit den OneWire Bus und diesen DS18B20 Sensoren gibts ja wirklich viel Ärger, was wohl oft nur Kleinigkeiten sind. Aber erstmal finden
Hallo welch Zufall da ich nun alles nochmals gecheckt habe, u.a. einen anderen Beispiel-sketch probierte (ohne feste Adressen sondern die zuvor im Programm gesucht werden (was aber auch wieder nicht korrekt funktionierte (1 sensor war noch ok, ein zweiter auch noch, aber beim Dritten udn vierten kamen dann Aussetzer in der Forma das der Hardwarescanner sie zwar fand aber die Temps nicht mehr ausgelesen wurden ... die Wartezeiten hatte ich auch geändert zw. den Abfragen) , Danach habe ich auch noch einen anderen Widerstand probiert zw. 5V und Data. Hier wollte ich einen 2.2K nehmen griff aber in die falsche Schachtel und baute einen 220 Ohm ein. Urplötzlich kamen alle 4 angeschlossenen Sensoren und die Werte passten auch. Ich probierte dann einen 2,2K aus... da kamen wieder Fehler. von 4 Sensoren hat er 3 ausgelesen und den 4 einfach nicht mehr, ich ging mit dem Widerstand weiter runter mit 1K war es noch am besten obwohl es auch nicht ganz 100%'ig war. Beim 220 Ohm als auch beim 1K Widerstand hatte ich trotzdem alle ca 5 Durchläufe bei den Abfragen (Wartezeit zw. jeder Einzel-Sensor-Abfrage 5 Sekunden) Siehe hier. allas Temperature IC Control Library Demo Locating devices...Found 4 devices. Parasite power is: OFF Found device 0 with address: 28720D5D05000074 Setting resolution to 9 Resolution actually set to: 9 Found device 1 with address: 28616411B270468D Setting resolution to 9 Resolution actually set to: 12 Found device 2 with address: 28616411B2763781 Setting resolution to 9 Resolution actually set to: 12 Found device 3 with address: 28616411B273415B Setting resolution to 9 Resolution actually set to: 12 Requesting temperatures...DONE Temperature for device: 0 Temp C: 23.00 Temp F: 73.40 Temperature for device: 1 Temp C: 23.37 Temp F: 74.07 Temperature for device: 2 Temp C: 24.37 Temp F: 75.87 Temperature for device: 3 Temp C: 23.69 Temp F: 74.64 Requesting temperatures...DONE Temperature for device: 0 Temp C: 23.00 Temp F: 73.40 Temperature for device: 1 Temp C: -127.00 Temp F: -196.60 Temperature for device: 2 Temp C: 24.31 Temp F: 75.76 Temperature for device: 3 Temp C: 23.69 Temp F: 74.64 Requesting temperatures...DONE Temperature for device: 0 Temp C: 23.00 Temp F: 73.40 Irgendwann bringt er dann -127 Grad wieso zicken die so rum. Das ich soweit mit dem Widerstand runter muss kann doch nicht normal sein oder?
220Ohms sind DEUTLICH zu klein! OneWire kann max. 4mA gegen Masse ziehen, also sind ~1,2k das Minimum für den Pull-Up. Bei den kurzen Kabels müssen auch 4k7 laufen. Wenn nicht, ist was faul! Ein Oszi wäre jetzt hilfreich.
Falk B. schrieb: > 220Ohms sind DEUTLICH zu klein! OneWire kann max. 4mA gegen Masse > ziehen, also sind ~1,2k das Minimum für den Pull-Up. Bei den kurzen > Kabels müssen auch 4k7 laufen. Wenn nicht, ist was faul! Ein Oszi wäre > jetzt hilfreich. eine Frage. Einen Oszi habe ich leider nicht. Kann es sein, da ich die Sensoren sehr kurz abgeschnitten habe (zum Anlöten der Drähte) das diese einen Hitzeschock erlitten ? :) und aus diesem Grund es hier zu Aussetzern kommt oder sogar das ich hier fast nur ein "sauberes" Auslesen mit 220Ohm bekomme? ich weiss das ist schwer für Euch aus der Ferne zu beurteilen aber wenn meine Verkabelung bis zum Sensor i.O. ist, die Software so vermute ich auch, es auf zwei Arduino die gleichen Effekte gibt, dann bleibt nicht mehr viel übrig... da ich die Möglichkeiten nicht habe dies durchzumessen mit einem Oszi, so muss ich ein Ausschlussverfahren machen sonst drehe ich bis Weihnachten im Kreis
@ Achim A. (achim_a) >Kann es sein, da ich die Sensoren sehr kurz abgeschnitten habe (zum >Anlöten der Drähte) das diese einen Hitzeschock erlitten ? :) Sehr unwahrscheinlich, heutige ICs bekommt man mit Löten kaum kaputt. >und aus diesem Grund es hier zu Aussetzern kommt oder sogar das ich hier >fast nur ein "sauberes" Auslesen mit 220Ohm bekomme? Nein.
Falk B. schrieb: > @ Achim A. (achim_a) > >>Kann es sein, da ich die Sensoren sehr kurz abgeschnitten habe (zum >>Anlöten der Drähte) das diese einen Hitzeschock erlitten ? :) > > Sehr unwahrscheinlich, heutige ICs bekommt man mit Löten kaum kaputt. > >>und aus diesem Grund es hier zu Aussetzern kommt oder sogar das ich hier >>fast nur ein "sauberes" Auslesen mit 220Ohm bekomme? > > Nein. ok, da ich meine Kontakte die ich gelötet habe mehrmals geprüft habe, auch im Sketch den vor mir bestimmt 1000 andere auch schon nutzen da in der Bibliothek dabei,ich aber auch in diesem Beispiel-Programmen die Wartezeiten nach oben und unten setze, die Sensoren wohl ok sind, kann es eigentlich nur noch das Kabel sein, die Pfostenverbinder (hier wurden die Sensoren aufgelötet und die Buchsen worden mit dem geschirmten Brandmeldekabel verlötet). Ich habe nämlich als ich die einfachen dünnen Schaltdrähte nahm, mit denen ich erstmal getestet habe den gleichen Effekt gehabt, absolut gleich. Das neue abgeschirmte Kabel hat nicht im geringsten was geändert. Ich vermute daher das dieses Brandmeldekabel auch nicht besser ist, was aber normal nicht sein dürfte da ja geschirmt und die Adern sogar einen größeren Querschnitt haben. Keine Idee mehr?
Man könnte nochmal schrittweise alles aufbauen. 1.) Alle drei Sensoren wie beschrieben mit 4k7 als Pull Up in minimaler Drahtlänge auf Lochraster 2.) Einen Sensor ans originale Kabel 3.) Nächsten Sensor ans Kabel ... Bis alle vier Sensoren am Kabel hängen. Bei jedem Schritt das volle Testprogramm, Scannen der IDs + Temperatur auslesen in Dauerschleife für 1-3 Minuten.
Falk B. schrieb: > n Dauerschleife für 1-3 Danke ja, das wird mir wohl nicht erspart bleiben kann die Spannung am Atrduino was ausmachen? Ich habe hier bei meinem Aufbau auch ein AC/DC 220/24V/20A Netzteil mit entsprechenden Buck-Convertern mit denen ich später die Spannungen für den Arduino etc. bekomme. Ich könnte der Busleitung somit stabile 5V geben. Dann hätte ich hier auch noch Reste eines CAT7 Kabels. Das Brandmeldekabel ist mir eh zu steif (hatte es nur rumliegen) Beim Cat / hätte ich dann bestimmt keine Abschirmungsprobleme mehr außer die 5cm bei denen ich Sensoren oder Kupplungen anlöten muss. Aber so in der Reihenfolge wie Du empfohlen hast würde ich dan auch vorgehen
@ Achim A. (achim_a) >Ich habe hier bei meinem Aufbau auch ein AC/DC 220/24V/20A Netzteil mit AUA!!! Du willst doch nicht schweißen! Die 5V vom USB reichen im Normalfall vollkommen, auch wenn es nur 4,7V oder so sind. >den Arduino etc. bekomme. Ich könnte der Busleitung somit stabile 5V >geben. Kaum. Die Busleitung wird nur an die OneWire ICs, den Arduino und den Pull-Up angeschlossen, NICHT an konstante 5V! >Dann hätte ich hier auch noch Reste eines CAT7 Kabels. Meinetwegen. OneWire läuft auch mit billistem Klingeldraht. Eine Schirmung braucht man in den meisten Fällen NICHT. >Beim Cat / hätte ich dann bestimmt keine Abschirmungsprobleme mehr außer >die 5cm bei denen ich Sensoren oder Kupplungen anlöten muss. Ist in deinem jetzigen Aufbau vollkommmen egal.
@TO Lies mal hier http://www.fuchs-shop.com/de/ das FAQ zu 1-Wire. Dann schau Dir mal dieses Projekt https://pic-projekte.de/blog/wp-content/uploads/2017/01/1-Wire-Projekt-V1_3.pdf an und programmiere das erst mal als Basis nach. Wenn Du das verstanden hast und erfolgreich probiert hast, solltest Du die Grundlagen soweit verstanden haben das, Du dann Deine eigene 1-Wire-Lib kreieren kannst. Ich habe das so gemacht und dann meinen eigenen Code geschrieben. Die Maxim Libs habe ich nicht benutzt - man braucht sie auch nicht.
@Zeno (Gast) >Lies mal hier http://www.fuchs-shop.com/de/ das FAQ zu 1-Wire. Nett, aber >Wenn Du das verstanden hast und erfolgreich probiert hast, solltest Du >die Grundlagen soweit verstanden haben das, Du dann Deine eigene >1-Wire-Lib kreieren kannst. Das will er gar nicht, sondern er nutzt eine vorhandene, und vermutlich recht stabile Arduino-Lib. >Ich habe das so gemacht und dann meinen eigenen Code geschrieben. Die >Maxim Libs habe ich nicht benutzt - man braucht sie auch nicht. Jaja. https://de.wikipedia.org/wiki/Not-invented-here-Syndrom
Zeno schrieb: > Ich habe das so gemacht und dann meinen eigenen Code geschrieben. Die > Maxim Libs habe ich nicht benutzt - man braucht sie auch nicht. Der nächste logische Schritt wäre dann, dass du die Sensoren selber baust.
Falk B. schrieb: > in deinem jetzigen Aufbau vo an dem Netzteil hängen schon noch andere Verbraucher dran. ok, dann lass ich die Sensoren einfach am Mega ihren Strom ziehen, ist ja nicht viel. das mit dem Klingeldraht und der für meine paar Meter nicht benötigter Abschirmung erklärt dann auch das es zuvor als ich auch schon so einen ungeschirmten Draht nahm auch nicht funktionierte zumindest als alle dran hingen. Gut da war es ein Stern-System aber auch dies hätte wohl die max 2 Meter schaffen sollen so wie ich das nun verstehe Danke für die Info das beruhigt mich und schließt für mich einen weiteren Fehler aus ich baue jetzt nochmal alles von neuem auf step by step und fange am Steckbrett an und auch beim Klingeldraht dann hänge ich erst einen Sensor nach dem anderen hin und lass zw. jedem Step einige Programme durchlaufen
Wenn du neu verdrahtest, kannst du jede Stichleitung auch 4 adrig machen, 5V, Masse, Daten hin zum DS, Daten zurück, d.h die Datenleitung vom Haupstrang wird bei jeder Abzweigung unterbrochen und über den DS geführt. Strom ganz normal. Dann muss es aber gehen, weil für die Daten sich das als ein langer Draht darstellt. Egal ob die Stichleitung 5 cm oder 30 Meter lang ist oder alles wie ein Stern aussieht... 4 adriges Drahtzeug gibts recht günstig. Haben wir hier tlws auch so gemacht, hat seine Vorteile, allerdings wird die Datenleitung länger als man sieht. Wir haben auch dickes Erdkabel tief in der Erde missbraucht. Geht auch. Von wegen dicke Kabel seien das Problem..
Ich habe auch ein paar 18B20 im Einsatz im ganzen haus und im Außenbereich verteil da ist NIX abgeschirmt nur mit einer 5,1 Z Diode gegen Überspannung gesichert. Als widerstand habe ich auch irgendwas um die 2,5 -3 KOhm genutzt. Das problem ist aber das der 18B20 Normal im 12 Bit läuft welches eine warte zeit von 750 ms verlangt. ein abändern in 9 Bit ist leider nicht so ohne weiteres möglich. Werden diese nicht eingehalten kommt es zu Fehler im auslesen oder ganz zum versagen. Auch würde ich die Sensoren mit ihrer Adresse ansprechen.(vorher einzeln auslesen) Beispiel: #include <DallasTemperature.h> Setup { DeviceAddress sensor2 = { 0x28, 0xFF, 0x51, 0x60, 0x22, 0x17, 0x3, 0x3B }; char sensor2Name[] = "Stube G: "; } Loop { temp2 = getTemperature(sensor2); } void writeTimeToScratchpad(byte * address) { //reset the bus ds.reset(); //select our sensor ds.select(address); //CONVERT T function call (44h) which puts the temperature into the scratchpad ds.write(0x44, 1); //sleep a second for the write to take place delay(780); } void readTimeFromScratchpad(byte * address, byte * data) { //reset the bus ds.reset(); //select our sensor ds.select(address); //read the scratchpad (BEh) ds.write(0xBE); for (byte i18b20 = 0; i18b20 < 9; i18b20++) { data[i18b20] = ds.read(); } } float getTemperature(byte * address) { int tr; byte data[10]; writeTimeToScratchpad(address); readTimeFromScratchpad(address, data); //put in temp all the 8 bits of LSB (least significant byte) tr = data[0]; if (address[0] == 0x10) // DS18B20 { //check for negative temperature if (data[1] > 0x80) //drop bit 0 tr = tr >> 1; //COUNT PER Celsius degree (10h) int cpc = data[7]; //COUNT REMAIN (0Ch) int cr = data[6]; return tr - (float)0.25 + (cpc - cr) / (float)cpc; } else // DS18B20 { return ((data[1] << 8) + tr) * (float)0.0625; } } habe ich mal aus meiner Haussteuerung raus gerissen die code teile.
:
Bearbeitet durch User
bastel_ schrieb: > Wenn du neu verdrahtest, kannst du jede Stichleitung auch 4 adrig > machen, 5V, Masse, Daten hin zum DS, Daten zurück, d.h die Datenleitung > vom Haupstrang wird bei jeder Abzweigung unterbrochen und über den DS > geführt. Strom ganz normal. Dann muss es aber gehen, weil für die Daten > sich das als ein langer Draht darstellt. Egal ob die Stichleitung 5 cm > oder 30 Meter lang ist oder alles wie ein Stern aussieht... 4 adriges > Drahtzeug gibts recht günstig. das ist gut. Leuchtet mir ein. so läuft der Bus zwingend am DS vorbei. Hab dann nur noch die Mini-Strecke vom 1cm Pfosten des DS an dem dann wieder die Rückleitung bzw. die Datenleitung zum nächsten DS geführt wird. Klingt gut. Danke
DAVID -. schrieb: > Das problem ist aber das der 18B20 Normal im 12 Bit läuft welches eine > warte zeit von 750 ms verlangt. > ein abändern in 9 Bit ist leider nicht so ohne weiteres möglich. > Werden diese nicht eingehalten kommt es zu Fehler im auslesen oder ganz > zum versagen. Hallo ja das mit der Wartezeit hörte ich nun immer wieder hier. In der Lib ist ja ein Beispielprogramm "Tester" dort steht // function to print the temperature for a device void printTemperature(DeviceAddress deviceAddress) { // method 1 - slower //Serial.print("Temp C: "); //Serial.print(sensors.getTempC(deviceAddress)); //Serial.print(" Temp F: "); //Serial.print(sensors.getTempF(deviceAddress)); // Makes a second call to getTempC and then converts to Fahrenheit // method 2 - faster float tempC = sensors.getTempC(deviceAddress); Serial.print("Temp C: "); Serial.print(tempC); Serial.print(" Temp F: "); Serial.println(DallasTemperature::toFahrenheit(tempC)); // Converts tempC to Fahrenheit } normal müsste ich ja nur die Method 1 nehmen oder? anscheinend ist so eine Wartezeit schon in der Lib vorgesehen
Achim A. schrieb: > Beim 220 Ohm als auch beim 1K Widerstand hatte ich trotzdem alle ca 5 > Durchläufe bei den Abfragen (Wartezeit zw. jeder Einzel-Sensor-Abfrage 5 > Sekunden) Laß den Pullup bei 2,2kΩ. Die 47..220Ω gehören in Reihe zum AVR. Es sind die Reflexionen, die den 1-Wire stören. Man kann auch die Länge des Startpulses beim Lesen variieren (min 1µs) und möglichst nahe an den 15µs ran lesen. Ich hab aber noch keine Experimente gemacht, was besser ist.
Achim A. schrieb: > das mit dem Klingeldraht und der für meine paar Meter nicht benötigter > Abschirmung erklärt dann auch das es zuvor als ich auch schon so einen > ungeschirmten Draht nahm auch nicht funktionierte zumindest als alle > dran hingen. Gut da war es ein Stern-System aber auch dies hätte wohl > die max 2 > Meter schaffen sollen so wie ich das nun verstehe ich habe hier am AVR NETIO 72m gemischte Stern-Bus-Verkabelung und 6 Sensoren mit 1,5k, zu Anfang 2,2k die nach 1 Jahr nicht mehr liefen, dann zu 1,5k gewechselt und nun läufts wieder. ich habe parasitäre Speisung und immer ein freies Adernpaar aus den Telefonleitungen in jedes Zimmer. Die DS18B20 sind in der Telefondose mit Wago 221 Klemmen an die Telefondrähte (etwas isolierter Schaltdraht an die Beinchen, ca 10cm) geklipst und schauen unter der Telefondose mit dem Köpfchen raus. Ein Sensor ist gerade wegen Renovierung abgeklemmt. Schnitt 77°C ist noch in der SW Bearbeitung, Wohnzimmer hat 2 Sensoren Warmwand & Kaltwand
:
Bearbeitet durch User
Achim A. schrieb: > Ich habe hier bei meinem Aufbau auch ein AC/DC 220/24V/20A Netzteil Hast du an den 24V irgendeine nennenswerte Last? Mit einem nahezu unbelasteten 24V Netzteil hatte ich Probleme mit Störungen eines Audioverstärkers. Eine 24V Birne hat dann Abhife geschaffen.
Joachim B. schrieb: > ich habe hier am AVR NETIO 72m gemischte Stern-Bus-Verkabelung und 6 > Sensoren mit 1,5k, zu Anfang 2,2k die nach 1 Jahr nicht mehr liefen, > dann zu 1,5k gewechselt und nun läufts wieder. ich habe parasitäre > Speisung und immer ein freies Adernpaar aus den Telefonleitungen in > jedes Zimmer. Dann solltest du eventuell mal über das im Datenblatt im Abschnitt "POWERING THE DS18B20" mit der gezielten Versorgung über den zusätzlichen FET während Wandlung und EEPROM Kopieraktionen nachdenken.
Wolfgang schrieb: > Dann solltest du eventuell mal über das im Datenblatt im Abschnitt > "POWERING THE DS18B20" mit der gezielten Versorgung über den > zusätzlichen FET während Wandlung und EEPROM Kopieraktionen nachdenken. warum, es läuft und ich habe viele Baustellen! Wenn du was beizutragen hast, gerne etwas ausführlicher, ich werde es mir später durchlesen. (Spruch von einem Chef)
Einhart P. schrieb: > Achim A. schrieb: >> Ich habe hier bei meinem Aufbau auch ein AC/DC 220/24V/20A Netzteil > > Hast du an den 24V irgendeine nennenswerte Last? Mit einem nahezu > unbelasteten 24V Netzteil hatte ich Probleme mit Störungen eines > Audioverstärkers. Eine 24V Birne hat dann Abhife geschaffen. ups, aktuell habe ich auf dem Netzteil KEINE Last, später jedoch schon. aha, okay das ist ein Billignetzteil aus China. Hoffte eben das es keinen großen Unterschied zu MeanWell & Co hat. Trotzdem, mein letzter Versuch bei dem wieder die Fehler aufgetreten sind war an einem anderen Arduino-Mega2560 und dieser war nicht in der Nähe des Netzteils bzw., das Netzteil war aus und der Mega hing direkt über USB am PC. Die Spannung für die Sensoren kam also direkt von dem 5V_pin des Arduinos
@Joachim B. (jar) >> Dann solltest du eventuell mal über das im Datenblatt im Abschnitt >> "POWERING THE DS18B20" mit der gezielten Versorgung über den >> zusätzlichen FET während Wandlung und EEPROM Kopieraktionen nachdenken. >warum, es läuft und ich habe viele Baustellen! Jaja, "nobody cares how ist works as Long as it work." Der Teilnehmer will dir wohl sagen, daß du vermutlich ein systematisches Problem hast, das bisher durch Zufall kaschiert wurde. >Wenn du was beizutragen hast, gerne etwas ausführlicher, ich werde es >mir später durchlesen. (Spruch von einem Chef) Die DS18x20 brauchen während der Wandlung der Temperatur mehr Strom, als die einfache, parasitäre Versorgung liefern kann. "In parasite power mode, the 1-Wire bus and CPP can provide sufficient current to the DS18B20 for most operations as long as the specified timing and voltage requirements are met (see the DC Electrical Characteristics and AC Electrical Characteristics). However, when the DS18B20 is performing temperature conversions or copying data from the scratchpad memory to EEPROM, the operating current can be as high as 1.5mA. This current can cause an unacceptable voltage drop across the weak 1-Wire pullup resistor and is more current than can be supplied by CPP. To assure that the S18B20 has sufficient supply current, it is necessary to provide a strong pullup on the 1-Wire bus whenever temperature conversions are taking place or data is being copied from the scratchpad to EEPROM. This can be accomplished by using a MOSFET to pull the bus directly to the rail as shown in Figure 4. The 1-Wire bus must be switched to the strong pullup within 10μs (max) after a Convert T [44h] or Copy Scratchpad [48h] command is issued, and the bus must be held high by the pullup for the duration of the conversion (tCONV) or data transfer (tWR = 10ms). No other activity can take place on the 1-Wire bus while the pullup is enabled." Das macht meine Lib direkt mit dem AVR-IO Pin, das reicht für ne Handvoll mA.
@ Achim A. (achim_a) >ups, aktuell habe ich auf dem Netzteil KEINE Last, später jedoch schon. >aha, okay das ist ein Billignetzteil aus China. Hoffte eben das es >keinen großen Unterschied zu MeanWell & Co hat. Wenn das mal kein Irrtum ist! Je nach Wetterlage und "Marke" kann so ein Ding bei falscher Last, Verkabelung und Erdung satte Gleichtaktstörungen ausspucken, welche empfindliche ICs deutlich stören können. Das hatte ich bei OneWire auch schon mal! Lösung. Saubere Erdung am Ausgang des Netzteil (Masse mit PE verbinden). Oder gleich ein besseres Netzteil verwenden. Mach deinen Test erstmal nur mit USB-Versorgung, für OneWire reicht das.
Falk B. schrieb: > Der Teilnehmer will dir wohl sagen, daß du vermutlich ein systematisches > Problem hast, das bisher durch Zufall kaschiert wurde. > > Die DS18x20 brauchen während der Wandlung der Temperatur mehr Strom, als > die einfache, parasitäre Versorgung liefern kann. hmmm 1 Jahr lief es mit 2,2k, natürlich mit CRC Prüfung und Prüfung auf Bus Error und Plausibilität zwischen 2 Messungen, dann irgendwann, ich tippe auf Arbeitspunktverschiebung der Sensoren ("run in") eben nicht mehr. Nach wechsel auf 1,5k läuft seit Jahren nun stabil zumal ich die Zeiten zwischen 2 Auslesungen einhalte mit 1 Sekunde >750ms. https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf Seite 1 the DS18B20 can derive power directly from the data line (“parasite power”) Klar kann man immer behaupten das da noch Fehler drin sind in meiner Anschaltung und Software aber wenn ic die nicht bemerke und an den Messungen nichts auszusetzen habe wonach soll ich suchen? Bedenke das entstand 2008 und läuft seit dem! länger als jeder Raspi und ganz zu schweigen von einem ESP32. Ich wollte ja "nur" aus der Ferne (Fernreisen im Winter) meine Temperaturen überwachen, später noch eingreifen die Thermostaten aufdrehen aber zum "Anfunken" der Köpfe bin ich noch nicht gekommen, nun mit den DECT Heizkörperthermostatköpfen ist das wieder greifbar nah.
:
Bearbeitet durch User
@Joachim B. (jar) >https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf >Seite 1 >the DS18B20 can derive power >directly from the data line (“parasite power”) Aber nicht in ALLEN Betriebszuständen. Kleingedrucktes und so. >Klar kann man immer behaupten das da noch Fehler drin sind in meiner >Anschaltung und Software aber wenn ic die nicht bemerke und an den >Messungen nichts auszusetzen habe wonach soll ich suchen? Du hast genügend Hinweise bekommen. >Bedenke das entstand 2008 und läuft seit dem! länger als jeder Raspi und >ganz zu schweigen von einem ESP32. Supi!
Joachim B. schrieb: > Wenn du was beizutragen hast, gerne etwas ausführlicher, ich werde es > mir später durchlesen. Kannst du haben (Copy & Paste aus dem Datenblatt des DS18B20): POWERING THE DS18B20 ... In parasite power mode, the 1-Wire bus and CPP can provide sufficient current to the DS18B20 for most operations as long as the specified timing and voltage requirements are met (see the DC Electrical Characteristics and AC Electrical Characteristics). However, when the DS18B20 is performing temperature conversions or copying data from the scratchpad memory to EEPROM, the operating current can be as high as 1.5mA. This current can cause an unacceptable voltage drop across the weak 1-Wire pullup resistor and is more current than can be supplied by CPP. To assure that the DS18B20 has sufficient supply current, it is necessary to provide a strong pullup on the 1-Wire bus whenever temperature conversions are taking place or data is being copied from the scratchpad to EEPROM. This can be accomplished by using a MOSFET to pull the bus directly to the rail as shown in Figure 4. The 1-Wire bus must be switched to the strong pullup within 10μs (max) after a Convert T [44h] or Copy Scratchpad [48h] command is issued, and the bus must be held high by the pullup for the duration of the conversion (tCONV) or data transfer (tWR = 10ms). No other activity can take place on the 1-Wire bus while the pullup is enabled. The DS18B20
Müsste man den Sensoren zwischen den Abfragen nicht mehr Zeit einräumen, um den interen Kondensatoren wieder aufzuladen? Nur so eine Idee...
BlaBla schrieb: > Müsste man den Sensoren zwischen den Abfragen nicht mehr Zeit einräumen, > um den interen Kondensatoren wieder aufzuladen? Nur so eine Idee... ja und das mache ich doch
Wolfgang schrieb: > Kannst du haben (Copy & Paste aus dem Datenblatt des DS18B20): danke, aber nix neues, jedenfalls bei mir hier, es funzt.
Zur Fehlersuche ist es immer besser, die Dallas mit +5V zu versorgen (kein parasite power). Wenn es damit zuverlässig läuft, kann man die 5V wegklemmen, aber aufpassen, damit die Sensoren sicher erkennen, dass Parasite power angesagt ist, muss man den Vcc Pin auf Gnd legen! Nicht einfach offen lassen.
Achim A. schrieb: > die Mini-St DAVID -. schrieb: > Ich habe auch ein paar 18B20 im Einsatz im ganzen haus und im > Außenbereich verteil da ist NIX abgeschirmt nur mit einer 5,1 Z Diode > gegen Überspannung gesichert. Hallo ich drehe hier bald durch. Ich hab es jetzt von Anfang an nochmal durchgetestet. Sobald ein 18B20 am Kabel hängt geht er nicht mehr das gibts doch nicht hier das was ich machte 1) alle nochmals entlötet, auf's Steckbrett OneWireSearch, etc, und einige andere Programme der DallasTemperature.h laufen lassen alles 1a, geht alles easy 2) da ich noch einen Rest eines CAT7 Kabels hier habe und dachte gut da ist alles abgeschirmt und vielleicht brauche ich mal einen anderen zusätzlichen Draht habe ich einen Ds18B20 an das Ende des Cat-kabels gehängt was die leichteste Übung sein sollte ca lausige 8m gefühlte 1000mal auf Durchgang udn Kurzschluss gebprüft, OneWireSearch laufen lassen 0,0 findet er Das kann doch nicht sein
Wie schon geschrieben wurde ist auch bei zig Metern im Stern die Qualität der Leitung nicht so arg entscheidend. Auch ein Mix aus 3poligem Flachbandkabel (drinnen) und Antennenkabel (draussen) funktioniert, vielleicht 1x täglich CRC-Fehler. Mit 100 Ohm Serienwiderstand am AVR, schont Flanke und EMV.
Naja wäre es möglich einen kleinen Kondensator (10-47µF noch zu test zwecken am 18b20 anzulöten? Und oder noch direkt auch zum testen einen widerstand so um die 10K noch an jeden Sensor anzubringen ? um aus zu schlissen das es ein Versorgungsproblem ist ?
:
Bearbeitet durch User
DAVID -. schrieb: > Naja wäre es möglich einen kleinen Kondensator (10-47µF noch zu test > zwecken am 18b20 anzulöten? Bei parasitärem Betrieb funktioniert dann garantiert nichts mehr. Und bei separat versorgtem Betrieb wird er nicht schaden, aber recht wahrscheinlich auch nichts nützen. Die Dinger sind für parasitären Betrieb gebaut, haben deshalb einen Kondensator für die Versorgung bereits eingebaut. Denn bei 0V auf der Leitung kommt ja nix.
A. K. schrieb: > ie schon geschrieben wurde ist auch bei zig Metern im Stern die > Qualität der Leitung nicht so arg entscheidend. Auch ein Mix aus > 3poligem Flachbandkabel (drinnen) und Antennenkabel (draussen) > funktioniert, vielleicht 1x täglich CRC-Fehler. Mit 100 Ohm > Serienwiderstand am AVR, schont Flanke und EMV. Hallo kannst du mir das bitte erklären wo ich diuesen 100Ohm Widerstand einbauen muss... ich vermute in Reihe bei der Datenleitung oder und zwar genau am AVR? Jetzt bitte noch eine andere Frage gerade wurde mal das Wort"Versorgungsproblem" eingeworfen Ich kenne Eure Aussagen und auch im Netz habe ich von sehr weiten Strecken (100m) gelesen... AAAber...ich weiss nicht welche AVR's diese und Du benutzt. Ich verwende hier Arduino Clones und habe vom Saintsmart Mega259, über Cina-Clone.Mega2560 und UNO-Clone alles rumliegen aber eben nur Clones Meine ganzen Tests die ich machte lassen fast diese Möglichkeit nur noch zu 1) auf dem Steckbrett geht alles 1a 2) mache ich eine Sternschaltung mit 3 Sensoren und billigen 0,8'er Schaltdrähten zw. 0,5m und 2m so gehen 3 Sensoren 4 da muss ich schon mit 2,2 Kohm Pull-Up spielen 5 gehen gar nicht mehr 3) 1 sensor an einem CAT7 kabel mit 8m geht auch nicht Jetzt habe ich mir soeben mal 12m 2x2x0,6 abgeschirmte Klingelleitung geholt ich vermute das geht auch nicht Ich habe weder einen Kurzschluss auf der Leitung noch was anderes da ich stes die Leitung auf Kurzschluss und Durchgang prüfe Einen ISZI habe ich leider auch nicht Wenn ich das mit Kondensatoren hin bekomme oder Widerständen dann bitte genau beschreiben wo diese hinkommen Vielen Dank für Eure Hilfe und Geduld
DAVID -. schrieb: > hlisse DAVID -. schrieb: > Und oder noch direkt auch zum testen einen widerstand so um die 10K noch > an jeden Sensor anzubringen ? > um aus zu schlissen das es ein Versorgungsproblem ist ? auf dem Weg in den Baumarkt zum Kaufen eines 2x2x0,6'er leitung habe ich Deine Message gelesen und ich glaube das auch langsam Die Arduinos die ich hier habe packen das ganz einfach nicht aus welchen Gründen auch immer ist deren Datenbus zu schwach Die Versorgungsspannung glaube ich kaum was kann ich machen? Ich bin fast soweit das ich jeden beschi... Sensor an einen eigenen Pin am Arduino hänge in der Hoffnung das er so die max 3 Meter Entfernung packt aber das kann es ja nicht sein ... unglaublich
Achim A. schrieb: > kannst du mir das bitte erklären wo ich diuesen 100Ohm Widerstand > einbauen muss... ich vermute in Reihe bei der Datenleitung oder und zwar > genau am AVR? Siehe Bild. Pullup-Widerstand ist 5K1. Parasitäre Versorgung der DS18x20. Ob die EMV-Schutzdioden nützlicher als die im AVR sind, weiss ich nicht. Ich hatte genug davon. Schottky wäre evtl besser. Auf die Funktion haben sie keinen Einfluss.
:
Bearbeitet durch User
In einer anderen Installation, an einem LPC2000 Controller, habe ich es dann so gemacht. Die Kabel sind hier etwas kürzer und die DS18x20 werden separat versorgt. Das ist alles nicht so sehr nach E-Technik gebaut, eher nach Gefühl.
A. K. schrieb: > Siehe Bild. Danke aber hier hast Du ja zwischen der Datenleitung Pin1 sowie VCC und GND Sperrdioden hängen und zusätzlich in der Datenleitung in Serie noch den 100Ohm Widerstand Brauche ich die Sperrdioden auch? Ich habe jetzt noch einen interessante Seite gefunden http://privatfrickler.de/188-m-616-feet-1-wire/ Hier im forum gabs schonmal so ein Problem Beitrag "OneWire Probleme mit der Leitung (Arduino)" Dort steht ==> Ich habe gar nicht so viel unternehmen müssen, um einen Temperatursensor an den 188 m Kabel zum Laufen zu bringen. Leitungsreflexionen treten mit TP-Kabel interessanterweise nicht auf, entweder passt die Impedanz des für die Tests verwendeten DS18S20 gut genug (in einem Datenblatt steht tatsächlich etwas von einem 100 Ω FET in der Endstufe) zu den 100 Ω des TP-Kabels, oder der Pull-Up-Widerstand am Leitungsende schluckt hinreichend Signal am Leitungsende. Eine Serienterminierung von 100 Ω funktioniert zwar, hat sich aber soweit nicht als nötig erwiesen. <=== heist das nun ich sollte mal probieren einen 100Ohm ans Leitungsende hängen In Deiner Schaltung ist er am leitungsanfang oder? ich vermute mittlerweile zu 99% das der Datenbus ein zu schwaches oder unsauberes Signal hat was dann bei ein paar metern komplett einbricht
Beitrag #5569846 wurde von einem Moderator gelöscht.
Achim A. schrieb: > Brauche ich die Sperrdioden auch? Auf die Funktion selbst haben die keinen Einfluss. Das sind Angst-Dioden, die parallel zu den sowieso vorhandenen Schutzdioden im AVR hängen. Da hängt genug Leitung dran, dass ich bei Gewitter lieber einen DS18x20 verrecken sehe als den AVR. Hatte ich auch schon 2x in 15 Jahren.
Ich habe für meine Sensoren welche kreuz und quer wie es grade passte angeschlossen also nix stern oder sonstwas. Und auch ich habe nur einen arduino 2560 clone. Der Chip ist eh der selbe ob Original oder china Versand. Ich verwende was ich grade in der länge hatte. Altes Telefon kabel Steuerleitungen. alles was aus echten kupfer ist und 3 oder besser 4 adern hat über die länge habe ich mir KEINEN Kopf gemacht. Ein Sensor Im Außenbereich gute 18 meter Leitung 7 Davon an der Hauswand entlang habe ich zur Sicherheit aber doch ein bissel auf Abschirmung gesetzt und mir eine Leitung wie im link verwendet geht ohne wenn und aber. Und auch hier reichte EIN widerstand nahe dem arduino. https://www.ebay.de/itm/100m-Telefonkabel-2x2x0-6-mm-4-Adern-Verlegekabel-Telefon-Kabel-Leitung-2-x-2/401453903568?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m1438.l2649 Tut mir leid wenn ich des überlesen haben sollte aber hast du mal den selben aufbau OHNE Stecker versucht ? Gut möglich das dieser probleme verursacht. Im Grunde genommen haste alles richtig gemacht. Muss an den kabel oder einer Verbindung liegen. Werden die Leitungen an den arduino angelötet oder nur gesteckt ? ich habe mit reinfach reinstecken keine guten Erfahrungen auf dauer gemacht.
Zur Software: Ich hatte für den 1-Wire Bus Code aus dem Forum verwendet. Es gab anfangs ein Problem, wenn die Leitungen zu lang wurden. Später, mit DSO bewaffnet, konnte ich die Ursache rausfinden: Nach einem Bit-Transfer hat der Code nicht explizit gewartet, bis sich der Bus wieder auf den Ruhezustand einpendelte, sondern sich darauf verlassen, dass der Code dazwischen schon langsam genug sei. Bei einigen Metern oder niedrigem AVR-Takt war das kein Problem, aber bei 16MHz und insgesamt langen Leitungen war die Zeit zwischen den Bits nicht lang genug, um die nun kapazitiv recht belastete Leitung wieder auf 5V zu ziehen.
A. K. schrieb: > in A. K. schrieb: > as sind Angst-Dioden, die parallel zu den sowieso vorhandenen > Schutzdioden im AVR hängen. Da hängt genug Leitung dran, dass ich bei > Gewitter lieber einen DS18x20 verrecken sehe als den AVR. Hatte ich auch > schon 2x in 15 Jahren Ok dann brauche ich die erstmal nicht der 100Ohm Widerstand in reihe direkt nach dem Arduino in der Datenleitung hat nix gebracht kann ich den Pull-Up mal am Arduino raußnehmen und direkt an den Sensor hängen also zw. 5V und Datenleitung
Achim A. schrieb: > kann ich den Pull-Up mal am Arduino raußnehmen und direkt an den Sensor > hängen also zw. 5V und Datenleitung Kannst du, wird aber vmtl nichts ändern.
DAVID -. schrieb: > ut mir leid wenn ich des überlesen haben sollte aber hast du mal den > selben aufbau OHNE Stecker versucht ? > Gut möglich das dieser probleme verursacht. > Im Grunde genommen haste alles richtig gemacht. > Muss an den kabel oder einer Verbindung liegen. > Werden die Leitungen an den arduino angelötet oder nur gesteckt ? > ich habe mit reinfach reinstecken keine guten Erfahrungen auf dauer das dachte ich auch schon... ich sitze nun 3 Tage an dem Mist Ich habe nun also also Stecker raußgelassen... also direkt an den Arduino das kabel drean mit Widerstand und direkt das Ende des kabels mit dem Sensor verlötet unfassbar das es NICHT geht und das bei schlappen 8 Metern wobei die 8 Meter in CAT7 Kabel ist Das was Du schreibst das habe ich jetzt auch schon mehrmals gelesen das sogar uralte Erdleitungen x-meter an Strecken überbrücken und es geht und ich habe ein Problem hier bei 8 Metern DIREKTE Verbindung von Arduino zu Sensor und ohne Kupplungen Ich habe das auch schon mit einem zweiten mega getestet... das Gleiche am Steckbrett geht alles 1a
Achim A. schrieb: > der 100 Ohm Widerstand in reihe direkt nach dem Arduino in der > Datenleitung hat nix gebracht Davon wurde auch schon oft abgeraten weil du damit die Sensoren auch kaputt machen kannst. was man noch test halber mal testen könnte wäre die warte zeit ein wenig an zuhaben. in Zeile 67 zufinden spiele mal mit andern Zeiten mal 1000- 1500 mS oder nur zum testen.
DAVID -. schrieb: > Achim A. schrieb: >> der 100 Ohm Widerstand in reihe direkt nach dem Arduino in der >> Datenleitung hat nix gebracht > > Davon wurde auch schon oft abgeraten weil du damit die Sensoren auch > kaputt machen kannst. > > was man noch test halber mal testen könnte wäre die warte zeit ein wenig > an zuhaben. > > in Zeile 67 zufinden spiele mal mit andern Zeiten mal 1000- 1500 mS oder > nur zum testen. das wäre toll wenn er bis zu Zeile 67 kommen würde der steigt schon viel früher aus if ( !ds.search(addr)) { Serial.println("No more addresses."); Serial.println(); ds.reset_search(); delay(1250); return; } ps ich habe hier mal auf 1250 die Zeit angehoben.. gleicher Effekt weil er eben keine Adresse findet
:
Bearbeitet durch User
A. K. schrieb: > Kannst du, wird aber vmtl nichts ändern. wie kann ich das Signal verstärken oder diese Flanken glätten auf dieser Seite http://privatfrickler.de/188-m-616-feet-1-wire/ geht es zwar um 188m aber er hat sie auch irgendwie hinbekommen mit Widerständen... dass ist das was ich hier noch rumliegen habe solange es keine kondensatoren sind
kannst du mal mit einen vernünftigen dmm nachmessen was für eine Spannung an den 18b20 ankommt wenn sie angesprochen werden ?
Falk B. schrieb: > Das will er gar nicht, sondern er nutzt eine vorhandene, und vermutlich > recht stabile Arduino-Lib. Der ja auch bestens funktioniert. Warum braucht er dann Hilfe? Falk B. schrieb: > Jaja Das Du hier wieder rum motzen mußt war ja wohl auch klar. Geht's auch mal ohne? my2ct schrieb: > Der nächste logische Schritt wäre dann, dass du die Sensoren selber > baust. Genau so ein Dummschwatz. So wie es aussieht haben Eure Beiträge den TO noch nicht wirklich weiter gebracht. Da ihr ja alles besser wisst wäre es ja mal an der Zeit, dem TO wirklich zu helfen. Falk B. schrieb: > und vermutlich > recht stabile Arduino-Lib. Bisher hat die Lib den TO offensichtlich nicht weiter gebracht, das aber sehr stabil. Mal die Dokumentation (von Maxim) zum Sensor lesen oder besser durcharbeiten, danach ist man durchaus in der Lage C Code zu schreiben, um mit dem Teil zu kommunizieren. Zusätzliches Studium diverser Tutorials ist aber durchaus auch hilfreich. Auf alle Fälle lernt man dabei mehr, als wenn man sich auf fertige Libs verläßt ohne diese richtig verstanden zu haben. bastel_ schrieb: > Wenn du neu verdrahtest, kannst du jede Stichleitung auch 4 adrig > machen, 5V, Masse, Daten hin zum DS, Daten zurück, d.h die Datenleitung > vom Haupstrang wird bei jeder Abzweigung unterbrochen und über den DS > geführt. Das ist völlig überflüssig. Das funktioniert auch ohne solche Klimmzüge. Ich hatte ja auch noch einen Link gepostet, wo man nachlesen kann wie man 1-Wire richtig verdrahtet. Man muß sich halt die Mühe machen mal zu lesen.
DAVID -. schrieb: > kannst du mal mit einen vernünftigen dmm nachmessen was für eine > Spannung an den 18b20 ankommt wenn sie angesprochen werden Die Spannung die am DS18B20 ankommt ist 5V... manchmal 4,9V Du meinst ich soll am Datenbus messen? wenn sie angesprochen werden?
Zeno schrieb: > Das ist völlig überflüssig. Das funktioniert auch ohne solche Klimmzüge. > Ich hatte ja auch noch einen Link gepostet, wo man nachlesen kann wie > man 1-Wire richtig verdrahtet. Man muß sich halt die Mühe machen mal zu > lesen. Hi ich bin überzeugt ich habe den Link bestimmt gelesen kannst du ihn mir bitte nochmals senden... finde ihn gerade nicht Nicht das ich ihn doch überlesen habe
Achim A. schrieb: > Du meinst ich soll am Datenbus messen? Ja und nein ich weiß ja nicht welches dmm du nutzt ob das in der Lage ist so schnell zumessen. Aber schaden kanns Woll auch nicht. Also Daten muss +5 Volt haben beim ansprechen müssen die auf fast null fallen am besten mal mit der min/max Funktion vom dmm testen. So kann man schon mal sehen ob sich überhaupt was tut ein Oszi wirrste ja nicht haben sonst hättest du das schon versucht.
:
Bearbeitet durch User
DAVID -. schrieb: > ich üb DAVID -. schrieb: > Ja und nein ich weiß ja nicht welches dmm du nutzt ob das in der Lage > ist so schnell zumessen. ich messe hier mit einem Benning MM1-3 dmm ich messe folgendes Ruhezustand beim Aufrufen mit Min-Max-Funktion 4,91V zwischen Data und GND im Ruhezustand 4,86V zwischen Data und GND 2. Durchlauf mit Min-Max-Funktion 4,89V zwischen Data und GND im Ruhezustand 4,86V zwischen Data und GND 3. Durchlauf mit Min-Max-Funktion 4,90V zwischen Data und GND im Ruhezustand 4,86V zwischen Data und GND
:
Bearbeitet durch User
@Achim A. (achim_a) >AAAber...ich weiss nicht welche AVR's diese und Du benutzt. >Ich verwende hier Arduino Clones und habe vom Saintsmart Mega259, über >Cina-Clone.Mega2560 und UNO-Clone alles rumliegen aber eben nur Clones Sollten alle funktionieren, ist ja der gleiche (originale) AVR. >2) mache ich eine Sternschaltung mit 3 Sensoren und billigen 0,8'er >Schaltdrähten zw. 0,5m und 2m so gehen 3 Sensoren Gut. >4 da muss ich schon mit 2,2 Kohm Pull-Up spielen >5 gehen gar nicht mehr Schlecht. Da stimmt was nicht. Entweder ist dein Aufbau Schrott, dein Software untauglich oder? >3) 1 sensor an einem CAT7 kabel mit 8m geht auch nicht Grundlegendes Problem. >Ich habe weder einen Kurzschluss auf der Leitung noch was anderes da ich >stes die Leitung auf Kurzschluss und Durchgang prüfe Zeig mal ein vernünftiges Bild von deinem Aufbau, vor allem den AVR und deinen Pull-Up. >Wenn ich das mit Kondensatoren hin bekomme oder Widerständen dann bitte >genau beschreiben wo diese hinkommen Man könnte 100nF an VCC/GND am Sensor machen, wenn der normal versorgt wird. Bei parasitärer Versorgung nützt das nix. Man könnte auch die oft zitierten 100 Ohm direkt zwischen AVR-Ausgang und Buskabel schalten, um ggf. Reflektionen zu dämpfen.
@Achim A. (achim_a)
>aber das kann es ja nicht sein ... unglaublich
Ich tippe auf einen fiesen Trivialfehler ;-)
@ Achim A. (achim_a) >das dachte ich auch schon... ich sitze nun 3 Tage an dem Mist >Ich habe nun also also Stecker raußgelassen... Wenn du willst, dann pack einen deiner Arduinos, alle Sensoren, die diversen Kabel in einen Karton und schick mir den Kram. Das sollte mit einem Oszi und Knoff Hoff schnell zu finden sein. Jedenfalls 10x schneller als Remote Debugging per Forum. Nur so als Angebot. Schick mir ne PM.
Falk B. schrieb: > Zeig mal ein vernünftiges Bild von deinem Aufbau, vor allem den AVR und > deinen Pull-Up. Ok das Bild mit dem Screw-shield. da drunter steckt der Saintsmart-mega auf dem Screw-shield habe ich eine Platine aufgesteckt damit ich den Bus sowie später den i2c besser anschliessen kann (die printklemmen des screw-shields sind recht klein der Pull-Up müsste zu sehen sein... ich habe noch ein Bild vom Pull-up gemacht Die Platine habe ich auch umgesteckt auf den anderen Mega... siehe bild gleicher effekt damit ich die Platine ausschliessen konnte habe ich das Kabel direkt an das Steckbrett gesteckt was mit dem Mega verbunden war gleicher Effekt ich werde jetzt gleich das Kabel direkt mit dem Mega verbinden.. also direkt in die Buchsen stecken
Falk B. schrieb: > @ Achim A. (achim_a) > >>das dachte ich auch schon... ich sitze nun 3 Tage an dem Mist >>Ich habe nun also also Stecker raußgelassen... > > Wenn du willst, dann > > pack einen deiner Arduinos, alle Sensoren, die diversen Kabel in einen > Karton und schick mir den Kram. Das sollte mit einem Oszi und Knoff Hoff > schnell zu finden sein. Jedenfalls 10x schneller als Remote Debugging > per Forum. Nur so als Angebot. Schick mir ne PM. darauf komme ich gerne zurück vielen vielen dank für das Angebot ich werde noch 1-3 tage testen und dann gehen die Sachen zu Dir inkl. Kabel
Habe noch ein Bild von der Zentrale mit dem screw-shield vergessen sorry
anbei noch ein Testaufbau jetzt hängt das Cat7 direkt am Arduino und der 4,7K (zuvor hatte ich noch mit einem 2,2K getestet) ist zwischen Data und 5V direkt angelötet Ergebnis= gleicher Mist
Wenn alle Änderungen an der Hardware nichts bringen, sollte man sich vielleicht mal der Software widmen. Auch wenn die nach Ardiuno-Manier fix und fertig getestet daherkommen sollte. Wer weiss, am Ende stimmen aufgrund irgendeines Missverständnisses die Delays nicht.
Hab jetzt nicht alles gelesen, aber wo hast du die DS18S20 gekauft? Ich hab hier auch welche von eBay, von denen tut die Hälfte auch nur bei schönem Wetter was - wenn überhaupt....
Ich hatte auch mal einen Schwung vergossener DS18S20er gekauft, mit unterschiedlich langen Kabeln dran. Funktioniert haben zwar alle, aber mit stabil unterschiedlichem Ergebnis, die kurzen Kabel anders die langen. Etwas mehr als eigentlich sein sollte. Und fragte mich auch, ob es da mittlerweile Nachbauten gibt.
A. K. schrieb: > und fertig g A. K. schrieb: > Wenn alle Änderungen an der Hardware nichts bringen, sollte man > sich > vielleicht mal der Software widmen. Auch wenn die nach Ardiuno-Manier > fix und fertig getestet daherkommen sollte. Wer weiss, am Ende stimmen > aufgrund irgendeines Missverständnisses die Delays nicht. eigentlich bräuchte ich um die Sensoren zu suchen nur die OneWire-lib mehr nicht oder?
Achim A. schrieb: > eigentlich bräuchte ich um die Sensoren zu suchen nur die OneWire-lib > mehr nicht oder? Ja, aber die kocht vielleicht auch nur mit Wasser. Ich stecke in den Arduinos nicht drin, kann deshalb nur allgemein spekulieren. Aber du wärst nicht der Erste, bei dem die reale Taktfrequenz von jener abweicht, von der die Software ausgeht. Ist doch so: Wenn man alle möglichen Fehlerursachen eliminiert hat, dann bleiben eigentlich nur die unmöglichen übrig. ;-)
:
Bearbeitet durch User
Achim A. schrieb: > eigentlich bräuchte ich um die Sensoren zu suchen nur die OneWire-lib > mehr nicht oder? naja die DallasTemperature library wird automatisch mit verwendet da diese zum umrechnen glaube sowieso gebraucht wird so fern du das nicht selber machen willst.
DAVID -. schrieb: > l na ja, ich finde ja nicht einmal ne Hardwareadresse bis zur Dallas-lib komme ich ja gar nicht ich habe jetzt das Cat7 Kabel auf 3m gekürzt selbst da findet er nix ich werde jetzt noch zwei Testst machen mit einem anderen geschirmten 2x2x0,6 Kabel und dann mit reinen 0,6'er drähten alle so um die 2-3 meter lang
Achim A. schrieb: > Hi > ich bin überzeugt ich habe den Link bestimmt gelesen > kannst du ihn mir bitte nochmals senden... finde ihn gerade nicht > Nicht das ich ihn doch überlesen habe Aber gern! http://www.fuchs-shop.com/de/howto/linkfamily/ Unter fuchs-shop.com gibt es einiges Lesenswertes durchstöbere einfach mal die Seite. Hier ist ein ganz gutes Tutorial https://pic-projekte.de/blog/wp-content/uploads/2017/01/1-Wire-Projekt-V1_3.pdf. Wenn man die dort gegebenen Hinweise beachtet und das eine oder andere mal selbst durchspielt, kommt man eigentlich recht schnell zum Ziel. Das Tutorial erklärt recht gut wie die 1-Wire Sache funktioniert. Wenn man das einmal verstanden hat, kann man die SW selbst programmieren und braucht keine Lib mehr. Es gibt auch noch mehr brauchbare Anleitungen. Einfach mal Google bemühen. Erst mal einfach anfangen und nur einen Sensor anschließen. Wenn das dann sicher funktioniert Schritt für Schritt erweitern. Dabei die Sensoren immer mit ihrer ID direkt ansprechen. Es gibt aber Befehle mit denen man alle Sensoren gleichzeitig ansprechen kann, z.B. Initialisieren, Konvertierungsprozeß anstoßen und noch einige mehr. Kann man in den Orginalunterlagen von Maxim nachlesen. Das Auslesen des Scratchpads muß dann gezielt für jeden Sensor separat erfolgen.
Achim A. schrieb: > ich habe jetzt das Cat7 Kabel auf 3m gekürzt selbst da findet er nix Nochmal: Wenn du immer an der gleichen Stelle suchst, aber nichts findest, dann such mal woanders. Vorzugsweise da, wo du bisher nicht gesucht hast.
In Beitrag "Re: DS18B20 Verkabelungs od Software Problem" haste es schon fast teste doch mal wie angesprochen das DIREKTE auflöten OHNE den pinhäder also auf der Unterseite einfach mal anlöten. Könnte man noch testen wie gesagt ich traue dem steck Verbindungen nicht.
Zeno schrieb: > das A. K. schrieb: > ochmal: Wenn du immer an der gleichen Stelle suchst, aber nichts > findest, dann such mal woanders. Vorzugsweise da, wo du bisher nicht > gesucht hast. das wäre dann an meinem PC das meine ich jetzt im ernst wenn ich den Arduino abstecke (z.B., wenn ich umbaue) dann wieder an den USB anstecke so kann es sein das er erstmal nicht gefunden wird... die arduino ide zeigt mir dann den arduino am port nicht an ziehe ich dann kurz das usb kabel und stecke es wieder rein... so zeigt er mir den Com-port wo der arduino hängt nicht das ich da ein Problem habe... das programm zum arduino läd er hoch... den seriellen monitor kann ich auch aufrufen und sehe wie das Programm läuft... nur findet er keinen sensor... wenn alles am Steckbrett hängt geht alles wunderbar mittlerweile habe ich ein anderes kabel genutzt auch so ca 3 meter.. der gleiche mist wo sollte ich jetzt noch suchen? ich verwende hier ja keine hokuspokus software sondern das standard-programm um die hardwareadresse zu lesen die nur die onewirelib verwendet
@ Achim A. (achim_a) >das Bild mit dem Screw-shield. Lass diese Wortschöpfung mal keinen Ami hören ;-) Screw it! Die Lötkünste sind ausbaufähig. https://www.mikrocontroller.net/articles/L%C3%B6ten >sowie später den i2c besser anschliessen kann (die printklemmen des >screw-shields sind recht klein Naja, ich würde sie eher als groß bezeichnen, wenn man nicht gerade Schwermaschinenschlosser ist. >Die Platine habe ich auch umgesteckt auf den anderen Mega... siehe bild >gleicher effekt >damit ich die Platine ausschliessen konnte FALSCH! Dann steck der Fehler wahrscheinlich in deinem "screw shield" ! >ich werde jetzt gleich das Kabel direkt mit dem Mega verbinden.. also >direkt in die Buchsen stecken Schreit nach Wackelkontakt.
@Achim A. (achim_a) >> vielleicht mal der Software widmen. Auch wenn die nach Ardiuno-Manier >> fix und fertig getestet daherkommen sollte. Wer weiss, am Ende stimmen >> aufgrund irgendeines Missverständnisses die Delays nicht. >eigentlich bräuchte ich um die Sensoren zu suchen nur die OneWire-lib >mehr nicht oder? Ja, aber nur wenn du SICHER sein kannst, daß alle EInstellungen in der Software stimmen. Ein Oszi wäre jetzt Gold wert.
Achim A. schrieb: > wo sollte ich jetzt noch suchen? An deinen DS18B20. Wo hast du die denn nun her? Wenn dein Arduino schon ein "Klon" ist - dann sicher auch deine DS182B20.
Zeno schrieb: > bastel_ schrieb: >> Wenn du neu verdrahtest, kannst du jede Stichleitung auch 4 adrig >> machen, 5V, Masse, Daten hin zum DS, Daten zurück, d.h die Datenleitung >> vom Haupstrang wird bei jeder Abzweigung unterbrochen und über den DS >> geführt. > Das ist völlig überflüssig. Das funktioniert auch ohne solche Klimmzüge. > Ich hatte ja auch noch einen Link gepostet, wo man nachlesen kann wie > man 1-Wire richtig verdrahtet. Man muß sich halt die Mühe machen mal zu > lesen. Du meinst sicher https://www.maximintegrated.com/en/app-notes/index.mvp/id/148 Bzw http://pdfserv.maximintegrated.com/en/an/AN148.pdf wegen Bildern. Ja das kenne ich, eine sehr sehr sehr empfehlenswerte Lektüre. Besonders die kleine Empfehlungen um das Netz zu verbessern.. Und das mit den 4 poligen ist halt am praktischten, wenn man erstmal keinen Stress will aber Abzweige > 3 Meter hat. Unter 3 Meter hat man ja normalerweise keine Probleme (man kann das mit den 4 poligen auch ja nur für die eine Stichleitung machen, die halt länger ist.) Außerdem kann man einen Master nutzen (DS2480B) den spricht man einfach seriell an. Oder DS2482-100 für I2C. Gibts dann auch mit 8 Kanälen, da kann man dann schöne Sterne bauen. Meine eingeschweißten Chinassensoren.. die gehen, verglichen mit original Maxim, aber man sieht an den Temperaturkurven, dass sie nicht so top sind. Gröber. Gibt aber auch Händler auf ebay die nen 10erpack eingeschweißt mit 1 Meter Kabel original Maxim anbieten.
@Zeno (Gast) >Das Tutorial erklärt recht gut wie die 1-Wire Sache funktioniert. Wenn >man das einmal verstanden hat, kann man die SW selbst programmieren und >braucht keine Lib mehr. Du bist und bleibst ein Schwätzer! Der OP ist im Moment nicht mal ANSETZWEISE in der Lage, sowas zu tun. Mal ganz davon abgesehen, daß man nicht jedes Mal das Fahrrad neu erfinden muss!
Im Moment tendiere ich zu einer kalten Lötstelle, so wie das alles aussieht.
Falk B. schrieb: > @ Achim A. (achim_a) > >>das Bild mit dem Screw-shield. > > Lass diese Wortschöpfung mal keinen Ami hören ;-) Screw it! > > Die Lötkünste sind ausbaufähig. > > https://www.mikrocontroller.net/articles/L%C3%B6ten > >>sowie später den i2c besser anschliessen kann (die printklemmen des >>screw-shields sind recht klein > > Naja, ich würde sie eher als groß bezeichnen, wenn man nicht gerade > Schwermaschinenschlosser ist. > >>Die Platine habe ich auch umgesteckt auf den anderen Mega... siehe bild >>gleicher effekt > >>damit ich die Platine ausschliessen konnte > > FALSCH! Dann steck der Fehler wahrscheinlich in deinem "screw shield" ! > >>ich werde jetzt gleich das Kabel direkt mit dem Mega verbinden.. also >>direkt in die Buchsen stecken > > Schreit nach Wackelkontakt. es kann nicht am screw-Shield liegen ihr wisst doch wievele Varianten ich schon getestet habe - mit screw-shield - ohne aber mit gelöteter Platine direkt auf dem mega - ohne Platine, Drähte der Sensoren direkt in den mega - einen Uno hatte ich auch schon NUR auf dem Steckbrett hat es funktioniert und zuvor am Screw-shield mit der Sternschaltung bis 3 sensoren
habe es jetzt alles wieder an das Screw-Shield gehängt wie schon beschrieben hatte ich es am Mega ohne diesem Shield und mit vielen anderen Variationen getestet Jetzt wieder am Screw-shield - 3m 0,6mm schaltdraht = Geht nicht - 0,5m 0,6mm schaltdraht = Geht ich denke das somit es NUR die Länge ist die hier das Problem macht Da ich die normale testsoftware der onewire lib nehme oder die die Testsoftware der Dallas-lib müssten nun schon 2 Software-Produkte fehlerhaft sein oder sehe ich das falsch?
Achim A. schrieb: > ich denke das somit es NUR die Länge ist die hier das Problem macht Mensch du machst es aber auch spannend :-) Das könnte man testen in dem du mal eine serielle Verbindung auf baust. Lasse die Leitungen wie sie sind auch die pins wo sie verbunden sind mache einen Software seriell Port von einen arduino zum andren über genau diese Leitung wenn Daten ankommen hast deine Verwirrung komplett. https://www.google.de/imgres?imgurl=https%3A%2F%2Fi.stack.imgur.com%2FGtjtO.png&imgrefurl=https%3A%2F%2Farduino.stackexchange.com%2Fquestions%2F32300%2Fuse-an-arduino-to-intercept-transparently-serial-communication-to-grbl&docid=R5ctHMw_YMvHfM&tbnid=LS8ss1IcQGES4M%3A&vet=10ahUKEwiX59zpl9zdAhUKY1AKHSckC4UQMwg-KAEwAQ..i&w=2238&h=1032&bih=898&biw=1653&q=arduino%20software%20serial&ved=0ahUKEwiX59zpl9zdAhUKY1AKHSckC4UQMwg-KAEwAQ&iact=mrc&uact=8 Lasse mal dem einen was senden irgend und beim andren siehst was und ob was ankommt.
:
Bearbeitet durch User
Falk B. schrieb: > Du bist und bleibst ein Schwätzer! Wenn Du das meinst dann ist das halt so. Weiter gebracht hast Du den TO auch nicht! Bis jetzt also auch nur Geschwätz. Problem ist, das der TO nicht strukturiert arbeitet und das Pferd von hinten aufzäumt. Er hat sich offensichtlich den schwierigeren Part bei der 1-Wire Geschichte angepackt. Wenn er noch nicht einmal die von mir empfohlenen Tutorials versteht, obwohl selbige wirklich leicht verständlich sind, dann wir er auch nicht die von ihm benutzte Lib verstehen. Bei mir hat die 1-Wire Sache auf Anhieb funktioniert, nachdem ich mich bei den von mir geposteten Quellen schlau gemacht habe. Deine Hardwarehinweise (und Softwarehinweise) waren ja bisher offensichtlich auch nicht zielführend und somit stellt sich die Frage wer der Schwätzer ist. Die Hardware ist auch nicht das Problem des TO. Das Problem ist die SW. Und da ist auch nicht das Problem das die Lib schlecht ist, der TO hat sie einfach nicht verstanden. Wahrscheinlich hat er die Funktionsweise des 1-Wire-Buse noch nicht mal ansatzweise verstanden. Man könnte dieses Problem leicht beheben, wenn man mal entsprechende Dokumentation studieren würde. Stattdessen wird nur ziellos herumgewurschtelt. Macht mal Euer Gewurschtel so weiter, dann haben wir noch ein paar Tage Lesestoff.
Zeno schrieb: > Erst mal einfach anfangen und nur einen Sensor anschließen. Wenn das > dann sicher funktioniert Schritt für Schritt erweitern. Dabei die > Sensoren immer mit ihrer ID direkt ansprechen. Es gibt aber Befehle mit > denen man alle Sensoren gleichzeitig ansprechen kann, z.B. > Initialisieren, Konvertierungsprozeß anstoßen und noch einige mehr. Kann > man in den Orginalunterlagen von Maxim nachlesen. Das Auslesen des > Scratchpads muß dann gezielt für jeden Sensor separat erfolgen. Hallo also Deinen ersten Link habe ich mir durchgelesen aber geholfen hat er leider nicht denn ein verdrilltes Kabel wie ein CAT7 ist schon im Test auch habe ich mit nur einem Sensor etc. angefangen weshalb soll ich mein Programm selber schreiben wenn ich Beispielprogramm die ja zum Testen gedacht sind nutzen kann Es funktioniert ja alles solange die Strecke unter 1m ist Die Kabel die ich verwende sind ok... an denen und auch an meiner verdrahtung liegt es sicherlich nicht Ich habe auch die Stromversorgung ausgeschlossen wie in deinem Link beschrieben, der Sensor bekommt seine 5V nun von einem Netzteil wobei auch von diesem der 4,7K Widerstand zu Data gezogen wurde. Mittlerweile durchs Suchen im Netz kann es aber doch an der Software liegen Es könnte somit an dne Wartezeiten liegen was mir aber von der Logik nicht begreiflich wird da dies wohl dahin gehen gemeint ist wenn es mehrere Sensoren gibt oder ich habe es falsch verstanden Wenn hier jemand einen Arduino hat und noch dazu DS18B20 sensoren an Kabel mit länger 1-2m hängen hat so wäre es sehr nett wenn er mir die Software zeigt denn mit der Standardsoftware geht es wohl nicht Bis ich mir das alles durchlese habe ich mir im Netz x-mal ein paar BME280'er gekauft, diese installiert und an I2C angeschlossen und diese doofen nicht auf längere Strecken funktionierenden Spielzeuge für die man einen Schrottbibliothek nur im Netz bekommt wandern aus dem Fenster die zeit die ich hier verblödle ist schon enorm um einen Sensor an ein 5m Kabel zu hängen wobei ich max mit 2-3 Metern leben könnte und das sollte i2c noch können Viele schreiben immer nur aber anstatt das mal einer seine funktionerende Software rausrückt und einem wirklich auf die Sprünge hilft schreibt man lieber ewig lange Messages sorry aber das muss mal gesagt werden ich bin jedem dankbar der hilft wirklich... aber ich denke wer den Thread gelesen hat der weiss das es bestimmt nicht an der verkabelung liegt oder
Achim A. schrieb: > Viele schreiben immer nur aber anstatt das mal einer seine > funktionierende Software rausrückt HUST Beitrag "Re: DS18B20 Verkabelungs od Software Problem" Setzt aber voraus das du die Sensoren vorher schon ausgelesen hast (die ID) gegen Vorschlag zeige mal was du schon hast. ich gucke mal nach einer alten Version von mir die ich dir überlasen kann. wenn ich die noch finde
DAVID -. schrieb: > HUST > Beitrag "Re: DS18B20 Verkabelungs od Software Problem" > Setzt aber voraus das du die Sensoren vorher schon ausgelesen hast (die > ID) > > gegen Vorschlag zeige mal was du schon hast. > ich gucke mal nach einer alten Version von mir die ich dir überlasen > kann. > wenn ich die noch finde sorry aber ich bin hier wirklich am abkot...mit den Mistviechern ich habe hier nur die Beispielprogramme der Dallas-lib mehr nicht die Hardwareadresse kann ich leicht auslesen... iich stecke sie ans Steckbrett und lese sie mit der Beispielsoftware OneWireSearch aus di bei OneWire-lib dabei ist wenn ich dann ein Programm habe mit dem ich mir dann anhand der hardwareadressen die Temps ziehen kann bin ich glücklich Mit den float-Werten und wie ich die auf meine gewünschte Nachkommastelle setze im Programm das weiß ich bzw. steht alles in den Beispielprogrammen wäre wirklich super von dir
Ok habe dir mal was zusammen gezimmert wo ich weiß das es geht. NICHT aufgeben ich kenne den mist geht mir oft so kannste jeden hier fragen :-) Hat ein bissel gedauert alles für dich unwichtige raus zuhauen.
:
Bearbeitet durch User
Heir der Code mit den festen Adressen den ich habe ist aber aus dem Beispiel der Dallas-lib // Include the libraries we need #include <OneWire.h> #include <DallasTemperature.h> // Data wire is plugged into port 2 on the Arduino #define ONE_WIRE_BUS 8 #define TEMPERATURE_PRECISION 9 // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); DeviceAddress TempBox1 = { 0x28, 0x61, 0x64, 0x11, 0xB0, 0x46, 0xC5, 0x2B }; DeviceAddress TempBox2 = { 0x28, 0x61, 0x64, 0x11, 0xB0, 0x65, 0x7F, 0xF3 }; DeviceAddress TempBox3 = { 0x28, 0x61, 0x64, 0x11, 0xB0, 0x43, 0xF6, 0x88 }; DeviceAddress TempBox4 = { 0x28, 0x61, 0x64, 0x11, 0xB0, 0x6B, 0xE1, 0x21 }; DeviceAddress TempBox5 = { 0x28, 0x61, 0x64, 0x11, 0xB3, 0x98, 0x84, 0x53 }; void setup(void) { // start serial port Serial.begin(9600); Serial.println("Dallas Temperature IC Control Library Demo"); // Start up the library sensors.begin(); // locate devices on the bus Serial.print("Locating devices..."); Serial.print("Found "); Serial.print(sensors.getDeviceCount(), DEC); Serial.println(" devices."); delay(2000); // report parasite power requirements Serial.print("Parasite power is: "); if (sensors.isParasitePowerMode()) Serial.println("ON"); else Serial.println("OFF"); delay(2000); // method 1: by index if (!sensors.getAddress(TempBox1, 0)) Serial.println("Unable to find address for Device 0"); if (!sensors.getAddress(TempBox2, 1)) Serial.println("Unable to find address for Device 1"); if (!sensors.getAddress(TempBox3, 2)) Serial.println("Unable to find address for Device 2"); if (!sensors.getAddress(TempBox4, 3)) Serial.println("Unable to find address for Device 3"); if (!sensors.getAddress(TempBox5, 4)) Serial.println("Unable to find address for Device 4"); delay(2000); // show the addresses we found on the bus Serial.print("Device 0 Address: "); printAddress(TempBox1); Serial.println(); delay(2000); Serial.print("Device 1 Address: "); printAddress(TempBox2); Serial.println(); delay(2000); Serial.print("Device 2 Address: "); printAddress(TempBox3); Serial.println(); delay(2000); Serial.print("Device 3 Address: "); printAddress(TempBox4); Serial.println(); delay(2000); Serial.print("Device 4 Address: "); printAddress(TempBox5); Serial.println(); delay(2000); // set the resolution to 9 bit per device sensors.setResolution(TempBox1, TEMPERATURE_PRECISION); sensors.setResolution(TempBox2, TEMPERATURE_PRECISION); sensors.setResolution(TempBox3, TEMPERATURE_PRECISION); sensors.setResolution(TempBox4, TEMPERATURE_PRECISION); sensors.setResolution(TempBox5, TEMPERATURE_PRECISION); Serial.print("Device 0 Resolution: "); Serial.print(sensors.getResolution(TempBox1), DEC); Serial.println(); delay(2000); Serial.print("Device 1 Resolution: "); Serial.print(sensors.getResolution(TempBox2), DEC); Serial.println(); delay(2000); Serial.print("Device 2 Resolution: "); Serial.print(sensors.getResolution(TempBox3), DEC); Serial.println(); delay(2000); Serial.print("Device 3 Resolution: "); Serial.print(sensors.getResolution(TempBox4), DEC); Serial.println(); delay(2000); Serial.print("Device 4 Resolution: "); Serial.print(sensors.getResolution(TempBox5), DEC); Serial.println(); delay(2000); } // function to print a device address void printAddress(DeviceAddress deviceAddress) { for (uint8_t i = 0; i < 8; i++) { // zero pad the address if necessary if (deviceAddress[i] < 16) Serial.print("0"); Serial.print(deviceAddress[i], HEX); } Serial.print("adresse gedruckt: "); delay(2000); } // function to print the temperature for a device void printTemperature(DeviceAddress deviceAddress) { float tempC = sensors.getTempC(deviceAddress); Serial.print("Temp C: "); Serial.print(tempC); Serial.print(" Temp F: "); Serial.print(DallasTemperature::toFahrenheit(tempC)); } // function to print a device's resolution void printResolution(DeviceAddress deviceAddress) { Serial.print("Resolution: "); Serial.print(sensors.getResolution(deviceAddress)); Serial.println(); } // main function to print information about a device void printData(DeviceAddress deviceAddress) { Serial.print("Device Address: "); printAddress(deviceAddress); Serial.print(" "); printTemperature(deviceAddress); Serial.println(); } /* Main function, calls the temperatures in a loop. */ void loop(void) { // call sensors.requestTemperatures() to issue a global temperature // request to all devices on the bus Serial.print("Requesting temperatures..."); sensors.requestTemperatures(); Serial.println("DONE"); // print the device information printData(TempBox1); printData(TempBox2); printData(TempBox3); printData(TempBox4); printData(TempBox5); delay(2000); Serial.println(" ende des sketches nach prindate"); }
:
Bearbeitet durch User
Für so lagen text wäre es besser das in eine txt Datei zupacken und hoch zuladen. Und ich hoffe dir kann das zusammen gezimmerte helfen sollte das auch nicht gehen dann muss ich ganz ehrlich passen.
Kann nicht einschätzen ob das relevant ist, aber: Hast du den Schirm deines Kabels auch auf der Seite des Arduino mit der Masse verbunden? Auf den Bildern sieht es nicht so aus. Was ich noch machen würde: Mit dem Multimeter im Modus Widerstandsmessung mal alle Verbindungen durchmessen (Masse, VCC und die Datenleitung). Damit meine ich: - im stromlosen Zustand - zwischen Pinheader Arduino und dem Beinchen des letzten Temperatursensor (also komplette Strecke über das Kabel und alle sonstigen passiven Bauteile (Stecker/Klemmen) auf der Strecke. PS: Was mich wundert ist, dass du dir beim Fotografieren deiner Bilder irgendwie keine Mühe gegeben hast, da kann man kaum was erkennen. Jedes, aber auch wirklich JEDES Bild ist verschwommen. Du willst doch die Hilfe. Wäre doch besser für dich gescheite Bilder zu machen, damit wir das besser beurteilen können.
statt arduino.lib mal Beitrag "DS1820, DS18B20 in C" oder "mein" AVR Code in pure C versuchen, geht auch in Arduino, da nutze ich es auch
:
Bearbeitet durch User
DAVID -. schrieb: > Ok habe dir mal was zusammen gezimmert wo ich weiß das es geht. > NICHT aufgeben ich kenne den mist geht mir oft so kannste jeden hier > fragen :-) > Hat ein bissel gedauert alles für dich unwichtige raus zuhauen. Vielen Dank ich werde das heute Abend gleich mal testen Joachim B. schrieb: > statt arduino.lib mal > Beitrag "DS1820, DS18B20 in C" > oder "mein" AVR Code in pure C versuchen, geht auch in Arduino, da nutze > ich es auch das würde mich noch mehr kirre machen Ich möchte das rein mit Deinem Code unter meiner arduino.lib versuchen so kann ich am wenigsten falsch machen Warum setzt du in void setup pinMode(13, OUTPUT); ? das bräuchte ich doch gar nicht oder?
Hallo Achim, um die Sensoren als Fehlerquelle auszuschließen würde ich dir einen garantiert gut funktionierenden zusenden. Genau den, den ich testweise an die 50 oder 100m Telefonkabelrolle gelötet habe. Er läuft dort einwandfrei als einer von 8 DS18B20 Sensoren. Foto mit dem chaotischen Aufbau anbei. Gruß Einhart
Joachim B. schrieb: > statt arduino.lib mal > Beitrag "DS1820, DS18B20 in C" > oder "mein" AVR Code in pure C versuchen, geht auch in Arduino, da nutze > ich es auch habe nun doch schon das Programm getestet ich bin wie folgt vorgegangen 1) ich habe den Sensor an mein Steckbrett gehangen und die HW-Adresse ausgelesen 2) Der Sensor wurde dann an die ca 3 Meter langen 0,6mm Schaltdrähte angelötet 3) die anderen Variablen und HW-Adressen in Deinem Programm habe ich deaktiviert 4) den Pin habe ich auf 8 setzt da dies mein Data-pin ist die Ausgabe sieht im Seriellen Monitor wie folgt aus -1032.06 -1408.06 -0.06 31.94 0.94 1023.94 511.94 159.94 -0.06 1023.94 0.94 2047.94 -0.06 0.94 -0.06 15.94 0.94 -0.06 Hier das geänderte Programm #include <DallasTemperature.h> OneWire ds(8); //pin für ds18b20 #include <Wire.h> //Speicher Temp float temp1 = 1; //float temp2 = 1; //float temp3 = 1; //float temp4 = 1; //float temp5 = 1; void setup(void) { pinMode(13, OUTPUT); Serial.begin(9600); } // HIER must du >deine< andressen eintragen // einzeln ermittel. DeviceAddress sensor1 = { 0x28, 0x61, 0x64, 0x11, 0xB0, 0x6B, 0xE1, 0x21 };//Temp //DeviceAddress sensor2 = { 0x28, 0xFF, 0x5, 0x72, 0x74, 0x16, 0x3, 0xE0 }; //DeviceAddress sensor3 = { 0x28, 0xFF, 0x2B, 0x3F, 0x73, 0x16, 0x5, 0x60 }; //DeviceAddress sensor4 = { 0x28, 0xFF, 0xC5, 0x11, 0x73, 0x16, 0x5, 0x7D }; //DeviceAddress sensor5 = { 0x28, 0xFF, 0xC, 0x68, 0x74, 0x16, 0x3, 0x30 }; //Temp char sensor1Name[] = "Temp 1: "; //char sensor2Name[] = "Temp 2: "; //char sensor3Name[] = "Temp 3: "; //char sensor4Name[] = "Temp 4: "; //char sensor5Name[] = "Temp 5: "; void loop(void) { delay(10000); digitalWrite(13, HIGH); temp1 = getTemperature(sensor1); //temp2 = getTemperature(sensor2); //temp3 = getTemperature(sensor3); //temp4 = getTemperature(sensor4); //temp5 = getTemperature(sensor5); Serial.println(temp1); //Serial.println(temp2); //Serial.println(temp3); //Serial.println(temp4); //Serial.println(temp5); digitalWrite(13, LOW); } void writeTimeToScratchpad(byte * address) { //reset the bus ds.reset(); //select our sensor ds.select(address); //CONVERT T function call (44h) which puts the temperature into the scratchpad ds.write(0x44, 1); //sleep a second for the write to take place delay(780); } void readTimeFromScratchpad(byte * address, byte * data) { //reset the bus ds.reset(); //select our sensor ds.select(address); //read the scratchpad (BEh) ds.write(0xBE); for (byte i = 0; i < 9; i++) { data[i] = ds.read(); } } float getTemperature(byte * address) { int tr; byte data[10]; writeTimeToScratchpad(address); readTimeFromScratchpad(address, data); //put in temp all the 8 bits of LSB (least significant byte) tr = data[0]; if (address[0] == 0x10) // DS18B20 { //check for negative temperature if (data[1] > 0x80) //drop bit 0 tr = tr >> 1; //COUNT PER Celsius degree (10h) int cpc = data[7]; //COUNT REMAIN (0Ch) int cr = data[6]; return tr - (float)0.25 + (cpc - cr) / (float)cpc; } else // DS18B20 { return ((data[1] << 8) + tr) * (float)0.0625; } } Die Ausgaben kann ich nicht richtig deuten, aber ich gehe davon aus das er keinen Sensor gefunden hat oder? edit: bei der Installation Deines Codes habe ich nur Deinen Code verwendet diese verwendet wohl meine Wire.h alles andere was in der zip war habe ich nicht installiert
:
Bearbeitet durch User
Einhart P. schrieb: > Hallo Achim, > um die Sensoren als Fehlerquelle auszuschließen würde ich dir einen > garantiert gut funktionierenden zusenden. Genau den, den ich testweise > an die 50 oder 100m Telefonkabelrolle gelötet habe. Er läuft dort > einwandfrei als einer von 8 DS18B20 Sensoren. Foto mit dem chaotischen > Aufbau anbei. > > Gruß > Einhart Hallo Einhart das ist sehr sher nett von Dir ich habe hier aber 15 nagelneue DS18B20 Sensoren die alle auf dem Steckbrett 1a funktionieren kann es tatsächlich sein das diese aus einer Produktion stammen wo sie nach Ü1m Probleme machen? das wäre ja der Obergau
Einhart P. schrieb: > Hallo Achim, > um die Sensoren als Fehlerquelle auszuschließen würde ich dir einen > garantiert gut funktionierenden zusenden. Genau den, den ich testweise > an die 50 oder 100m Telefonkabelrolle gelötet habe. Er läuft dort > einwandfrei als einer von 8 DS18B20 Sensoren. Foto mit dem chaotischen > Aufbau anbei. > > Gruß > Einhart Hallo Einhart das ist sehr sher nett von Dir ich habe hier aber 15 nagelneue DS18B20 Sensoren die alle auf dem Steckbrett 1a funktionieren kann es tatsächlich sein das diese aus einer Produktion stammen wo sie nach Ü1m Probleme machen? das wäre ja der Obergau alterantiv würde ich jetzt noch zum Conrad fahren und mir von diesem einen DS18B20 holen die ich kaufte stammen alle vom Makershop aus dem Netz
@Achim A. (achim_a) >ich habe hier aber 15 nagelneue DS18B20 Sensoren >die alle auf dem Steckbrett 1a funktionieren Schön. >kann es tatsächlich sein das diese aus einer Produktion stammen wo sie >nach Ü1m Probleme machen? Das ist SEHR unwahrscheinlich. Der FAchim A. (achim_a) >alterantiv würde ich jetzt noch zum Conrad fahren und mir von diesem >einen DS18B20 holen Mach mal, wenn das nicht zuviel Aufwand ist. Ich vermute mal es wird sich nichts ändern.
:
Bearbeitet durch User
Einhart P. schrieb: > Hallo Achim, > um die Sensoren als Fehlerquelle auszuschließen würde ich dir einen > garantiert gut funktionierenden zusenden. Genau den, den ich testweise > an die 50 oder 100m Telefonkabelrolle gelötet habe. Er läuft dort > einwandfrei als einer von 8 DS18B20 Sensoren. Foto mit dem chaotischen > Aufbau anbei. > > Gruß > Einhart Bei mir ist folgende Aufschrift auf dem Sensor (sorry habe keine gute kamera) DALLAS 18B20 1723C4 +158AC
Achim A. schrieb: > Bei mir ist folgende Aufschrift auf dem Sensor (sorry habe keine gute > kamera) Aufdrucken kann man viel. Wenns keine große Mühe macht würd' ich zum Conrad fahren und einfach mal einen neuen holen. Dann ist wieder eine Fehlerquelle ausgeschlossen.
Du hast doch schon einen wasserdichten Sensor. Der ist wahrscheinlich nicht aus der gleichen Charge wie die anderen. Probier es doch mal mit dem und nur dem aus. Arduino -> langes Kabel -> wasserdichter Sensor. Wenn du einen Raspberry Pi rumliegen hast, kannst du auch leicht mal mit dem prüfen ob die Sensoren und Kabelstrecke funktionieren. Der hat schon die Software zum Auslesen vom DS18B20 drauf. Ist in 5 min getestet. Habs gerade selbst probiert. Allerdings ohne langes Kabel, sondern nur mit dem Kabel am wasserdichten Sensor. Von dem was ich gelesen habe und was du schon probiert hast, kann man eigentlich noch keine Fehlerart wirklich ausschließen (Software oder Hardware [Verbindungsstörung in der Verkabelung, Sensor defekt, Versorgung]) Wegen der Versorgung: Was du noch testen könntest, wäre mal einen kleinen Kondensator 330nF oder etwas größer zwischen VCC und GND direkt am Sensor zu löten. Nicht das beim Senden der Daten die Versorgungsspannung kurzzeitig einbricht (Kabelstrecke hat ja einen gewissen Widerstand und Induktivität). Ist zwar unwahrscheinlich, aber auch noch eine Möglichkeit eine Fehlerquelle auszuschließen. Außerdem schreibst du doch, dass du die Sensoren später über ein separates Netzteil versorgst, richtig? Wo speist das dann bei dir ein: direkt am Sensor oder über dein Kabel ?. Der Minuspol des Netzteils ist aber bei deinen Tests schon mit dem GND des Arduino verbunden gewesen, oder? Das darf man allerdings nur, wenn der Minuspol des Netzteils intern galvanisch getrennt von der Erde / PE-Leiter ist und falls man den Arduino noch über USB mit dem Computer verbunden hat, sonst steigt dein USB-Controller im PC aus oder geht im schlimmsten Fall kaputt !! Sensor und Arduino brauchen ja das gleiche Massebezugspotential. Ich würde sowieso alles nur ohne separates Netzteil testen und nur die Versorgung über die USB-Schnittstelle nehmen. Das sollte ja reichen.
Timo N. schrieb: > Du hast doch schon einen wasserdichten Sensor. Der ist > wahrscheinlich > nicht aus der gleichen Charge wie die anderen. Probier es doch mal mit > dem und nur dem aus. welch Zufall ich habe hier auch noch nagelneue gefunden. hatte sie nur verlegt. Der erste Test schlug fehl. hatte ihn (den wasserdichten) aber an das lange Kabel gelötet ich werde ihn jetzt direkt dran hängen da vermute ich das er so funktioniert... er hat aber nur 1m Kabel dran Frage: die wasserdichten sensoren (die neuen) die ich habe, stammen auch aus china, haben aber statt dem gelben Draht einen blauen also Rot-Blau-schwarz ich vermute das der blaue data ist ... korrekt? Eine Beschreibung finde ich dazu leider nirgends nur von denen mit dem gelben Draht > > Arduino -> langes Kabel -> wasserdichter Sensor. > > Wenn du einen Raspberry Pi rumliegen hast, kannst du auch leicht mal mit > dem prüfen ob die Sensoren und Kabelstrecke funktionieren. Der hat schon > die Software zum Auslesen vom DS18B20 drauf. Ist in 5 min getestet. Habs > gerade selbst probiert. Allerdings ohne langes Kabel, sondern nur mit > dem Kabel am wasserdichten Sensor. habe ich auch hier... habe aber dort nur ne abgespeckte webserver-installation drauf... die Idee ist aber sehr gut das könnte ich noch testen > > Von dem was ich gelesen habe und was du schon probiert hast, kann man > eigentlich noch keine Fehlerart wirklich ausschließen (Software oder > Hardware [Verbindungsstörung in der Verkabelung, Sensor defekt, > Versorgung]) > > Wegen der Versorgung: > Was du noch testen könntest, wäre mal einen kleinen Kondensator 330nF > oder etwas größer zwischen VCC und GND direkt am Sensor zu löten. Nicht > das beim Senden der Daten die Versorgungsspannung kurzzeitig einbricht > (Kabelstrecke hat ja einen gewissen Widerstand und Induktivität). Ist > zwar unwahrscheinlich, aber auch noch eine Möglichkeit eine Fehlerquelle > auszuschließen. Ja, ich hatte gestern das Thema hier schon mal . Versorgung. Da hier aber user auch mit Arduino und längeren Strecken arbeiten dachte/denke ich gerade an ein anderes Problem was bei mir doch auftreten könnte bis dato habe ich NUR die PIN 8 und 2 probiert. Auch auf dem Uno. Das sind aber u.a. PWM-pins und ich glaube mal gelesen zu haben das es beim Arduino Unterschiede in der Taktfrequenz den MHZ bei den einzelnen Pin's gibt könnte das ein Problem sein? da ich nämlich mittlerweile hier eine funktionierende Software habe die mir ein Arduino-User spendiert hat und die mit millis etc arbeitet also Wartezeiten, diese Software auch den DS18B20 und der Leitungsstrecke funktioniert Die Verdrahtung es wohl nicht sein kann (ist fast zu 99% auszuschliessen sonst hätte es nachdem 20'ten test ürgendwann mal funktionieren müssen da ja die kurzen Strecken ca 50cm funktionieren) bleibt nicht mehr viel übrig ok... 330nF kondensator am sensor zw VCC und GND... muss den schnell vom conrad holen wenn es damit funktionieren sollte dann wüsste ich wahrscheinlich das die Power des Arduino doch nicht ausreicht... oder es an meinem Pin2 oder pin8 liegt ( da es ja bei anderen usern die aber pin40 oder 50 nutzen geht) > > Außerdem schreibst du doch, dass du die Sensoren später über ein > separates Netzteil versorgst, richtig? Wo speist das dann bei dir ein: > direkt am Sensor oder über dein Kabel ?. Über das Kabel ich dachte an ein Versorgungsproblem da wenn ich einige sensoren drüber laufen lasse, vielleicht später noch ein, zwei OLED's usw. das mir dann er Saft ausgehen könnte deswegen dachte ich an diese Lösung das ich so viel als möglich Strom-Last vom Arduino abnehme > Der Minuspol des Netzteils ist aber bei deinen Tests schon mit dem GND > des Arduino verbunden gewesen, oder? Klar. Ich gehe vom AC/DC 24V Netzteil zu Buck-Convrtern... dort erhalte ich je nachdem zw.3,3V 5V , 9V und 12V (12 Volt brauche ich für ein relais-Brett) natürlich geht auch GND vom Buckkonverter zum Arduino (GND ist dort ja eh durchgeschleift.) Aktuell bekommt aber der Arduino aber seinen Strom zum testen direkt vom PC also über USB. das längere USB-Kabel kann es auch nicht sein, da ich einen zweiten Mega hier habe und an diesem auch schon testete. Dieser mega hängt dann mit dem blauen kurzen USB-Kabel direkt am PC Das darf man allerdings nur, wenn > der Minuspol des Netzteils intern galvanisch getrennt von der Erde / > PE-Leiter ist das weiß ich natürlich nicht ob im netzteil eine galvanische Trennung stattfindet. bei den Billig-Buckconvertern mit sicherheit nicht !!! soeben habe ich mit dem Durchgangspprüfer am AC/DC netzteil von DC-GND zu AC-Nulleiter und AC-Schutzleiter getestet = keine Verbindung sollte so ok sein oder? Im ausgeschalteten Zustand!!! und falls man den Arduino noch über USB mit dem Computer > verbunden hat, sonst steigt dein USB-Controller im PC aus oder geht im > schlimmsten Fall kaputt !! Sensor und Arduino brauchen ja das gleiche > Massebezugspotential. Ich würde sowieso alles nur ohne separates > Netzteil testen und nur die Versorgung über die USB-Schnittstelle > nehmen. Das sollte ja reichen. habe ich schon hinter mir bzw. mache ich das die ganze zeit ich teste einen Mega hier am PC vor Ort und dann zusätzlich bei meinem Aufbau um eben alles auszuschliessen
VOILA es geht und an was hatb es gelegen? am PIN8 und am PIN2 nutze jetzt den pin 52 und habe ihn mit einem 3-meter langen Draht, nix geschirmtes am Steckbrett gestöpselt.. und am 3m Draht hängt noch ein wasserdichter Ds18B20 mit nochmals 1m ungeschirmt Billig-kabel ran und siehe da sofort hat er ihn Es liegt also an den verwendeten PIN's warum?
Wolfgang schrieb: > genhei Wolfgang schrieb: > chim A. schrieb: >> warum? > > Vielleicht bei irgendeiner Gelegenheit halb zerschossen? ok alles zurück aber mit Erfolg Folgende Situation irgend etwas brachte ich jetzt beim Test mit wasserdichten Sensoren durcheinander oder am Steckbrett gab es einen wackler so wie es aussieht sind ALLE 15 DS18B20 Sensoren vom makershop.de schrott alle wasserdichten Ds18B20 Sensoren sind ok und funktionieren an JEDEM Port auch an D-8 sowie an D50,52 etc. so ein Witz ich habe jetzt soeben nochmals 3 DS18B20 (keine wasserdichten) Sensoren am langen Kabel Cat7 getestet, keiner ging...dann habe ich die wasserdichten dran gemacht... zusätzlich also nochmals 1m kabel... alle funktionieren 1a Wie kann das sein? kann es sein das es eine Produktion gibt bei denen sowas vorkommt was kann ich machen... das ist nun schon min 6 Monate her das ich die kaufte... aber die Frage der Fragen wo kauft man nun DS18B20 Sensoren zum akzeptablen Preis Conrad verlangt a Ü4,-€/Stck ich hätte noch DigiKey https://www.digikey.de/product-detail/de/maxim-integrated/DS18B20%2B/DS18B20%2B-ND/956983?utm_adgroup=Sensors%2C+Transducers&mkwid=s9DJRlUNl&pcrid=239020661731&pkw=&pmt=&pdv=c&productid=956983&slid=&gclid=CjwKCAjworfdBRA7EiwAKX9HeMsJtKA-uGVJf-mB0sUHx4nMprn_cz20xH0Cgjr0qAfzrDuNo1-8LhoCPesQAvD_BwE dort werden sie als DS18B20+ND verkauft keine Ahnung was das für welche sind kosten aber nur 10Stck 23,-€ wenn ich nun bei Ebay zuschlage bekomme ich die für ~ 9,-€ kann das sein? oder sind das solche wie ich habe die nur am Steckbrett funktionieren und einen Anfänger wie mich zum Verzweifeln bringen bei Reichelt gibt es sie auch, sogar günstig aber die Preisunterschiede bringen mich gerade zum Grübeln was sind da die Unterschiede? wo habt ihr Eure gekauft die auf lange Strecken funktionieren?
:
Bearbeitet durch User
An diesem Kabel mit den Kupplungen habe ich jetzt 2 Wasserdichte-Sensoren angekuppelt über die Buchsen und zusätzlichem 1 Meter kabel von den sensoren Funktioniert 1a meine ganzen kabel gehen also... meine ganze Arbeit, Eure ganze Geduld und Zeit wurde gebraucht um 15 nagelneue DS18B20 Sensoren als hinterlistig defekt zu identifizieren denn alle gehen am Steckbrett tzzzz
:
Bearbeitet durch User
Achim A. schrieb: > meine ganzen kabel gehen also... meine ganze Arbeit, Eure ganze Geduld > und Zeit wurde gebraucht um 15 nagelneue DS18B20 Sensoren als > hinterlistig defekt zu identifizieren Habe ich ja gestern Abend schon geschrieben... ;) Hätte ich vom "Makershop" (ohne ihn genauer zu kennen) zwar auch nicht erwartet, aber der Preis von < 10 EUR / Stück ist auch sehr günstig. Nicht ohne Grund verkauft Reichelt die zum doppelten Preis, die funktionieren auch. Ein paar gibts kostenlos als Sample bei Maxim...
SR schrieb: > *der Preis von < 10 EUR / 10 Stück genau <10 Euro 10 Stck... habe sie gerade bei makershop alias sensus-de (ebay-account) reklamiert. Sind immerhin in D ansässig. das ist es ja, bei Reichelt sind sie auch NOCH günstig... hast du damit Erfahrung das diese über längere Strecken funktionieren ich habe keine Ahnung wieso alle auf dem Steckbrett gehen aber bei >1-2m geht nix mehr unglaublich hätte ich jetzt keine neuen wasserdichten DS18B20 sensoren gefunden hätte ich es nicht herausgefunden da Conrad diese nicht in Nürnberg vorrätig hat
SR schrieb: > *der Preis von < 10 EUR / 10 Stück ps... weisst du oder jemand hier was das bei Digikey bedeutet dort werden sie als DS18B20+ND verkauft? +ND ??? edit: hab das gerade im KNX-Forum gefunden das '+' kennzeichnet die Einhaltung bestimmter Schadstoffverordnungen, insbesondere ist die Beschichtung an den Anschlussbeinchen bleifrei. Keinerlei funktionale Unterschiede.
:
Bearbeitet durch User
Kaufe meist bei diesem Shop. Ziemlich günstig und nie Probleme gehabt: https://csd-electronics.de/ICs/Sensoren/Temperatur:::12_33_258.html?MODsid=5871tbojb7t50rf2g5tm5lhqe4
Timo N. schrieb: > Kaufe meist bei diesem Shop. Ziemlich günstig und nie Probleme gehabt: > > https://csd-electronics.de/ICs/Sensoren/Temperatur:::12_33_258.html?MODsid=5871tbojb7t50rf2g5tm5lhqe4 danke für den Link echt günstig aber wieso haben dort 2 identische Sensoren DS18B20+ 2 unterschiedliche Preise? 1,95€ und 1,59€ https://csd-electronics.de/ICs/Sensoren/Temperatur/DS18B20::2896.html?MODsid=5871tbojb7t50rf2g5tm5lhqe4 und https://csd-electronics.de/ICs/Sensoren/Temperatur/DS18S20::2897.html?MODsid=5871tbojb7t50rf2g5tm5lhqe4
DS18B20 habe ich mehrfach billig aus China bezogen - bisher hatte ich kein Problem mit den Sensoren.
Timo N. schrieb: > Einer ist DS18*B*20 und einer ist DS18*S*20. Das sind nicht die > gleichen. sorry ich sehe schon den wald vor lauter...
Einhart P. schrieb: > DS18B20 habe ich mehrfach billig aus China bezogen - bisher hatte > ich > kein Problem mit den Sensoren. ich beziehe auch viel aus china wieso hier aber alle 15 Stück hinterlistig defekt sind... keine Ahnung ok mal sehn was makershop.de sagt ich habe sie mal reklamiert
Beitrag #5571044 wurde vom Autor gelöscht.
Nicht das du bei den Nackten die Beinchen falsch anschließt? Bei den wasserdichten hat man ja Kabel mit Farben, bei den nackten Chips muss man aufpassen... Dreh mal einen um 180 Grad, vielleicht geht er dann? (Wenn nicht schon durch falsch aufstecken zerschossen...)
bastel_ schrieb: > nicht schon durch fals bastel_ schrieb: > Nicht das du bei den Nackten die Beinchen falsch anschließt? Bei den > wasserdichten hat man ja Kabel mit Farben, bei den nackten Chips muss > man aufpassen... Dreh mal einen um 180 Grad, vielleicht geht er dann? > (Wenn nicht schon durch falsch aufstecken zerschossen...) Keine Sorge nein das datenblatt und wie man die Teilchen richtig anschliesst ist mir bekannt sonst würden sie am Steckbrett nicht funktioniert haben und noch funktionieren Die Teile die ich bekommen habe sind ganz einfach hinterlistig fehlerhaft... wer denkt denn sowas das sie am Steckbrett gehen und nach 2 Metern kabel aussteigen
@Achim A. (achim_a) >meine ganzen kabel gehen also... meine ganze Arbeit, Eure ganze Geduld >und Zeit wurde gebraucht um 15 nagelneue DS18B20 Sensoren als >hinterlistig defekt zu identifizieren denn alle gehen am Steckbrett Glaub ich nicht. Schick mir die Sensoren, dann kann ich die testen und messen.
Ich habe auch gut 20 oder sogar 25 stück von diesen DS18B20 ebay teilen aus Fernost verbaut und hatte nie probleme. Eigentlich sind die NICHT kaputt zubekommen falsch polen ? egal werden heiß geht aber nix kaputt richtig polen und geht als wäre nix. Überspannung mit 12 volt scheinen sie nicht zu mögen laufen nach regeln auf 5 volt aber wieder sauber ohne Fehler. Ich habe bis jetzt erst einen richtig kaputt bekommen (pin abgerissen) Also ich glaube auch nicht das die Sensoren defekt sein sollen. Da stimmt noch irgend was nicht. Ehm was hat den dein Verkäufer gesagt ? das er sich nicht mehr zuständig fühlt weil du schon dran rum gelötetes hast ?
Timo N. schrieb: > Einer ist DS18*B*20 und einer ist DS18*S*20. Das sind nicht die > gleichen. Eine vernünftige Library sollte die aber anhand des 7-Bit Family Codes im ROM code auseinander halten.
DAVID -. schrieb: > Ich habe bis jetzt erst einen richtig kaputt bekommen (pin abgerissen) > Also ich glaube auch nicht das die Sensoren defekt sein sollen. > Da stimmt noch irgend was nicht. > > Ehm was hat den dein Verkäufer gesagt ? > das er sich nicht mehr zuständig fühlt weil du schon dran rum gelötetes > hast ? Makershop ist da anscheinend recht cool. Sie haben mir einen Rückschein gesendet, am Montag gehen die Teile zurück. dann bekomme ich mein Geld zurück. Jetzt kommt es: Ich machte meine Bedenken klar das ich schiss hätte wieder welche zukaufen die mir 2 Tage Nerven kosten und ich ja nicht nur 1,2 oder 3 Ausfälle hatte sondern fast alle 15 (einer funktioniert). Der Herr im Service meinte: Er empfiehlt mir sie woanders zu kaufen da sie stets den gleichen Lieferanten hätten. Du meinst was anderes das meinten hier im Forum auch auch die meisten und auch ich. Ich suchte die Fehler stets an meiner Verdrahtung, Schaltung und auch Software. Bestimmt 30 mal umgebaut. Steckbrett genutzt = geht, 50cm kabel genutzt = geht. über 1m = geht nix mehr. Cat7 kabel mit 8m und 1 Sensor am Ende = geht nix, 3m CAT7 = geht nix. 8m CAT7 + 1 wasserdichter Sensor mit 1m Billigkabel am Ende = geht wunderbar. Alte Verkabelung mit ca 2,5m Brandschutzkabel und 5 Abgängen und 5 Mikrophonkupplungen + an jeder Kupplung 5 wasserdichte DS18B20 mit 1m Billigkabel = geht einwandfrei du meinst immer noch was anderes? ich nicht, die Teile haben irgend einen Fehler Oder sind in wasserdichten DS18B20 andere Sensoren drin als in den kleinen mit den kurzen Beinchen?
:
Bearbeitet durch User
Timo N. schrieb: > Kaufe meist bei diesem Shop. Ziemlich günstig und nie Probleme gehabt: > > https://csd-electronics.de/ICs/Sensoren/Temperatur:::12_33_258.html?MODsid=5871tbojb7t50rf2g5tm5lhqe4 Hallo, hast du eine Ahnung was mit dem von Dir empfohlenen shop los ist habe vor über einer Woche dort vorrätige DS18B20 sensoren sowie andere Bauteile bestellt, Vorkasse bezahlt (da Paypal bei denen nicht funktionierte) wobei der Betrag am Dienstag vergangene Woche bestimmt drauf war und bis heute nichts gehört. auf keine mail wird geantwortet, ans telefon geht auch keiner Ist CSD Pleite? Oder driften die gerade ab? Weiß jemand ob da was faul ist? Grüße
Timo N. schrieb: > Kaufe meist bei diesem Shop. Ziemlich günstig und nie Probleme gehabt: > > https://csd-electronics.de/ICs/Sensoren/Temperatur:::12_33_258.html?MODsid=5871tbojb7t50rf2g5tm5lhqe4 Sei mal Du besser vorsichtig mit Empfehlungen zu CSD habe gerade erfahren das dort die Insolvenz läuft kann mir gerade 37,-€ wo hin schmieren
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.