Erstmal schönen Sonntag, hab folgende Frage/Problemstellung. Ich benutzte für die Feuchtigkeitsregelung bzw. das ansteuern mehrerer Lüfter einen Mega2560, der bekommt per Am2301 One-Wire Sensoren die Feuchtigskeitswerte und schaltet dann Relais auf nem "Relaisshield". Der Arduino bekommt 9v, die Sensoren 5V (Sollte so doch passen)? Leider bekomme ich ca. jede dritte Messung keine Werte. Woran kann das liegen? Die Sensoren sind teilweise etwas weiter weg. Keller->Obergeschoss... aber das dürfte kein Problem sein, oder? Die One-Wire Sensoren übertragen ja ein Digitales Signal, die Kabel sind außerdem abgeschirmt... die Sensoren arbeiten laut Datenblatt von 3.3-5.2v also kanns daran auch nicht liegen. Am Code kanns nicht liegen, hab nen einfachen Beispielcode ausm Internet genommen, da ist jede dritte Messung auch "NaN". Wenn ich den Sensor direkt an den Arduino klemme und die 5V vom Netzteil benutze funktioniert jede Messung. Ist da wirklich das Kabel zu lang? Bedanke mich schon mal im Voraus, für hilfreiche Informationen.
Keine Ahnung ob die Kabel zu lang sind. Wir kennen ja die Länge nicht. Vermutlich verursachen Störungen im Umfeld deine Messungen.
das wird sich demnächst mal angeschafft :D. Im Notfall mache ich was im Code das nur gültige Signale durchkommen... Leider kann ich die Kabel nicht mehr Neuziehen oder umlegen. Die Kabel sind so um die 10m lang würde ich jetzt schätzen.
Eine asynchrone Schnittstelle nicht differentiell über eine größere Distanz auszuführen ist immer eine schlechte Idee. Jede kleine Störung auf der Leitung sorgt dafür dass es dir die Daten zerhagelt. Am einfachsten liest du mehrmals bis die Daten stimmen (z.B. CRC) oder über eine Majoritätsentscheidung. 1Wire ist für "lange" Strecken wahrscheinlich so ziemlich das schlechteste was man machen kann. Was sagt denn das Datenblatt?
MaNi schrieb: > Eine asynchrone Schnittstelle nicht differentiell über eine größere > Distanz auszuführen ist immer eine schlechte Idee. > Jede kleine Störung auf der Leitung sorgt dafür dass es dir die Daten > zerhagelt. > > Am einfachsten liest du mehrmals bis die Daten stimmen (z.B. CRC) oder > über eine Majoritätsentscheidung. > > 1Wire ist für "lange" Strecken wahrscheinlich so ziemlich das > schlechteste was man machen kann. > Was sagt denn das Datenblatt? Okay, danke für die Antwort. Das Problem ist, dass nur drei Adern zur Verfügung stehen. Zwei davon sind ja dann ohnehin schon belegt. Oder gibts hier bessere alternativen für die Feuchtigkeits-Sensoren die nicht all zu teuer sind und nur eine Ader brauchen um die "Werte" zu übertragen. Mit CRC oder Majoritätsentscheidung habe ich mich noch nie beschäftigt, zweites maximal mal gehört... aber mal sehen was man im Netz so findet.
:
Bearbeitet durch User
Hendrik K. schrieb: > Die Sensoren sind teilweise etwas weiter weg. Keller->Obergeschoss... > aber das dürfte kein Problem sein, oder? Nun ja, das Datenblatt sprich mal von 30 und mal von 20m, wobei nicht klar ist, ob sich das auf die angeschlossene Gesamtlänge oder die Entfernung zum Sensor bezieht. > Die One-Wire Sensoren übertragen ja ein Digitales Signal, die Kabel sind > außerdem abgeschirmt... die Sensoren arbeiten laut Datenblatt von > 3.3-5.2v also kanns daran auch nicht liegen. - Welchen Wert hat der Pull-Up für SDA? Das Datenblatt empfiehlt 5.1kΩ. - Hast du einen Abblockkondensator bei jedem Sensor? - Tritt der Fehler auch auf, wenn du die anderen Sensoren abklemmst?
Wolfgang schrieb: > Hendrik K. schrieb: >> Die Sensoren sind teilweise etwas weiter weg. Keller->Obergeschoss... >> aber das dürfte kein Problem sein, oder? > > Nun ja, das Datenblatt sprich mal von 30 und mal von 20m, wobei nicht > klar ist, ob sich das auf die angeschlossene Gesamtlänge oder die > Entfernung zum Sensor bezieht. > >> Die One-Wire Sensoren übertragen ja ein Digitales Signal, die Kabel sind >> außerdem abgeschirmt... die Sensoren arbeiten laut Datenblatt von >> 3.3-5.2v also kanns daran auch nicht liegen. > > - Welchen Wert hat der Pull-Up für SDA? Das Datenblatt empfiehlt 5.1kΩ. hier 10k, ich werde es mal mit 5.1k versuchen, warum ich damals 10k genommen habe weiß ich aber auch nicht mehr genau. > - Hast du einen Abblockkondensator bei jedem Sensor? Nein, habe ich nicht. Werde ich mich aber mal drüber informieren. Habe ich bis jetzt noch garnichts von gehört. > - Tritt der Fehler auch auf, wenn du die anderen Sensoren abklemmst? Ja, der Fehler tritt auch auf wenn ein Sensor allein angeschlossen ist(Wenn das Kabel lang ist). Wenn man den Sensor direkt an den Mikrocontroller schließt passt das alles perfekt.
:
Bearbeitet durch User
Ich würde mal mit kürzeren Kabel ausprobieren ab wann das auftaucht, wenn es jetzt 10 m Kabel sind mit 5m und mit 7,5m. Die Frage ist auch ob du jeden dritten Wert brauchst und in welchem Zeitabstand die übertragen werden. Wenn du damit Zimmertemperaturen ausliest, sollte wohl ein Wert die Min ausreichen? Ich habe ein temperaturgesteuertes Fenster, das bekommt alle 30 sek einen neuen Temperaturwert, und auch das halte ich noch für zu viel.
damit werden nur die Feuchtigkeitswerte gelesen, damit nachm z.B. duschen die Abluft angeht. Also nichts was in super kleinen Abständen gelesen wird... der Mikrocontroller ignoriert jetzt einfach alle "ungültigen/falschen" Signale, dass sollte so erstmal ausreichen. Danke für die ganzen schnellen & hilfreichen Antworten.
Beitrag #6790928 wurde vom Autor gelöscht.
Hendrik K. schrieb: > ich werde es mal mit 5.1k versuchen, Hat das Erfolg gebracht.... Oder wurde die Erste und Beste Möglichkeit erfolgreich ignoriert. MaNi schrieb: > 1Wire ist für "lange" Strecken wahrscheinlich so ziemlich das > schlechteste was man machen kann. > Was sagt denn das Datenblatt? 1Wire wurde genau für solche Zwecke und Entfernungen konzipiert. Es besteht also durchaus Hoffnung das stabil zum laufen zu bekommen. Ja, bei den Kabeln könnte man sich auch etwas Mühe geben. Aber das Buch ist zu, die Kabel sind schon verlegt.
EAF schrieb: > 1Wire wurde genau für solche Zwecke und Entfernungen konzipiert. Es > besteht also durchaus Hoffnung das stabil zum laufen zu bekommen. Maxim hat eine App Note, die möglicherweise bei der Behebung dieses Problems behilflich sein könnte: https://www.maximintegrated.com/en/design/technical-documents/tutorials/4/4255.html
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.