MPU6050得到角度的代码示例
时间: 2023-10-04 19:09:48 浏览: 85
以下是使用MPU6050获取角度的示例代码:
```
#include <Wire.h>
#include <MPU6050.h>
MPU6050 mpu;
int16_t ax, ay, az;
int16_t gx, gy, gz;
float roll, pitch;
void setup() {
Serial.begin(9600);
Wire.begin();
mpu.initialize();
mpu.setFullScaleGyroRange(MPU6050_GYRO_FS_250);
mpu.setFullScaleAccelRange(MPU6050_ACCEL_FS_2);
}
void loop() {
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
roll = atan2(ay, az) * 180 / PI;
pitch = atan2(-ax, sqrt(ay * ay + az * az)) * 180 / PI;
Serial.print("Roll: ");
Serial.print(roll);
Serial.print(" Pitch: ");
Serial.println(pitch);
delay(100);
}
```
该代码使用Wire库和MPU6050库,以读取传感器的加速度和角速度,然后计算出滚动和俯仰角度,并输出到串行监视器中。在设置函数中,MPU6050的陀螺仪和加速度计的全刻度范围被设置为250度每秒和2g。在主循环中,通过调用getMotion6函数从传感器读取六个运动传感器的原始值。然后,使用atan2函数计算出滚动和俯仰角度,并将它们转换为度数。最后,滚动和俯仰角度被输出到串行监视器中,并等待100毫秒,然后重复该过程。
阅读全文