Monitoring Gerakan dan Getaran dengan Sensor MPU6050 Arduino

Sensor MPU6050 merupakan salah satu modul IMU (Inertial Measurement Unit) yang sangat populer di dunia elektronika dan robotika. Sensor ini menggabungkan accelerometer 3 sumbu dan gyroscope 3 sumbu dalam satu chip, memungkinkan perangkat untuk mendeteksi percepatan linear dan rotasi sudut. MPU6050 banyak digunakan pada drone, robot penyeimbang, sistem navigasi, hingga wearable device seperti smart band dan VR tracker.

Dalam tutorial kali ini, kita akan menampilkan data percepatan (acceleration) dan rotasi (gyroscope) secara real-time menggunakan Arduino dan mencetak hasilnya di Serial Monitor. Proyek ini akan membuka jalan bagi kamu yang ingin mempelajari sistem kendali berbasis gerakan atau membuat robot cerdas berbasis sensor IMU.


Komponen yang Digunakan
  • 1x Arduino Uno / MFB ATMEL 328 micro
  • 1x Modul MPU6050
  • Kabel jumper secukupnya
  • Breadboard (opsional)

Skema Rangkaian

Koneksi Rangkaian
Pin MPU6050Pin Arduino Uno
VCC5V
GNDGND
SDAA4
SCLA5

Library yang Harus Ditambahkan

Untuk membaca data dari sensor MPU6050, kamu perlu menginstal library dari Adafruit:

🔗 Adafruit MPU6050 Library
🔗 Adafruit Unified Sensor Library

Cara menambahkan:

  1. Buka Arduino IDE → Sketch > Include Library > Manage Libraries
  2. Cari Adafruit MPU6050, klik install
  3. Lakukan hal yang sama untuk Adafruit Unified Sensor

Kode Program Lengkap
//PROGRAM INI DI BUAT OLEH  : MANFAHBOT INDUSTRIAL AUTOMATION
//HAK CIPTA PROGRAM/CODING : LUKMAN HAKIM A.
//WEBSITE : http://manfahbot.cc

#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>

Adafruit_MPU6050 mpu;

void setup(void) {
Serial.begin(115200);
while (!Serial) {
delay(10); // Tunggu serial siap (untuk Arduino Leonardo, Zero, dll)
}

if (!mpu.begin()) {
Serial.println("Gagal mendeteksi chip MPU6050");
while (1) {
delay(10);
}
}

// Atur sensitivitas dan bandwidth
mpu.setAccelerometerRange(MPU6050_RANGE_16_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);

Serial.println("MPU6050 Siap...");
delay(100);
}

void loop() {
// Membaca nilai sensor
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);

// Tampilkan data ke Serial Monitor
Serial.print(a.acceleration.x); Serial.print(",");
Serial.print(a.acceleration.y); Serial.print(",");
Serial.print(a.acceleration.z); Serial.print(", ");
Serial.print(g.gyro.x); Serial.print(",");
Serial.print(g.gyro.y); Serial.print(",");
Serial.print(g.gyro.z); Serial.println("");

delay(10); // delay kecil untuk kecepatan pembacaan
}

Penjelasan Singkat Program
  • mpu.begin() digunakan untuk memulai komunikasi I2C dengan sensor MPU6050.
  • getEvent() digunakan untuk membaca nilai dari sensor: percepatan (acceleration) dan gyroscope (gyro).
  • Data ditampilkan dalam format CSV (comma-separated values) agar mudah dibaca atau diproses lebih lanjut di Excel atau aplikasi plotting seperti Processing, Python, atau MATLAB.
  • Fungsi delay(10) digunakan untuk mengatur kecepatan sampling data sekitar 100 Hz.

Tampilan Serial Monitor

Kesimpulan

Sensor MPU6050 adalah modul serbaguna yang sangat cocok untuk mengembangkan sistem yang mendeteksi gerakan dan orientasi. Dengan Arduino dan bantuan library Adafruit, kamu dapat dengan mudah membaca data percepatan dan rotasi yang akurat. Proyek ini adalah langkah awal yang tepat untuk masuk ke dunia robotika cerdas, drone, atau perangkat wearable.

Ke depannya, kamu dapat mengembangkan proyek ini dengan:

  • Menambahkan layar OLED untuk menampilkan data
  • Menyimpan data ke SD card
  • Menggabungkan dengan Bluetooth untuk kirim data ke smartphone
  • Atau membuat robot self-balancing seperti Segway
manfah.industri@gmail.com
manfah.industri@gmail.com
Articles: 26

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *