SensorTutorial Arduino

Tutorial Arduino Cara Mengakses Sensor MPU6050

Tutorial Arduino Cara Mengakses Sensor MPU6050. MPU6050 IMU memiliki 3-Axis akselerometer  dan 3-Axis giroskop  yang terintegrasi dalam 1 chip. Giroskop mengukur kecepatan rotasi atau laju perubahan posisi sudut dari waktu ke waktu, sepanjang sumbu X, Y, dan Z. Ini menggunakan Teknologi MEMS dan Efek Coriolis untuk mengukur,  Keluaran giroskop adalah dalam derajat per detik, jadi untuk mendapatkan posisi sudut kita hanya perlu mengintegrasikan kecepatan sudut.

Fitur dan Spesifikasi Sensor MPU6050

  • MEMS 3-aixs accelerometer and 3-axis gyroscope values combined
  • Power Supply: 3-5V
  • Communication : I2C protocol
  • Built-in 16-bit ADC provides high accuracy
  • Built-in DMP provides high computational power
  • Can be used to interface with other IIC devices like magnetometer
  • Configurable IIC Address
  • In-built Temperature sensor

Contoh Aplikasi Sensor MPU-6050

Cntoh Aplikasi dan Implementasi penggunaan sensor MPU-6050 adalah sebagai berikut:

  • Sebagai sensor Anti Pencurian (Anti Theft Sensor)
  • Sensor Motion.
  • Sensor Getaran (Vibration Sensor).

Skema Rangkaian Sensor MPU-6050 dengan Arduino

Berikut ini adalah rangkaian skematik sensor MPU-6050 yang dihubungkan dengan Board Arduino Uno.

Urutan wiring sensor MPU6050 dengan Board Arduino adalah sebagai berikut:

  • SDA(MPU6050) -> A4 Arduino Uno
  • SCL(MPU6050)-> A5 Arduino Uno

Bagaimana Cara Mengakses Module MPU6050 dengan IDE Arduino?

untuk lebih mudahnya banyak library yang menyediakan cara mengakses Module MPU6050, namun ada yang lebih mudah di pahami yaitu sebagai berikut:

Download Library MPU-6050

Source Code Program MPU-6050 Arduino

/*
    MPU6050 Triple Axis Gyroscope & Accelerometer. Pitch & Roll & Yaw Gyroscope Example.
    Read more: http://www.jarzebski.pl/arduino/czujniki-i-sensory/3-osiowy-zyroskop-i-akcelerometr-mpu6050.html
    GIT: https://github.com/jarzebski/Arduino-MPU6050
    Web: http://www.jarzebski.pl
    (c) 2014 by Korneliusz Jarzebski
*/

#include <Wire.h>
#include <MPU6050.h>

MPU6050 mpu;

// Timers
unsigned long timer = 0;
float timeStep = 0.01;

// Pitch, Roll and Yaw values
float pitch = 0;
float roll = 0;
float yaw = 0;

void setup() 
{
  Serial.begin(115200);

  // Initialize MPU6050
  while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))
  {
    Serial.println("Could not find a valid MPU6050 sensor, check wiring!");
    delay(500);
  }
  
  // Calibrate gyroscope. The calibration must be at rest.
  // If you don't want calibrate, comment this line.
  mpu.calibrateGyro();

  // Set threshold sensivty. Default 3.
  // If you don't want use threshold, comment this line or set 0.
  mpu.setThreshold(3);
}

void loop()
{
  timer = millis();

  // Read normalized values
  Vector norm = mpu.readNormalizeGyro();

  // Calculate Pitch, Roll and Yaw
  pitch = pitch + norm.YAxis * timeStep;
  roll = roll + norm.XAxis * timeStep;
  yaw = yaw + norm.ZAxis * timeStep;

  // Output raw
  Serial.print(" Pitch = ");
  Serial.print(pitch);
  Serial.print(" Roll = ");
  Serial.print(roll);  
  Serial.print(" Yaw = ");
  Serial.println(yaw);

  // Wait to full timeStep period
  delay((timeStep*1000) - (millis() - timer));
}

 

Related Articles

Leave a Reply

Your email address will not be published.

Back to top button