#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);
}