INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
BME280 Problem
15.12.2019, 15:13
Beitrag #1
BME280 Problem
Ich hatte vor einem Jahr ein Projekt mit einem BME280 und dessen Stromverbrauch auf 8ua gesenkt. Nun wollte ich weitere (identische) Module bauen, habe aber das Problem, dass der BME280 nun 550ua benötigt.

Zum testen habe ich mir den Aufbau und den code von dieser Seite benutzt.
https://arduino-projekte.webnode.at/mein...or-bme280/

Benutze ich im gleichen Aufbau meinen alten BME280 benötigt er zwischen den Messungen 8ua. Wenn ich jetzt nur den BME280 tausche und alles gleich lasse, so benötigt der neuen BME280 550ua.

Beide BME280 sind identisch und ich vermute das es an den Voreinstellungen des BME280 liegt. Kann man die Register mit den Werten der Voreinstellungen auslesen?

Ich ginge eigentlich davon aus, dass mit diesem Befehl die Register gesetzt werden.

Code:
BME.setHumiditySensing();
BME.init();

Viele Grüße
Harry

Wenn etwas nicht funktioniert -> Kondensator hinzufügenSmile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.12.2019, 15:28
Beitrag #2
RE: BME280 Problem
So weit habe ich mich mit den Sensoren noch nicht auseinander gesetzt.
Das sollte aber im Datenblatt nachzulesen sein.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.12.2019, 18:02
Beitrag #3
RE: BME280 Problem
Hallo,

(15.12.2019 15:13)Harry schrieb:  Benutze ich im gleichen Aufbau meinen alten BME280 benötigt er zwischen den Messungen 8ua. Wenn ich jetzt nur den BME280 tausche und alles gleich lasse, so benötigt der neuen BME280 550ua.

Beide BME280 sind identisch und ich vermute das es an den Voreinstellungen des BME280 liegt. Kann man die Register mit den Werten der Voreinstellungen auslesen?

Ich ginge eigentlich davon aus, dass mit diesem Befehl die Register gesetzt werden.

eigentlich speichert der BME280 da nichts weiter, ist mir jedenfalls nicht bekannt.
Laut Deinem Link startet die Lib den BME280 im NORMAL_MODE, er ist also durchgehend aktiv. Besser ist es, ihn im FORCED_MODE zu starten, dann schälft er automatisch zwischen den Messungen, man muß das aber dann bei jedem Meßzyklus aufrufen.
Erlärt mir aber nicht das Verhalten Deiner BME280, die müßten sich beide idetisch verhalten. Ich habe allerdings keine Messungen mehr vorgenommen, set der Batteriesensor auf dem in Betrieb ist. Ein zweiter aktueller scheint es aber auch richtig zu machen, die stehen zum Testen nahe beienander und es fällt sofort auf, weil die gemessene Chiptemperatir dann ca. 2-3 Grad höher als die Außentemperatur ist. Beide weichen aber maximal 0,4 Grad voeinenader ab, passt also für mich.

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.12.2019, 18:13
Beitrag #4
RE: BME280 Problem
Und hier gibt es einen Erfahrungsbericht darüber, seht interessant.
BME280 Erfahrungen

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.12.2019, 18:54
Beitrag #5
RE: BME280 Problem
Hallo,

