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