Hallo, Ich habe eine Frage zum Arduino. Kann mir jemand sagen ob es möglich ist 10 Temperatursensoren mit einem Arduino über I2C auszuwerten? Ich habe 10 unterschiedlich große (Mini-) Gewächshäuser und möchte die Temperaturen messen und mir die Daten anzeigen lassen oder abspeichern. Ich frage mich jedoch wieviele Temperatursensoren Ich an einen Arduino verlässlich anschließen kann. Zur Information ich bin noch ein Anfänger auf dem Gebiet aber durch "Learning by doing" vertiefen ich mich in die Programmierung mit dem Arduino. Vielen Dank im voraus
Andreas schrieb: > Kann mir jemand sagen ob es möglich ist 10 Temperatursensoren mit einem > Arduino über I2C auszuwerten? Bis zu ca 100 Sensoren bei einer gesamten Kabellänge von 40cm könnten drin sitzen. Mit Multiplexern, Expandern und Extendern auch deutlich mehr. Andreas schrieb: > "Learning by doing" Das macht Zufallstreffer! Mehr nicht. Doku lesen macht Wissen und Übung macht Können. Tipp: 1. Es gibt eine Doku zu jedem Sensor 2. Zum I2C Bus 3. Zur AVR TWI Einheit. Es ist also überhaupt nicht nötig unwissend im Nebel rum zu stochern.
:
Bearbeitet durch User
Arduino F. schrieb: > Bis zu ca 100 Sensoren bei einer gesamten Kabellänge von 40cm könnten > drin sitzen. Vorausgesetzt jeder Sensor hat eine eigene I2C-Adresse. Ob 10St. Funktionieren, hängt daher von konkret verwendeten Typ ab. Mit dem Arduino hat das ganze garnichts zu tun, nur mit den Eigenheiten des I2C-Bus. - https://de.wikipedia.org/wiki/I%C2%B2C#Adressierung
Andreas schrieb: > ob es möglich ist 10 Temperatursensoren mit einem > Arduino über I2C auszuwerten? Wenn du "viele" Sensoren brauchst, nimm lieber OneWire (DS18B20)! Dann ist auch die leitungslänge unkritischer.
Arduino F. schrieb: > bei einer gesamten Kabellänge von 40cm könnten !!! Irgend W. schrieb: > Mit dem Arduino hat das ganze garnichts zu tun, > nur mit den Eigenheiten des I2C-Bus. Genau wegen dessen Eigenheiten ist I2C für diese Anwendung unpassend, siehe den Hinweis auf die Buslänge. Hier kämen DS1820 in Betracht, oder analog LM35 oder auch NTCs. Arduinofreundlich sind die DS18B20, einen Testaufbau für drei Stück konnte ich fast komplett aus dem Internet zusammenkopieren.
Vielen lieben Dank für eure informativen Antworten, das ist sehr hilfreich und zielführend! Ich fasse zusammen, es können also je nach Kabellänge deutlich mehr als 10 Sensoren über I2C verwendet werden, mit Multiplexern, Expandern und Extender sogar noch mehr. Die Anzahl der Sensoren hängt weniger vom Board ab, viel mehr vom verwendeten BUS. I2C ist in der Kabellänge begrenzt (40 cm), daher lieber ein anderes BUS Protokoll?
Andreas schrieb: > 2C ist in der Kabellänge begrenzt (40 cm) Nein, das ist weniger das Problem. I²C unterstützt auch viele Sensoren, aber nicht 100. Der größte Knackpunkt wird wohl sein, dass deine Sensoren nicht auf 100 unterschiedliche Adressen einstellbar sind. Theoretisch wäre das zwar möglich, aber alle Chips die ich so kennen unterstützen nur 8 (ganz selten 16) Adressen. Als Workaround gibt es I²C Multiplexer. Dahinter hast du mehrere I²C Busse, zwischen denen du hin und her schalten kannst. Da die Sensoren alle so dicht zusammen liegen, würde ich eher auf analoge Sensoren setzen, die ich mittels analog-Multiplexer einlese, oder in 8er Gruppen an jeweils einem mehrkanaligen ADC mit SPI Schnittstelle. Ich denke dabei an den MCP3208.
Hi, I2C ist für die Inter-IC innerhalb eines Gehäuses gedacht. Also z.B. Anbindung eines Speichers oder Displays an einen Prozessor. Daher ist das auch nicht auf lange Kabellängen ausgelegt. Der große Adressraum ist auch nicht zum Ausnutzen gedacht, sondern grob hat jeder Bauteiltyp seine Adresse und das soll im Normalfall nicht kollidieren (weil die Adressen bei den meisten Bausteinenauch nicht frei konfigurierbar sind). Für die Kommunikation ausserhalb des "Gehäuses" sind andere Bus-Systeme gedacht. Das angesprochene 1-wire wäre für Deinen UseCase vermutlich am sinnigsten, v.a. weil es da direkt kompatible Sensoren gibt (z.B. den gendannten DS18B20 - aber auch da Achtung: die meisten angebotenen sind nachbauten, welche von der Spec abweichen oder nicht so lange halten, also Tauschbarkeit vorsehen). Aber Achtung: keine Sternverkabelung machen, zur Not einen seriellen Stern (d.h. 2 Adern an die Datenleitung und damit dann durchschleifen, keine parasitäre Versorgung (unzuverlässig und wird durch einige der Nachbauten nicht unterstützt) und sauberen Pullup - dann sollte das ganz gut funktionieren (habe bei mir die Heizung so verwanzt mit ca. 50 Sensoren. Grüße Micha
I2C kann auch mit größeren Leitungslängen, als 40 cm funktionieren, es garantiert dir nur keiner. Ich habe z.B. ein LED Display mit SAA1059 an 2 Meter Kabel hängen. Das Ganze ist ein Wärmeschrank und das Display sitzt in der Tür. Ob das Ganze funktioniert, hängt von einigen Faktoren ab. Die Geschwindigkeit, mit denen die Busteilnehmer kommunizieren, die Größe der PullUps (2,2 K ist störfester und bringt mehr Reichweite, als 4,7 oder 10K) dazu, wieviele Busteilnehmer es sind und welche Art von Kabel verwendet wird. Ich hatte z.B. Cat 5E LAN Kabel genommen.
Gerald B. schrieb: > I2C kann auch mit größeren Leitungslängen, als 40 cm funktionieren, es > garantiert dir nur keiner. Immerhin sprich NXP in der Application Note AN10658 über Kabellängen von 100m. Ein bisschen Mühe geben muss man sich allerdings schon. https://www.nxp.com/docs/en/application-note/AN10658.pdf
:
Bearbeitet durch User
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.