Zwei Sensirion SHT21 am Arduino?

Hallo,

in meiner Anwendung sollen 2 SHT (innen und außen) nacheinander abgefragt werden. Meßintervall liegt bei etwa 15-30 Min.

Beim SHT21 ist die Adressierung allerdings immer gleich, so dass ich bei einer Abfrage über den I2C zwischen den beiden Sensoren nicht differenzieren kann.

Folgende Problemlösungen habe ich recherchiert und frage mich, welches die beste Variante ist?

Die von mir verwendeten SHT21 sind auf einem 5v toleranten Breakout-Board verbaut.

1. Stromversorgung der Sensoren über einen Digital Out, so dass nur der abzufragende Sensor jeweils am Strom hängt. Mind. 30ms Verzögerung müssten hier zwischen Stromversorgung ein und Auslesen eingeplant werden. Vorteil: einfach ohne weitere Bauteile zu realisieren. Nachteile: ? Taugt das, den Sensor regelmäßig ein- auszuschalten, oder schadet es der Hardware?

2. Getrennte Ansteuerung über einen I2C Bus Multiplexer. Macht allerdings ein zusätzliches Bauteil erforderlich.

3. Software I2C Bus soll auch gehen. Habe ich mich aber nicht mit befasst bisher.

Was halltet ihr für die bese Variante, oder habe ich noch etwas übersehen?

stonev: in meiner Anwendung sollen 2 SHT (innen und außen) nacheinander abgefragt werden. Meßintervall liegt bei etwa 15-30 Min.

Beim SHT21 ist die Adressierung allerdings immer gleich, so dass ich bei einer Abfrage über den I2C zwischen den beiden Sensoren nicht differenzieren kann.

Folgende Problemlösungen habe ich recherchiert und frage mich, welches die beste Variante ist?

Die von mir verwendeten SHT21 sind auf einem 5v toleranten Breakout-Board verbaut.

1. Stromversorgung der Sensoren über einen Digital Out, so dass nur der abzufragende Sensor jeweils am Strom hängt. Mind. 30ms Verzögerung müssten hier zwischen Stromversorgung ein und Auslesen eingeplant werden. Vorteil: einfach ohne weitere Bauteile zu realisieren. Nachteile: ? Taugt das, den Sensor regelmäßig ein- auszuschalten, oder schadet es der Hardware?

Was halltet ihr für die bese Variante, oder habe ich noch etwas übersehen?

Die Variante "1" sollte funktionieren, wenn du lange genug nach dem einschalten wartest, um I2C auszulesen. Aber das ist kein Problem, da du ja von einem Intervall >15 schreibst.

Ich habe dies schon mit einem anderen I2C-Baustein erfolgreich getestet.

Ein Problem erwarte ich hier nicht, da dies ja auch zum Stromsparen so praktiziert werden kann. Andernfalls sollte das im Datenblatt stehen.

Das mit dem Stromsparen ist sicher noch ein angenehmer Nebeneffekt. Ich hatte nur in einem anderen Thread gelesen, dass ständiges Ein/Aus die Bauteile stark stressen und die Lebensdauer verkürzen würde. Wenn dem nicht so ist, werde ich Variante 1 wählen.

stonev: Das mit dem Stromsparen ist sicher noch ein angenehmer Nebeneffekt. Ich hatte nur in einem anderen Thread gelesen, dass ständiges Ein/Aus die Bauteile stark stressen und die Lebensdauer verkürzen würde. Wenn dem nicht so ist, werde ich Variante 1 wählen.

Wenn du über das häufige AN/AUS schon was gelesen hast, solltest du tatsächlich mal im Datenblatt nachsehen, vorstellen kann ich mir das aber nicht.

Ich vermute, dass das ein/ausschalten nicht funktionieren wird, habe das selbst mal versucht gehabt (mit SHT21 aber ohne Levelshifter und am RasPi, also es besteht noch Hoffnung...).

Wenn du die Leistung die der Sensor verbraucht wirklich sparen musst, Respekt, dann bist du recht tief mit dem Rest.

Ich verwende Software I2C mit mehreren SHTs gibt fertige Beispiele dazu im Netz.

smatt: Ich vermute, dass das ein/ausschalten nicht funktionieren wird, habe das selbst mal versucht gehabt (mit SHT21 aber ohne Levelshifter und am RasPi, also es besteht noch Hoffnung...).

Ob und wie es am RasPi funktioniert, kann ich nicht sagen, aber am Arduino wird es funktionieren, wenn man die Zeiten einhält. Zwischen dem Einschalten und dem ersten I2C-Read muss genügend Zeit liegen, damit der Baustein stabil läuft. Man darf die Spannung nicht während eines I2C-Befehls trennen, das geht schief.