加速度感測器 GY-88

GY-88感測器:共結合MPU6050、HMC5883L和BMP085三種感測器。

MPU-6050 :三軸加速計 + 三軸陀螺儀

HMC5883L:三軸電子羅盤

BMP085:氣壓 + 溫度


[GY-88腳位]

VIN  -> arduino pin3

3V3  --> arduino 3v3

GND  -->  arduino GND

SCL -->  arduino A5

SDA --> arduino  A4

[GY-88函式庫]

在Arduino IDE搜尋"mpu6050" --> 安裝「Adafruit MPU6050」,如有跳出安裝相關library提示,也都要安裝。


//Adafruit MPU6050範例:basics_readings

// Basic demo for accelerometer readings from Adafruit MPU6050


#include <Adafruit_MPU6050.h>

#include <Adafruit_Sensor.h>

#include <Wire.h>


Adafruit_MPU6050 mpu;


void setup(void) {

  Serial.begin(115200);

  while (!Serial)

    delay(10); // will pause Zero, Leonardo, etc until serial console opens


  Serial.println("Adafruit MPU6050 test!");


  // Try to initialize!

  if (!mpu.begin()) {

    Serial.println("Failed to find MPU6050 chip");

    while (1) {

      delay(10);

    }

  }

  Serial.println("MPU6050 Found!");


  mpu.setAccelerometerRange(MPU6050_RANGE_8_G);

  Serial.print("Accelerometer range set to: ");

  switch (mpu.getAccelerometerRange()) {

  case MPU6050_RANGE_2_G:

    Serial.println("+-2G");

    break;

  case MPU6050_RANGE_4_G:

    Serial.println("+-4G");

    break;

  case MPU6050_RANGE_8_G:

    Serial.println("+-8G");

    break;

  case MPU6050_RANGE_16_G:

    Serial.println("+-16G");

    break;

  }

  mpu.setGyroRange(MPU6050_RANGE_500_DEG);

  Serial.print("Gyro range set to: ");

  switch (mpu.getGyroRange()) {

  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);

  Serial.print("Filter bandwidth set to: ");

  switch (mpu.getFilterBandwidth()) {

  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("");

  delay(100);

}


void loop() {


  /* Get new sensor events with the readings */

  sensors_event_t a, g, temp;

  mpu.getEvent(&a, &g, &temp);


  /* Print out the values */

  Serial.print("Acceleration X: ");

  Serial.print(a.acceleration.x);

  Serial.print(", Y: ");

  Serial.print(a.acceleration.y);

  Serial.print(", Z: ");

  Serial.print(a.acceleration.z);

  Serial.println(" m/s^2");


  Serial.print("Rotation X: ");

  Serial.print(g.gyro.x);

  Serial.print(", Y: ");

  Serial.print(g.gyro.y);

  Serial.print(", Z: ");

  Serial.print(g.gyro.z);

  Serial.println(" rad/s");


  Serial.print("Temperature: ");

  Serial.print(temp.temperature);

  Serial.println(" degC");


  Serial.println("");

  delay(500);

}