Sensor Gyro Gyroscope Accelerometer Sensor Modul MPU-6050 adalah sebuah modul sensor berbasis chip MPU-6050 yang digunakan untuk mengukur gerakan dan orientasi suatu objek.Berikut adalah cara memprogram Sensor Gyro Gyroscope Accelerometer Sensor Modul MPU 6050 pada ESP32 :
#include <Arduino.h>
#include <Wire.h>
#include <mpu6050.h>
mpu6050 sensor_mpu;
void baca_sensor_mpu(float &x, float &y, float &z) {
int16_t gyroX = sensor_mpu.getRotationX();
int16_t gyroY = sensor_mpu.getRotationY();
int16_t gyroZ = sensor_mpu.getRotationZ();
float skalaFaktor = 131.0;
x = gyroX / skalaFaktor;
y = gyroY / skalaFaktor;
z = gyroZ / skalaFaktor;
}
void setup()
{
Serial.begin(9600);
Wire.begin();
sensor_mpu.initialize();
Serial.println(sensor_mpu.testConnection() ? "Koneksi berhasil" : "Koneksi gagal");
}
void loop(){
float gyroX, gyroY, gyroZ;
baca_sensor_mpu(gyroX, gyroY, gyroZ);
Serial.print("Gyro X: "); Serial.print(gyroX);
Serial.print(", Y: "); Serial.print(gyroY);
Serial.print(", Z: "); Serial.println(gyroZ);
}Berikut ini adalah penjelasan dari kode di atas :
1. Library yang digunakan
#include <Arduino.h>
#include <Wire.h>
#include <mpu6050.h>
Arduino.h→ Library dasar Arduino, otomatis disertakan tapi kadang perlu untuk beberapa compiler.Wire.h→ Library untuk komunikasi I2C (MPU-6050 menggunakan I2C).mpu6050.h→ Library khusus untuk sensor MPU-6050 yang menyediakan fungsi-fungsi untuk membaca data gyro dan accelerometer.
2. Membuat objek sensor
mpu6050 sensor_mpu;
- Membuat objek
sensor_mpudari kelasmpu6050yang nanti digunakan untuk mengakses sensor MPU-6050.
3. Fungsi membaca data gyro
void baca_sensor_mpu(float &x, float &y, float &z) {
int16_t gyroX = sensor_mpu.getRotationX();
int16_t gyroY = sensor_mpu.getRotationY();
int16_t gyroZ = sensor_mpu.getRotationZ();
float skalaFaktor = 131.0;
x = gyroX / skalaFaktor;
y = gyroY / skalaFaktor;
z = gyroZ / skalaFaktor;
}
- Fungsi ini mengambil nilai raw (mentah) rotasi dari sensor gyro MPU-6050.
getRotationX(),getRotationY(), dangetRotationZ()mengembalikan data rotasi di sumbu X, Y, Z (dalam satuan integer 16-bit).skalaFaktor(131.0) digunakan untuk mengubah nilai raw menjadi derajat per detik (°/s). Ini sesuai dengan pengaturan sensitivitas gyro default ±250 °/s.- Nilai akhir dimasukkan lewat parameter reference (
&x, &y, &z) sehingga bisa langsung dipakai di luar fungsi.
4. Setup Arduino
void setup() {
Serial.begin(9600); // Memulai komunikasi serial dengan baud rate 9600
Wire.begin(); // Memulai komunikasi I2C
sensor_mpu.initialize(); // Inisialisasi sensor MPU-6050
Serial.println(sensor_mpu.testConnection() ? "Koneksi berhasil" : "Koneksi gagal");
}
Serial.begin(9600)untuk komunikasi serial agar bisa kirim data ke komputer.Wire.begin()mulai komunikasi I2C yang dibutuhkan MPU-6050.sensor_mpu.initialize()menginisialisasi sensor MPU-6050.sensor_mpu.testConnection()mengecek apakah sensor berhasil terhubung, hasilnya dicetak di Serial Monitor.
5. Loop utama
void loop() {
float gyroX, gyroY, gyroZ;
baca_sensor_mpu(gyroX, gyroY, gyroZ); // Memanggil fungsi baca data gyro
Serial.print("Gyro X: "); Serial.print(gyroX);
Serial.print(", Y: "); Serial.print(gyroY);
Serial.print(", Z: "); Serial.println(gyroZ);
}
- Di
loop(), kode terus membaca nilai gyro dari sensor. - Memanggil fungsi
baca_sensor_mpu()untuk mendapatkan nilai gyro di sumbu X, Y, Z. - Mencetak hasil pembacaan ke Serial Monitor agar kamu bisa melihat nilai rotasi dalam derajat per detik.
Kesimpulan
Kode ini berfungsi untuk:
- Menginisialisasi sensor MPU-6050 lewat I2C.
- Membaca data gyro (kecepatan rotasi) pada sumbu X, Y, dan Z.
- Mengubah data mentah menjadi nilai rotasi dalam derajat per detik.
- Menampilkan hasil pembacaan gyro secara terus-menerus di Serial Monitor.
untuk diskusi bisa kontak dibawah ini :

Sosial media :





