#include <Wire.h>
const int MPU = 0x68; // Адреса MPU6050 (0x68)
void setup() {
Wire.begin();
Serial.begin(9600);
// Ініціалізація MPU6050
Wire.beginTransmission(MPU);
Wire.write(0x6B); // Регістр живлення
Wire.write(0); // Включаємо датчик
Wire.endTransmission(true);
}
void loop() {
// Початок зчитування акселерометра, гіроскопа і температури
Wire.beginTransmission(MPU);
Wire.write(0x3B); // Адреса першого регістра акселерометра
Wire.endTransmission(false);
Wire.requestFrom(MPU, 14, true); // Отримуємо 14 байт даних (всі регістри, всі дані)
// Зчитуємо дані акселерометра
int16_t AcX = Wire.read() << 8 | Wire.read(); // X-вісь акселерометра
int16_t AcY = Wire.read() << 8 | Wire.read(); // Y-вісь акселерометра
int16_t AcZ = Wire.read() << 8 | Wire.read(); // Z-вісь акселерометра
// Зчитуємо дані температури
int16_t tempRaw = Wire.read() << 8 | Wire.read(); // Значення температури
float temperature = tempRaw / 340.0 + 36.53; // Переводимо у градуси Цельсія
// Зчитуємо дані гіроскопа
int16_t GyX = Wire.read() << 8 | Wire.read(); // X-вісь гіроскопа
int16_t GyY = Wire.read() << 8 | Wire.read(); // Y-вісь гіроскопа
int16_t GyZ = Wire.read() << 8 | Wire.read(); // Z-вісь гіроскопа
// Виводимо дані акселерометра
Serial.print("AcX = "); Serial.print(AcX);
Serial.print(" | AcY = "); Serial.print(AcY);
Serial.print(" | AcZ = "); Serial.print(AcZ);
// Виводимо температуру
Serial.print(" | Temp = "); Serial.print(temperature);
Serial.print(" C");
// Виводимо дані гіроскопа
Serial.print(" | GyX = "); Serial.print(GyX);
Serial.print(" | GyY = "); Serial.print(GyY);
Serial.print(" | GyZ = "); Serial.println(GyZ);
delay(500);
}