Загрузка данных


#include <Wire.h>

#define MPU 0x68

int16_t ax, ay, az, gx, gy, gz;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  delay(100);
  
  // Включить датчик (важно для MPU-5050!)
  Wire.beginTransmission(MPU);
  Wire.write(0x6B);  // регистр питания
  Wire.write(0x00);  // выключить спящий режим
  Wire.endTransmission();
  delay(100);
}

void loop() {
  // Запросить данные с регистра 0x3B
  Wire.beginTransmission(MPU);
  Wire.write(0x3B);
  Wire.endTransmission(false);
  Wire.requestFrom(MPU, 14);  // 14 байт: 6 аксель + 2 темп + 6 гиро
  
  if(Wire.available() >= 14) {
    ax = Wire.read() << 8 | Wire.read();
    ay = Wire.read() << 8 | Wire.read();
    az = Wire.read() << 8 | Wire.read();
    int16_t temp = Wire.read() << 8 | Wire.read();
    gx = Wire.read() << 8 | Wire.read();
    gy = Wire.read() << 8 | Wire.read();
    gz = Wire.read() << 8 | Wire.read();
    
    Serial.print("A: ");
    Serial.print(ax); Serial.print(" ");
    Serial.print(ay); Serial.print(" ");
    Serial.print(az); Serial.print("   ");
    
    Serial.print("G: ");
    Serial.print(gx); Serial.print(" ");
    Serial.print(gy); Serial.print(" ");
    Serial.println(gz);
  }
  
  delay(100);
}