Hallo!
Beim Bau meines Nodes mit Atmega328P, BME280, und diversen andern
Sensoren macht mir der BME280 Probleme. Irgendwie bin ich zu doof den in
den Sleepmodus zu setzen. Davon mal abgesehen finde ich den
Stromverbrauch von 0,05 mA (50µA) etwas hoch. Selbst für nicht Sleep.
Laut Datasheet:
1
Current consumption
2
1.8μA @ 1Hz humidity and temperature <--- Messe nur Temp und Hum
3
2.8μA @ 1Hz pressure and temperature
4
3.6μA @ 1Hz humidity, pressure and temperature
5
0.1 μA in sleep mode <--- schön wäre es!
Ich habe nun schon diverse Libs durch. Adafruit, BlueDot, SparkFun, und
paar kleinere.
Bei allen habe ich mehr oder weniger den gleichen Wert (50µA).
Bei SparkFun gibt es sogar das "LowPower" Beispiel. Das scheint aber
auch nicht zu laufen. bzw ändert das nichts. Egal welchen Mode ich
setze. Der Stromverbrauch bleibt gleich.
Woran könnte das liegen? Weder Forum noch google brachten mich zu einer
Lösung bisher.
Robert B. schrieb:> Woran könnte das liegen? Weder Forum noch google brachten mich zu einer> Lösung bisher.
Wie sieht dein Schaltplan aus und wie hast du festgestellt, dass der
BME280 den Strom aufnimmt.
War die Ostertage weg. Daher die verzögerung :-) Danke schon einmal für
eure Interesse und Hilfsbereitschaft.
Messen tue ich den Strom an der Stelle kurz vor dem BME280 wo das Kabel
in der Schaltung unterbrochen und markiert ist.
Mein BME280 hat nur 6 Pins. Daher Abbildung ähnlich.
Kann es sein, dass die geringe Ruhestromaufnahme nur bei ganz bestimmten
Pegeln am I²C Bus erreicht wird?
Ich hatte mal einen Sensor, da musste ich die beiden Leitungen auf Low
Pegel setzen.
Stefanus F. schrieb:> Ich hatte mal einen Sensor, da musste ich die beiden Leitungen auf Low> Pegel setzen.
Das klingt für I2C ungewöhnlich. Ich hätte den Bus HIGH als sparsamer
eingeschätzt.
Es ist zu sehen, das der BME280 auf 3,3V liegt!
Schön wäre es zu sehen wie schnell du den abfragst...
Wenn der im 10ms Takt abgefragt wird mit einen Messgeräte Sequenz hat
2Hz...
Dann könnte das wohl sein.
P.S. Habe selbst meine 4 BME280 noch nicht gemessen :-(
cu
Gerade gefunden:
BME280
<zitat>
The BME280 is an integrated environmental sensor developed specifically
for mobile applications where size and low power consumption are key
design constraints. The unit combines individual high linearity, high
accuracy sensors for pressure, humidity and temperature in an 8-pin
metal-lid 2.5 x 2.5 x 0.93 mm³ LGA package, designed for low current
consumption (3.6 μA @1Hz), long term stability and high EMC robustness.
</zitat>
Quelle: https://www.bosch-sensortec.com/bst/products/all_products/bme280
@Karl M.
Sorry ich komm nicht ganz aus dem Elektrotechnik. Bin mir nicht sicher
was du meinst.
@Helmut
Nein hat es nicht.
@Stefanus F. und @Wolfgang
Ich habe nun mal die beiden Pins SDA und SCL weg gelassen aus der
schaltung, Siehe da. Weniger als vorher. Dann nahm ich mal 2 ganz
frische (vorher nicht genutzte) BME280 und erstaunlicherweise zeigt das
Multimeter nun 0,16µA beim einen und bei einem weitern frischen 0,18µA
an. Also genau das, was er haben soll im Sleep.
Also muss ich wohl wie Stefanus F. sagte mit den Datenleitungen werkeln
und die "ausschalten". Wäre ich nie drauf gekommen von allen. Danke!
Kurios ist nur warum das eine Modul, welches ich bisher immer nutzte,
einen ständig wachsenen Strom hat. Der startet bei 0,8µA und irgendwann
schaukelte er sich sogar auf 20µA ... dann brach ich mal ab. Woran
könnte das liegen? Evtl. an, durch sketch gesetzte registereinträge?
@nuJa
In meiner eigentlichen Schaltung rufe ich den alle 2 bis 5 Minuten ab.
Und zu deinem zweiten Post hatte ich ja die Tabelle schon gepostet in
meinem ersten Beitrag.
@Gerd E.
Nee ist eine 3,3V Version die auch so läuft.
@Alle
Ich kann den ja auch mit SPI verbinden. Ist das besser als I2C?
EDIT: Vielen Dank euch allen für eure tolle Hilfe!
Robert B. schrieb:> Ich kann den ja auch mit SPI verbinden. Ist das besser als I2C?
Muss bei dem BMExxx der CS nicht auf einem definierten Pegel liegen?
Der offene Eingang wäre eine Möglichkeit für übermäßigen Strombedarf.
Jim M. schrieb:> Muss bei dem BMExxx der CS nicht auf einem definierten Pegel liegen?>> Der offene Eingang wäre eine Möglichkeit für übermäßigen Strombedarf.
Sorry ich weiß hier nicht ganz was du meinst. Bin wirklich ein Anfänger.
Ich habe mich nach diversen Hookup Guides gerichtet. Das stand nichts
von einem Pegel.
Ich glaube aber mein eines Modul ist kaputt. Das mit dem hohen
Stromverbrauch.
Ich hatte außerdem derweil etwas mit den Modes (input/output) sowie
"High und "low" etwas rumprobiert. Auf eine gute Lösung kam ich aber
erst als ich das LowPower Beispiel von SparkFunBME280 etwas umgebaut
habe. Und zwar nehme ich da das
1
Wire.begin();
2
Wire.setClock(400000);
aus dem Setup raus.
Und packe es an den Anfang vom loop. Zusätzlich habe ich noch eine Zeile
1
Wire.end();
eingefügt, nachdem der Sensor fertig mit messen ist.
Dann mal zum Test den Delay auf 10 Sekunden gesetzt. Und nun 10 Sekunden
0,14µA.
Im Moment des Messens geht der Wert hoch bis 20µA. Hier ist wohl mein
Messgerät zu schlecht um genaue Daten abzugeben, da der Zeitraum sehr
kurz ist.
Liegt das nun irgendwie an der Wire.h und dieser I2C geschichte?
Ich werde morgen das ganz mal mit SPI probieren und schauen wie es damit
läuft.
Robert B. schrieb:> Sorry ich weiß hier nicht ganz was du meinst. Bin wirklich ein Anfänger.> Ich habe mich nach diversen Hookup Guides gerichtet. Das stand nichts> von einem Pegel.
Bei solchen Fragen ist immer das Datenblatt der verbindliche
Ansprechpartner. Wenn du deine Versuche mit SPI machst, wird dir die
Bedeutung des Pegels am CSB Pin aber ohnehin noch begegnen.
Stefanus F. schrieb:
>> Ich hatte mal einen Sensor, da musste ich die beiden Leitungen auf Low>> Pegel setzen.Walter T. schrieb:> Das klingt für I2C ungewöhnlich. Ich hätte den Bus HIGH als sparsamer> eingeschätzt.
Das dachte ich auch. Aber lesen ist besser als denken.
Es hatte vermutlich damit zu tun, dass mein Sensor intern mit ca 2V lief
und seine I/O Pins nur 3,3V tolerant waren. Wenn ich aber wirklich
3,3V auf den Leitungen hatte, wurde der Leckstrom jedoch größer.
Timmo H. schrieb:> Habe gerade mal den Spannungsregler (LM6206N3) runter gelötet. Bin jetzt> bei 0,24 µA im Sleep im I2C Mode.
Ich dachte du hättest bereits 0,16 µA erreicht!? Von was hast du den
Spannungsregler entfernt?
Timmo H. schrieb:>> Ich dachte du hättest bereits 0,16 µA erreicht!?> Keine Ahnung wo du das her hast. Aber neinRobert B. schrieb:> Ich habe nun mal die beiden Pins SDA und SCL weg gelassen aus der> schaltung, Siehe da. Weniger als vorher. Dann nahm ich mal 2 ganz> frische (vorher nicht genutzte) BME280 und erstaunlicherweise zeigt das> Multimeter nun 0,16µA beim einen und bei einem weitern frischen 0,18µA> an.
Jetzt habe ich's kapiert, ihr seid zwei Personen. Das war mir entgangen.
Meine Erfahrungen mit dem BME280 im Vergleich mit 3 anderen Sensoren
zeigen bei der Feuchte, dass der BME nichts taugt. Was ich gemessen
habe, ist weiter oben verlinkt. Ich habe auch gegen SHT75 gemessen.
Der BME kommt mir nicht mehr ins Haus.
Der andere Artikel zeigt nur, dass die anderen dort genutzten Sensoren
auch nicht besser sind als der BME280.