Sensor MPU6050 adalah modul IMU (Inertial Measurement Unit) yang berisi 2 sensor utama yaitu accelerometer (percepatan) dan gyroscope (putaran). Jenis sensor ini sering digunakan dalam proyek-proyek seperti robot penyeimbang, drone, alat ukur kemiringan, dan sistem navigasi berbasis gerakan.
Untuk membuat tampilan data lebih informatif, kita akan menambahkan layar OLED 128×64 agar data bisa langsung terlihat tanpa harus membuka Serial Monitor. Tampilan ini akan menampilkan data sumbu X, Y, Z dari accelerometer dan gyroscope secara real-time. Kombinasi ini menjadikan sistem ideal untuk alat monitoring getaran dan gerakan portabel.
Komponen yang Digunakan
- 1x Arduino Uno / MFB ATMEL 328 micro
- 1x Sensor MPU6050 (I2C)
- 1x OLED Display SSD1306 128×64 (I2C)
- Kabel jumper secukupnya
- Breadboard (opsional)
Skema Rangkaian

Koneksi Rangkaian
Komponen | Pin Arduino |
---|---|
VCC MPU6050 | 5V |
GND MPU6050 | GND |
SDA MPU6050 | A4 |
SCL MPU6050 | A5 |
VCC OLED | 5V |
GND OLED | GND |
SDA OLED | A4 |
SCL OLED | A5 |
Catatan: Kedua perangkat (MPU6050 & OLED SSD1306) terhubung ke jalur I2C yang sama (SDA & SCL), karena I2C mendukung koneksi multi-perangkat.
Library yang Harus Ditambahkan
- š Adafruit MPU6050
- š Adafruit Unified Sensor
- š Adafruit SSD1306
- š Adafruit GFX
Cara install:
- Buka Arduino IDE ā Sketch > Include Library > Manage Libraries
- Cari dan install masing-masing library di atas
Kode Program Lengkap
cppSalinEdit//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_SSD1306.h>
#include <Adafruit_Sensor.h>
Adafruit_MPU6050 mpu;
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
void setup() {
Serial.begin(115200);
Serial.println("MPU6050 OLED demo");
if (!mpu.begin()) {
Serial.println("Sensor init failed");
while (1) yield();
}
Serial.println("Found a MPU-6050 sensor");
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
while (1);
}
display.display();
delay(500);
display.setTextSize(1);
display.setTextColor(WHITE);
display.setRotation(0);
}
void loop() {
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
display.clearDisplay();
display.setCursor(0, 0);
Serial.print("Accelerometer X: "); Serial.print(a.acceleration.x, 1);
Serial.print(" Y: "); Serial.print(a.acceleration.y, 1);
Serial.print(" Z: "); Serial.println(a.acceleration.z, 1);
display.println("Accelerometer - m/s^2");
display.print(a.acceleration.x, 1); display.print(", ");
display.print(a.acceleration.y, 1); display.print(", ");
display.print(a.acceleration.z, 1); display.println("");
Serial.print("Gyroscope X: "); Serial.print(g.gyro.x, 1);
Serial.print(" Y: "); Serial.print(g.gyro.y, 1);
Serial.print(" Z: "); Serial.println(g.gyro.z, 1);
display.println("Gyroscope - rps");
display.print(g.gyro.x, 1); display.print(", ");
display.print(g.gyro.y, 1); display.print(", ");
display.print(g.gyro.z, 1); display.println("");
display.display();
delay(100);
}
Penjelasan Singkat Program
- Program menginisialisasi sensor MPU6050 dan layar OLED SSD1306.
- Fungsi
mpu.getEvent()
digunakan untuk membaca nilai dari accelerometer dan gyroscope. - Hasil pembacaan ditampilkan ke Serial Monitor dan juga langsung ke layar OLED dalam format yang ringkas.
- Format yang ditampilkan:
- Accelerometer ā satuan m/s²
- Gyroscope ā satuan rps (rotation per second)
Kesimpulan
Proyek ini merupakan contoh monitoring gerakan dan rotasi yang sangat bermanfaat dalam dunia industri maupun edukasi. Dengan bantuan OLED display, informasi data menjadi langsung terlihat dan bisa digunakan untuk sistem mobile atau portable device tanpa perlu laptop.
Kamu bisa mengembangkan proyek ini lebih lanjut seperti:
- Menambahkan deteksi threshold getaran
- Membuat logger gerakan menggunakan SD Card
- Menghubungkan ke WiFi atau Bluetooth untuk pengiriman data