Hallo ich habe folgendes Setup: Einen Arduino Mega2560 der als Slave in einem I2C Bus fungiert und über den SPI Bus 5 Thermoelemente ausliest (MAX6675). Einen Arduino Mega2560 der als Master. Folgendes Problem: Das Auslesen der Temperaturen am Slave direkt mit Serial.println(..); funktioniert sehr gut. Sobald ich jedoch den Master an den Strom stecke der über die SDA,SCL und den Ground PIN mit dem Slave verbunden ist, kriege ich ein dauerhaftes Offset von ca. -1 bis -3 C° in der Messung oder auch komplett verfälschte Messungen. Ich habe festgestellt, dass sich dieser Fehler reduziert wenn ich die Groundverbindung zwischen Master und Slave auflöse. Stecke ich danach noch SDA und SCL aus habe ich keinen Messfehler mehr. Daraus schließe ich das der I2C Bus die Messung zu beeinflussen scheint, größtenteils über den Ground. Die Frage ist wie ich das jetzt beheben soll? Der Arduino Mega hat nur zwei Groundpins wo ich einen eben für die Sensoren und den anderen für den I2C Bus benutze. Wie kann das überhaupt sein? Es kann doch nicht sein das der I2C Bus solch negative Auswirkungen hat, das macht ihn ja fast vollkommen unbrauchbar.
Nils schrieb: > Daraus schließe ich das der I2C Bus die Messung zu beeinflussen scheint, > größtenteils über den Ground. Vermutlich schließt du richtig. Das deutet aber auf ein Problem mit deiner Masseführung und/oder Stromversorgung hin, und nicht auf ein generelles Problem vom I2C. Oliver
Thermospannungen sind sehr klein, die lassen sich leicht stören. Der Anschluß sollte über geschirmte Ausgleichsleitung erfolgen, und der Sensor muß von Erde isoliert sein.
Nils schrieb: > Die Frage ist wie ich das jetzt beheben soll? Der Arduino Mega hat nur > zwei Groundpins wo ich einen eben für die Sensoren und den anderen für > den I2C Bus benutze. Ich verstehe dein Problem nicht. Deine Sensoren werden doch über den MAX6675 per I2C ausgelesen. Damit ist Sensoranachluss und I2C Anschluss doch dasselbe. Und wie soll ein I2C ohne Master funktionieren Nils schrieb: > Das Auslesen der Temperaturen am Slave direkt mit Serial.println(..); > funktioniert sehr gut. Sobald ich jedoch den Master an den Strom stecke > kriege ich ein dauerhaftes Offset Wie wäre es mit einem Schaltplan ? GND, SCL, SDA müssen natürlich verbunden sein, und wenn VCC nicht für beide derselbe ist, muss man mit Fehlströmem über die Eingangsschutzdioden rechnen.
MaWin schrieb: > Ich verstehe dein Problem nicht. genau, das fängt schon da an: MaWin schrieb: > Deine Sensoren werden doch über den MAX6675 per I2C ausgelesen. Der MAX6675 kann kein I2C nur SPI, wie er geschrieben hat. Es gab mal Zeiten, da hast Du die Fragen gelesen und Deine Antworten waren brauchbar.
Nils schrieb: > Einen Arduino Mega2560 der als Slave in einem I2C Bus fungiert und über > den SPI Bus 5 Thermoelemente ausliest (MAX6675). > > Einen Arduino Mega2560 der als Master. Also 2 Arduinos. > Ich habe festgestellt, dass sich dieser Fehler reduziert wenn ich die > Groundverbindung zwischen Master und Slave auflöse. Stecke ich danach > noch SDA und SCL aus habe ich keinen Messfehler mehr. > > Daraus schließe ich das der I2C Bus die Messung zu beeinflussen scheint, > größtenteils über den Ground. Kann sein, aber das ist eher ein Dreckeffekt eines anderen Fehlers. > Die Frage ist wie ich das jetzt beheben soll? Der Arduino Mega hat nur > zwei Groundpins wo ich einen eben für die Sensoren und den anderen für > den I2C Bus benutze. Zeig uns einen Schaltplan deines Aufbaus und aussagekräftige Bilder vom realen Aufbau. > Wie kann das überhaupt sein? Es kann doch nicht sein das der I2C Bus > solch negative Auswirkungen hat, Hat er nicht, du hast irgend ein Masseproblem. Wie sieht deine Stromversorgung aus? Billiges Steckernetzteil aus China?
Habe das Problem halbwegs einkreisen können. Es schien an einer fehlerhaften Steckverbindung zu einem der Temperatursensoren zu liegen. Ich werde jetzt eine Platine machen damit alles ohne den Kabelwust funktioniert und falls es dann nicht klappt melde ich mich nochmal. Zu: "Thermospannungen sind sehr klein, die lassen sich leicht stören. Der Anschluß sollte über geschirmte Ausgleichsleitung erfolgen, und der Sensor muß von Erde isoliert sein." Sorry ich bin kein Etechnikprofi. Was versteht man unter einer geschirmten Ausgleichsleitung und muss von Erde isoliert sein? Die Kabel sind doch alle standardmäßig mit nem Kunststoffmantel isoliert.
Nils schrieb: > Ich werde jetzt eine Platine machen damit alles ohne den Kabelwust > funktioniert Na das kann ja nach den bisherigen Erfahrungen lustig werden. Nils schrieb: > und falls es dann nicht klappt melde ich mich nochmal. Es klappt sicher nicht. Kannst dich gleich melden, und das war nicht als Spässle gemeint. Aber es gibt jede Menge Leute die hauen erst mal eine ganze Menge Geld in die Tonne und erst dann lassen sie sich hier beraten.
Pete K. schrieb: > Bitte alle GND verbinden von allen Bauteilen. Und Abblock-Kondensatoren vermeiden wo es nur geht. Spart eine Menge Startkapital!
Die Stromversorgungs-Leitungen (ganz besonders GND) sollen Sternförmig auf einen Punkt zusammen laufen. Und bedenke bei Steckbrettern, dass die Blechstreifen im Innern beträchtliche Übergangswiderstände haben.
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.