Forum: Digitale Signalverarbeitung / DSP / Machine Learning BME680 druckmessung falsche Werte


von Manuel N. (manuelambaum)


Lesenswert?

Hi,

Habe einen BME680 bei dem ich aktuell gerade ein wenig beim auslesen des 
Druckes festhänge... Irgendwie bekommt ich nicht die richten werte, 
weswegen ich hier mal den relevanten code posten möchte, um diesen von 
jemanden von euch betrachten zu lassen:

    MSB_p = (bus.read_byte_data(ADDRESS,0x1F) << 12)
    LSB_p = (bus.read_byte_data(ADDRESS,0x20) << 4)
    XLSB_p = (bus.read_byte_data(ADDRESS,0x21) >> 4)
    raw_value_p = (MSB_p | LSB_p | XLSB_p)

    var1 = (t_fine / 2.0) - 64000.0
    var2 = var1 *var1 *(par_p6 / 131072.0)
    var2 = var2 + (var1 *par_p5 *2.0)
    var2 = (var2 / 4.0) + (par_p4 *65536.0)
    var1 = (((par_p3 *par_p1 *var1) / 16384.0) + (par_p2 *par_p1)) / 
524288.0
    var1 = (1.0 + (var1 / 32768.0)) *par_p1
    press_comp = 1048576.0 - raw_value_p
    press_comp = ((press_comp - (par_p2 / 4096.0)) * 6250.0) / var1
    var1 = (par_p9 *press_comp *press_comp) / 2147483648.0
    var2 = press_comp * (par_p8 / 32768.0)
    var3 = (press_comp / 256.0) *(press_comp / 256.0) *(press_comp / 
256.0) *(par_p10 / 131072.0)
    press_comp = press_comp + (par_p1 + par_p2 + par_p3 + (par_p7 * 
128.0)) / 1
    print(press_comp,"mbar")


Ich bekomme mehr oder weniger konstante Werte im Bereich von 200'000 und 
wenn ich draufdrücke (einen höheren Druck simuliere) dann sinkt dieser 
Wert um ca. 500. Was mache ich falsch, dass er mir nicht den korrekten 
Messwert liefert?

Danke für zahlreiche Antworten

: Bearbeitet durch User
von Mastermind (Gast)


Lesenswert?

Inverses Signalverhalten?

von Thomas W. (Gast)


Lesenswert?

Im Datasheet wird in den Software-Beispielen intensiv gecastet. Das hast 
Du galant ignoriert.

Aus eigener Erfahrung: Die cast sind schon notwendig.

Gruesse

Th.

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.