MPU 9250 kalibreren

Hee,
Voor een projectje ben ik bezig met het maken van een hoekmeter. Hierbij maak ik gebruik van de MPU 9250 accelerometer. Op het moment heb ik deze aangesloten op mijn Arduino NANO en een OLED display. met de volgende sketch:
#include <Arduino.h>
#include <Adafruit_SSD1306.h>
#include “Wire.h”
#define MPU9250_ADDRESS 0x68
#define ACC_FULL_SCALE_2_G 0x00
Adafruit_SSD1306 display = Adafruit_SSD1306();
uint8_t Buf[14];
float yangle;

void I2Cread(uint8_t Address, uint8_t Register, uint8_t Nbytes, uint8_t* Data)
{
// Set register address
Wire.beginTransmission(Address);
Wire.write(Register);
Wire.endTransmission();

// Read Nbytes
Wire.requestFrom(Address, Nbytes);
uint8_t index = 0;
while (Wire.available())
Data[index++] = Wire.read();
}

void I2CwriteByte(uint8_t Address, uint8_t Register, uint8_t Data)
{
// Set register address
Wire.beginTransmission(Address);
Wire.write(Register);
Wire.write(Data);
Wire.endTransmission();
}

void setup() {
Wire.begin();
I2CwriteByte(MPU9250_ADDRESS, 29, 0x06);
I2CwriteByte(MPU9250_ADDRESS, 28, ACC_FULL_SCALE_2_G);
I2CwriteByte(MPU9250_ADDRESS, 108, 0x2F);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(3);
display.setTextColor(WHITE);
}

void loop() {
I2Cread(MPU9250_ADDRESS, 0x3B, 14, Buf);
int16_t ay = -(Buf[2] << 8 | Buf[3]);
yangle = ay / 182.04;
display.clearDisplay();
display.setCursor(0, 10);
display.print(yangle);
display.display();
delay(100);

}

Echter, wanneer de accelerometer vlak op de tafel licht geeft het display standaard een hoek van ongeveer 16 graden aan. Heeft iemand enig idee wat er niet klopt aan mijn code of moet ik de meter nog op een of andere manier kalibreren?