本帖最后由 GSCmax 于 2015-5-3 19:53 编辑
最近在研究MPU6050,检测物体姿态,纯新手,但是有问题来了。看代码
- //这是完好的代码
- #include "Wire.h"
- #include "I2Cdev.h"
- #include "MPU6050.h"
- MPU6050 accelgyro;
- int16_t ax, ay, az;
- int16_t gx, gy, gz;
- float Ax, Ay, Az; //单位 g(9.8m/s^2)
- float JiaoDu; //存储加速度计算出的角度
- bool blinkState = false;
- void setup() {
- Wire.begin();
- Serial.begin(9600);
- Serial.println("Start");
- accelgyro.initialize();
- }
- void loop() {
- ZiTaiJianCe();
- delay(10);
- }
- void ZiTaiJianCe() {
- accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
- Ax = ax / 16384.00;
- Ay = ay / 16384.00;
- Az = az / 16384.00;
- JiaoDu = atan(Ax / sqrt(Az * Az + Ay * Ay)) * 180 / 3.14;
- Serial.println(JiaoDu);
- blinkState = !blinkState;
- }
- /*----------------------------------------------------
- SerialChart的代码
- [_setup_]
- port=COM3
- baudrate=9600
- width=1366
- height=200
- background_color = black
- grid_h_origin = 100
- grid_h_step = 50
- grid_h_color = #EEE
- grid_h_origin_color = #CCC
- grid_v_origin = 0
- grid_v_step = 200
- grid_v_color = #EEE
- grid_v_origin_color = transparent
- [_default_]
- min=-1
- max=1
- [ax]
- color=gold
- min=-90
- max=90
- ----------------------------------------------------*/
复制代码- //这是把MPU6050放在中断里的代码
- #include "Wire.h"
- #include "I2Cdev.h"
- #include "MPU6050.h"
- MPU6050 accelgyro;
- int pbIn = 1;// 定义中断引脚为1,也就是D3引脚
- int16_t ax, ay, az;
- int16_t gx, gy, gz;
- float Ax, Ay, Az; //单位 g(9.8m/s^2)
- float JiaoDu; //存储加速度计算出的角度
- bool blinkState = false;
- void setup() {
- Wire.begin();
- Serial.begin(9600);
- Serial.println("Start");
- accelgyro.initialize();
- attachInterrupt(pbIn, ZiTaiJianCe, RISING); // 监视中断输入引脚的变化
- }
- void loop() {
- //ZiTaiJianCe();
- delay(10);
- }
- void ZiTaiJianCe() {
- accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
- Ax = ax / 16384.00;
- Ay = ay / 16384.00;
- Az = az / 16384.00;
- JiaoDu = atan(Ax / sqrt(Az * Az + Ay * Ay)) * 180 / 3.14;
- Serial.println(JiaoDu);
- blinkState = !blinkState;
- }
- /*----------------------------------------------------
- SerialChart的代码
- [_setup_]
- port=COM3
- baudrate=9600
- width=1366
- height=200
- background_color = black
- grid_h_origin = 100
- grid_h_step = 50
- grid_h_color = #EEE
- grid_h_origin_color = #CCC
- grid_v_origin = 0
- grid_v_step = 200
- grid_v_color = #EEE
- grid_v_origin_color = transparent
- [_default_]
- min=-1
- max=1
- [ax]
- color=gold
- min=-90
- max=90
- ----------------------------------------------------*/
复制代码
两份代码都可以通过编译,但是第二个实验并不能输出MPU6050的数据,希望大神帮我看一下哪里有错 |