gump80 发表于 2014-9-13 12:22:26

怎样读取Gy-521 Z轴的角速度及加速度

无论怎样动,az、gz读数好像都没有变化

代码如下

#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;
float Gx,Gy,Gz;

#define LED_PIN 13
bool blinkState = false;

void setup() {
    Wire.begin();

    Serial.begin(38400);

    Serial.println("Initializing I2C devices...");
    accelgyro.initialize();

    Serial.println("Testing device connections...");
    Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");

    pinMode(LED_PIN, OUTPUT);
}

void loop() {
    accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
    Ax=float(ax)/131.00;
    Ay=float(ay)/131.00;
    Az=float(az)/131.00;
    Gx=float(gx)/16384.00;
    Gy=float(gy)/16384.00;
    Gz=float(gz)/16384.00;
   
   
   
    Serial.print("a/g:\t");
    Serial.print(Ax); Serial.print("\t");
    Serial.print(Ay); Serial.print("\t");
    Serial.print(Az); Serial.print("\t");
    Serial.print(Gx); Serial.print("\t");
    Serial.print(Gy); Serial.print("\t");
    Serial.println(Gz);

    blinkState = !blinkState;
    digitalWrite(LED_PIN, blinkState);
}

eddiewwm 发表于 2014-9-13 19:47:28

代碼已試過沒問題,應是硬件接線的問題。

另外,為甚麼 Gx,Gy,Gz 要除 16384.00?

gump80 发表于 2014-9-16 13:03:21

eddiewwm 发表于 2014-9-13 19:47 static/image/common/back.gif
代碼已試過沒問題,應是硬件接線的問題。

另外,為甚麼 Gx,Gy,Gz 要除 16384.00?

gx,gy,gz是直接从寄存器读出来的数据,其只是mpu对应g的值
g量程为±2g,   对应   16384 LSB/g,
就像单位换算一样,要读出来数据要除以16384,才是真正的通常的加速度值。
不同量程,除以的数值不一样!

gump80 发表于 2014-9-16 13:05:27

我手上的GY-521是10元左右的板子,我怀疑引用的函数库不正确!

请高手们赐教!

eddiewwm 发表于 2014-9-16 20:45:53

gump80 发表于 2014-9-16 13:03 static/image/common/back.gif
gx,gy,gz是直接从寄存器读出来的数据,其只是mpu对应g的值
g量程为±2g,   对应   16384 LSB/g,
就像 ...

但除以 16384.00 這樣大的數,出來的結果就變得很小了,這個要小心啊!

若擔心手上的庫有問題,可用以下這個。


另外注意要連接 INT 啊。

gump80 发表于 2014-9-17 14:32:18

INT我没有接,我只接SDA--A4、SCL--A5、VCC--5v、GND这四根线。INT 接arduino板的哪只脚?

RangerS 发表于 2017-3-13 21:05:02

gump80 发表于 2014-9-16 13:03
gx,gy,gz是直接从寄存器读出来的数据,其只是mpu对应g的值
g量程为±2g,   对应   16384 LSB/g,
就 ...

楼主不对吧,加速度计的典型值是16384,陀螺仪的典型值是131你是除反了吧

秦始皇 发表于 2017-8-3 12:15:39

gump80 发表于 2014-9-17 14:32
INT我没有接,我只接SDA--A4、SCL--A5、VCC--5v、GND这四根线。INT 接arduino板的哪只脚?

请问6050和Arduino mage 2560怎么接线呢?我也只是接了SDL,SCL,VCC,GND
页: [1]
查看完整版本: 怎样读取Gy-521 Z轴的角速度及加速度