arduino读取mpu6050数据

//连线方法
//MPU-UNO
//VCC-VCC
//GND-GND
//SCL-A5
//SDA-A4
#include <Kalman.h>
#include <Wire.h>
#include <Math.h>
const int MPU = 0x68; //MPU-6050的I2C地址
const int nValCnt = 7; //一次读取寄存器的数量
void setup() {
  Serial.begin(9600); //初始化串口,指定波特率
  Wire.begin(); //初始化Wire库
  WriteMPUReg(0x6B, 0); //启动MPU6050设备
}
void loop() {
  int readouts[nValCnt];
  ReadAccGyr(readouts); //读出测量值
  for(int i=0;i<nValCnt;i++)
  {
    Serial.print(readouts[i]);
    Serial.print("   ");
  }
Serial.println();
}
//向MPU6050写入一个字节的数据
//指定寄存器地址与一个字节的值
void WriteMPUReg(int nReg, unsigned char nVal) {
Wire.beginTransmission(MPU);
Wire.write(nReg);
Wire.write(nVal);
Wire.endTransmission(true);
}
//从MPU6050读出加速度计三个分量、温度和三个角速度计
void ReadAccGyr(int *pVals) {
  Wire.beginTransmission(MPU);
  Wire.write(0x3B);
  Wire.requestFrom(MPU, nValCnt * 2, true);
  Wire.endTransmission(true);
  for (long i = 0; i < nValCnt; ++i) {
    pVals[i] = Wire.read() << 8 | Wire.read();
  }
}


猜你喜欢

转载自blog.csdn.net/lingdongtianxia/article/details/79957163