BME680 druckmessung falsche Werte

OP #7273542
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren