Forum: Mikrocontroller und Digitale Elektronik BME280 Luftfeuchte stimmt nicht!


von Michael L. (nightflyer88)


Lesenswert?

Hallo

Hat jemand bereits Erfahrung mit dem Bosch Sensor BME280 gesammelt ? Im 
vergleich zu einer Wetterstation zeigt der Sensor bei der Luftfeuchte 
ca. 20% zuwenig an. Ist das Normal ?? Die Temperatur und Luftdruck 
stimmen perfekt. Meine Formel sollte eigentlich stimmen, habs nun schon 
x-mal kontrolliert und sollte mit dem Datenblatt übereinstimmen.

Hier mal mein Code, vielleicht hab ich wirklich was übersehen:



Function Humidity() As Dword
  Local Var1 As Long
  Local X As Long
  Local Y As Long
  Local Z As Long

  Var1 = T_fine - 76800

  X = Uh
  Shift X , Left , 14 , Signed
  Y = Dig_h4
  Shift Y , Left , 20 , Signed
  X = X - Y
  Y = Dig_h5 * Var1
  X = X - Y
  X = X + 16384
  Shift X , Right , 15 , Signed

  Y = Var1 * Dig_h6
  Shift Y , Right , 10 , Signed

  Z = Var1 * Dig_h3
  Shift Z , Right , 11 , Signed
  Z = Z + 32768

  Y = Y * Z
  Shift Y , Right , 10 , Signed
  Y = Y + 2097152
  Y = Y * Dig_h2
  Y = Y + 8192
  Shift Y , Right , 14 , Signed

  Var1 = X * Y

  X = Var1
  Shift X , Right , 15 , Signed
  X = X * X
  Shift X , Right , 7 , Signed
  X = X * Dig_h1
  Shift X , Right , 4 , Signed
  Var1 = Var1 - X

  If Var1 < 0 Then
    Var1 = 0
  End If

  If Var1 > 419430400 Then
    Var1 = 419430400
  End If

  Shift Var1 , Right , 12 , Signed
  Humidity = Var1 / 102.4
End Function

von PeterK (Gast)


Lesenswert?

Hallo Michael,
den Sensor habe ich auch gerade ausprobiert, aber bei mir scheint alles 
richtig zu sein. Eine genaue Referenz habe ich natürlich nicht.
Das Programm habe ich für einen ATMEL in C geschrieben.
Bei deinem Programm könnte die letzte Zeile Humidity = Var1 / 102.4 
eventuell den Fehler verursacht haben.
Var1 liegt im Format 22.10 vor, also 22Bit Ganzzahl und 10 Bit 
Nachkommazahl. Ändere doch einfach mal in der letzten Zeile die Zahl 
102.4 in 1024 um, dann müsste das Ergebnis als Feuchte (Ganzzahl) in % 
erscheinen.
Die Nachkommastellen müssen extra berechnet werden.

Besten Gruß Peter

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
Noch kein Account? Hier anmelden.