该模块使用MPU9250芯片。

参数如下:
供电电源:3-5v(内部低压差稳压)
通信方式:标准IIC通信协议
芯片内置16bit AD转换器,16位数据输出
陀螺仪范围:±250 500 1000 2000 °/s
加速度范围:±2±4±8±16g
磁场范围: ±4800uT
引脚间距2.54mm
原理图:

这个模块可以测试三轴陀螺仪和三轴加速度,原厂的MPU9250还可以测试三轴的磁场。
模组提供的引脚很多,但作为测试,实际上只需要4根线就可以。与ESP8266的连接方式:
ESP8266 MPU6500
============================
3.3V VCC
GND GND
D1 SCL
D2 SDA
============================
依旧使用Arduino测试,需要第三方库支持(MPU9250_WE),代码如下:
#include <MPU6050_WE.h>
#include <Wire.h>
#define MPU6050_ADDR 0x68
MPU6050_WE myMPU6050 = MPU6050_WE(MPU6050_ADDR);
void setup() {
  Serial.begin(115200);
  Wire.begin();
  if(!myMPU6050.init()){
    Serial.println("MPU6050 does not respond");
  }
  else{
    Serial.println("MPU6050 is connected");
  }
  
  Serial.println("Position you MPU6050 flat and don't move it - calibrating...");
  delay(1000);
  myMPU6050.autoOffsets();
  Serial.println("Done!");
  
  /*  MPU6050_GYRO_RANGE_250       250 degrees per second (default)
   *  MPU6050_GYRO_RANGE_500       500 degrees per second
   *  MPU6050_GYRO_RANGE_1000     1000 degrees per second
   *  MPU6050_GYRO_RANGE_2000     2000 degrees per second
   */
  myMPU6050.setGyrRange(MPU6050_GYRO_RANGE_250);
  /*  MPU6050_ACC_RANGE_2G      2 g   (default)
   *  MPU6050_ACC_RANGE_4G      4 g
   *  MPU6050_ACC_RANGE_8G      8 g   
   *  MPU6050_ACC_RANGE_16G    16 g
   */
  myMPU6050.setAccRange(MPU6050_ACC_RANGE_2G);
  
  delay(200);
}
void loop() {
  xyzFloat gValue = myMPU6050.getGValues();
  xyzFloat gyr = myMPU6050.getGyrValues();
  float temp = myMPU6050.getTemperature();
  float resultantG = myMPU6050.getResultantG(gValue);
  Serial.println("Acceleration in g (x,y,z):");
  Serial.print(gValue.x);
  Serial.print("   ");
  Serial.print(gValue.y);
  Serial.print("   ");
  Serial.println(gValue.z);
  Serial.print("Resultant g: ");
  Serial.println(resultantG);
  Serial.println("Gyroscope data in degrees/s: ");
  Serial.print(gyr.x);
  Serial.print("   ");
  Serial.print(gyr.y);
  Serial.print("   ");
  Serial.println(gyr.z);
  Serial.print("Temperature in °C: ");
  Serial.println(temp);
  Serial.println("********************************************");
  delay(1000);
}伴随着模块的移动,输出参数有变化。

			
			
			
						
			
 我要赚赏金
