#include <Adafruit_MPU6050.h> // Memasukkan library MPU6050 dari Adafruit
#include <Wire.h> // Library untuk komunikasi I2C
Adafruit_MPU6050 mpu; // Membuat objek sensor MPU6050
void setup(void) {
Serial.begin(115200); // Mulai komunikasi serial dengan baud rate 115200
while (!Serial) { // Tunggu hingga serial terkoneksi
delay(10);
}
Serial.println("Uji coba MPU6050 dari Adafruit!"); // Menampilkan pesan ke serial
if (!mpu.begin()) { // Jika sensor tidak ditemukan
Serial.println("Gagal menemukan chip MPU6050"); // Tampilkan pesan kesalahan
while (1) { // Loop tak terbatas
delay(10);
}
}
Serial.println("MPU6050 Ditemukan!"); // Sensor ditemukan, tampilkan pesan
mpu.setAccelerometerRange(MPU6050_RANGE_8_G); // Set range accelerometer ke ±8 G
Serial.print("Rentang Accelerometer diatur ke: ");
switch (mpu.getAccelerometerRange()) { // Dapatkan dan tampilkan range accelerometer yang di-set
case MPU6050_RANGE_2_G:
Serial.println("+-2 G");
break;
case MPU6050_RANGE_4_G:
Serial.println("+4 G");
break;
case MPU6050_RANGE_8_G:
Serial.println("+8 G");
break;
}
mpu.setGyroRange(MPU6050_RANGE_2000_DEG); // Set range gyro ke ±2000 deg/s
Serial.print("Rentang Gyro diatur ke: ");
switch (mpu.getGyroRange()) { // Dapatkan dan tampilkan range gyro yang di-set
case MPU6050_RANGE_250_DEG:
Serial.println("+-250 deg/s");
break;
case MPU6050_RANGE_500_DEG:
Serial.println("+-500 deg/s");
break;
case MPU6050_RANGE_1000_DEG:
Serial.println("+1000 deg/s");
break;
case MPU6050_RANGE_2000_DEG:
Serial.println("+2000 deg/s");
break;
}
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ); // Set bandwidth filter ke 21 Hz
Serial.print("Filter bandwidth diatur ke: ");
switch (mpu.getFilterBandwidth()) { // Dapatkan dan tampilkan bandwidth filter yang di-set
case MPU6050_BAND_260_HZ:
Serial.println("260 Hz");
break;
case MPU6050_BAND_184_HZ:
Serial.println("184 Hz");
break;
case MPU6050_BAND_94_HZ:
Serial.println("94 Hz");
break;
case MPU6050_BAND_44_HZ:
Serial.println("44 Hz");
break;
case MPU6050_BAND_21_HZ:
Serial.println("21 Hz");
break;
case MPU6050_BAND_10_HZ:
Serial.println("10 Hz");
break;
case MPU6050_BAND_5_HZ:
Serial.println("5 Hz");
break;
}
Serial.println("");
}
void loop() {
sensors_event_t a, g, temp; // Buat variabel untuk menyimpan data sensor
mpu.getEvent(&a, &g, &temp); // Dapatkan data dari sensor
Serial.print("Acceleration X: ");
Serial.print(a.acceleration.x); // Tampilkan data percepatan pada sumbu X
Serial.print(", Y: ");
Serial.print(a.acceleration.y); // Tampilkan data percepatan pada sumbu Y
Serial.print(", Z: ");
Serial.print(a.acceleration.z); // Tampilkan data percepatan pada sumbu Z
Serial.println(" m/s^2");
Serial.print("Rotation X: ");
Serial.print(g.gyro.x); // Tampilkan data rotasi pada sumbu X
Serial.print(", Y: ");
Serial.print(g.gyro.y); // Tampilkan data rotasi pada sumbu Y
Serial.print(", Z: ");
Serial.print(g.gyro.z); // Tampilkan data rotasi pada sumbu Z
Serial.println(" rad/s");
Serial.print("Temperature: ");
Serial.print(temp.temperature); // Tampilkan data suhu
Serial.println(" derajat C");
Serial.println("");
delay(1000); // Tunda eksekusi selama 1000 milidetik
}