Eigentlich sollte das passen. Bei Arduino kenne ich mich zwar nicht aus, aber ich programmiere in C und das sieht ähnlich aus. Ich bin kein freund von Bibliotheken, da m häufig nicht weiß was darin gemacht wird. Was wird z.b. Bei "sensor.init" oder "sensor.configuredefault" gemacht? Welche register werden dort geschrieben. Es könnte sein das dort ein Offset programmiert wird und die Messwerte deswegen nicht passen.

Ich würde die Register direkt beschreiben, somit weiß man was passiert.

PS: auf S40 steht ein max. Offset von 13mm, somit könnte es normal sei da bei dir 10mm angezeigt wird. Ich würde den Offset programmieren, damit du 0mm erreichst und gegen die Schwankungen einen Mittelwert berechnen.

Und Code bitte mit den Code Tags versehen.

MfG Hannes