naja, Luftdruck behandle ich ziemlich nachlässig...
Ist auch eine Frage der Verwendung. Als Höhenmesser muß man sich richtig Mühe geben, als Wetteranzeige reicht eine grobe Höhenkorrektur für den eigenen Standort umd den Luftdruck bezigen auf Meereshöhe zu bekommen. Ein paar hPa gegenüber dem Wetterbericht sind mir da egal. Da ist mehr der Verlauf interessant, z.B. ein schneller Abfall, weil dann gern ein Unwetter mit Sturm droht.
Ich will da nicht wirklich eine Wetterstation betreiben oder eigene Vorhersagen machen.
Die BME280 scheinen auch auf sehr hohe Luftfeuchtigekeit unfein zu reagieren. Hängen dann gern bei 100% fest und brauchen Tage bis sie sich wieder halbwegs einkriegen. Ein neu verbautes BME280 Breakout braucht auch 3-4 Tage, bis sie sich der realen Feuchte angenähert haben.
Allerdings sind da ähnliiche Sensoren mit dem Meßprinzip auch nicht anders.

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.12.2019, 21:09
Beitrag #6
RE: BME280 Problem
Hallo Harry,
ich habe eben meinen Beispielsketch noch einmal ausprobiert und habe einen Stromverbrauch von ca. 8 uA gemessen.
Der Sketch verwendet als Parametervorgabe "setWeatherMonitoring()". Auch wenn ich meinen Sketch auf "setHumiditySensing()" ändere, messe ich einen Storm von 8 uA.
In beiden Fällen arbeitet der Sensor im "Forced-Modus". Das bedeutet, dass sich der Sensor - wenn er nicht gerade zu einer Messung aufgefordert wird - im Sleep-Modus befindet und sich daher dieser niedrige Stromverbrauch einstellt.
Wieso das bei deinem Sensor anders ist, kann ich nicht sagen. Vielleicht hast du sonst etwas im Sketch geändert.
Viele Grüße
Retian
(https://arduino-projekte.webnode.at/)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.12.2019, 09:11
Beitrag #7
RE: BME280 Problem
Hallo Retian,

erst einmal Danke für deine Webseite, schön gemacht.
Ich habe die BME280 Platine mit den 4Pins und betreibe ihn mit 5V.
Mit welcher IDE Version hast du getestet?

Ich habe mir die 1.8.10 als ZIP geladen.
Entpackt und einen Ordner portable erstellt.
Unter sketchbook\libraries habe ich deine beiden Files MyBME280.cpp + MyBME280.h abgelegt.
Und unter Sketchbook habe ich diesen code von deiner Webseite gespeichert.

Code:
//Testprogramm 1 für Luftdrucksensor BME280
//Code fuer Arduino
//Author Retian
//Version 1.1


//Prototypen:
void leseMesswerte(void);
void ausgabeMesswerte(void);


#include <MyBME280.h>


//Hier auswählen zwischen I2C- und SPI-Schnittstelle

//Mit I2C-Schnittstelle:

#define BME280_I2cAdd 0x76 //I2C-Adresse
MyBME280 BME(BME280_I2cAdd);

//Mit SPI-Schnittstelle:

//#define cs 10 //CS-Pin für SPI-Schnittstelle
//MyBME280 BME(cs, BME280_SPI);


unsigned long zeit;

float luftTemp, luftDruck, redLuftDruck, luftFeuchte;
int hoehe = 460; //Messort 460 m ueber dem Meer


void setup() {
  Serial.begin(115200);
  if (BME.isReady())
  {
    Serial.println("BME280 ok");
    BME.setWeatherMonitoring(); //Setze Parameter für Wetterueberwachung
    BME.init();
    //Beim Initialisieren des Parametersatzes für Wetterueberwachung (Forced-Mode)
    //wird bereits eine Messung vom Sensor durchgeführt und als Rohwerte gespeichert
    leseMesswerte();
    ausgabeMesswerte();
  }
  else
  {
    Serial.println("BME280 Fehler");
    while (1); //hier geht es im Fehlerfall nicht weiter
  }
  zeit = millis();
}


void loop() {
  if (millis() > zeit + 60000) //Messung alle 60 Sekunden
  {
    BME.startSingleMeas();
    leseMesswerte();
    ausgabeMesswerte();
    zeit = millis();
  }
}


void leseMesswerte()
{
  luftTemp = BME.readTemp();
  luftDruck = BME.readPress();
  redLuftDruck = BME.readReducedPress(hoehe);
  luftFeuchte = BME.readHumidity();
}


void ausgabeMesswerte()
{
  Serial.print("Lufttemperatur  : ");
  Serial.print(luftTemp);
  Serial.println(" Grad C");
  Serial.print("LuftDruck       : ");
  Serial.print(luftDruck);
  Serial.println(" hPa");
  Serial.print("Red. LuftDruck  : ");
  Serial.print(redLuftDruck);
  Serial.println(" hPa");
  Serial.print("Luftfeuchtigkeit: ");
  Serial.print(luftFeuchte);
  Serial.println(" %");
  Serial.println();
}

Wenn ich es richtig verstanden habe, so sind hinter dem Aufruf "Weathermonitoring" diese Parameter hinterlegt und er müsste automatisch in den Stromsparmodus gehen.

SLEEP_MODE
P_OVERSAMPLING_x1
T_OVERSAMPLING_x1
H_OVERSAMPLING_x1
FILTER_COEFF_0
STANDBY_TIME_xxxx (Standby time im Forced Mode ohne Bedeutung)

Ich habe "BME.setWeatherMonitoring();" und "BME.setHumiditySensing();" getestet und er reagiert auch darauf. Beim ersten zeigt er mir alle Werte an, beim zweiten nur Temperatur und Luftfeuchte.

Kann man die Register mit den eingestellten Werten des BME280 auslesen, damit ich bei beiden die gespeicherten Voreinstellungen auslesen kann?

Was ich auch noch nicht so ganz verstanden habe ist wie das mit den "keywords" funktioniert.

Bei "BME.reset();" bekomme ich eine Fehlermeldung obwohl "reset" genauso wie "setWeatherMonitoring" in den keywords steht.

-----
C:\Arduino\BME_Test\arduino-1.8.10\portable\sketchbook\libraries\MyBME280/MyBME280.h:132:10: note: declared private here

void reset(void);

^~~~~

Mehrere Bibliotheken wurden für "MyBME280.h" gefunden
Benutzt: C:\Arduino\BME_Test\arduino-1.8.10\portable\sketchbook\libraries\MyBME280
Mehrere Bibliotheken wurden für "Wire.h" gefunden
Benutzt: C:\Arduino\BME_Test\arduino-1.8.10\hardware\arduino\avr\libraries\Wire
Mehrere Bibliotheken wurden für "SPI.h" gefunden
Benutzt: C:\Arduino\BME_Test\arduino-1.8.10\hardware\arduino\avr\libraries\SPI
exit status 1
'void MyBME280::reset()' is private within this context
-----

Viele Grüße
Harry

Wenn etwas nicht funktioniert -> Kondensator hinzufügenSmile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.12.2019, 10:07
Beitrag #8
RE: BME280 Problem
(15.12.2019 18:54)amithlon schrieb:  Die BME280 scheinen auch auf sehr hohe Luftfeuchtigekeit unfein zu reagieren. Hängen dann gern bei 100% fest und brauchen Tage bis sie sich wieder halbwegs einkriegen. Ein neu verbautes BME280 Breakout braucht auch 3-4 Tage, bis sie sich der realen Feuchte angenähert haben.

Ich habe mehrere BME280 und bis jetzt noch keine Probleme damit. Einen habe ich glaube erlegt als ich ihn mit 4 vollen Akkus betrieben habe. Ich gehe sonst immer sicherheitshalber kurz auf entladen wenn ich 4x1,2V Akku als 5V Ersatz benutzen möchte. Jetzt ein Jahr später scheint er wieder zu funktionieren. Ist aber keiner von denen wo ich gerade meine Versuche mache.


(15.12.2019 18:54)amithlon schrieb:  Allerdings sind da ähnliiche Sensoren mit dem Meßprinzip auch nicht anders.

Ich hatte zuvor ein DHT11 und DHT22, die waren bedeutend schlechter.

Harry

Wenn etwas nicht funktioniert -> Kondensator hinzufügenSmile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  MKR FOX1200-Board und RTC - Problem Herby007 13 3.445 27.04.2020 00:04
Letzter Beitrag: GuaAck
  Problem mit APA106 (WS2812B):flickern der letzten LEDs Holzauge 6 1.120 28.03.2020 13:15
Letzter Beitrag: Holzauge
  Problem mit itr8307 Acki1985 21 2.715 24.03.2020 11:03
Letzter Beitrag: db91595
  Arduino Nano + W5500 Server Problem Plammi 8 2.473 23.11.2019 19:40
Letzter Beitrag: ardu_arne
  Problem mit RS232-Shield bei Betrieb mit externer Spannungsversorgung riggs 3 1.088 15.11.2019 17:33
Letzter Beitrag: hotsystems
  Arduino Problem mit I2C Bus pds14 27 8.150 30.09.2019 12:44
Letzter Beitrag: Chopp
  DHT22 BME280 vergleich Harry 15 11.927 20.09.2019 01:20
Letzter Beitrag: Mirkan
  TCA9548A-Problem mit gefundener Adresse 0x0 alpenpower 10 3.880 26.08.2019 12:41
Letzter Beitrag: alpenpower
  Problem mit Stromsensor-Modul INA219 Retian 1 1.781 12.07.2019 20:21
Letzter Beitrag: Retian
  Problem mit oder durch Dallas 18b20 wwilhelm 3 1.589 16.05.2019 21:13
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste