Alvin007 发表于 2011-12-1 18:02:14

ADXL345输出数据错误,X轴总是多出 -1g左右

先上代码

u8    adxl_init(void)
{
    adxl_port_config();                  //端口初始化
    //最小初始化序列
    adxl_writebyte(0x31,0x0B);            
    adxl_writebyte(0x2D,0x08);            
    adxl_writebyte(0x2E,0x80);            
    return ADXL_READY;
}

voidadxl_get3axis(u16 *buf)
{
    u8 i = 0;
    if(!ADXL_GET_INT())
      return;
    i = adxl_readbyte(0x30);
    ADXL_CS_ON();                                                      //使能芯片                                                
    i = Spi1_SendReceiveByte(0xF2);                                    //   起始地址    读指令    MB:多字节
                                                                     //0xF2 = 0x32   |   0x80   |    0x40
    for(i=0;i<6;i++)
      buf = Spi1_SendReceiveByte(0xFF);
    ADXL_CS_OFF();                                                   //除能芯片
}

s16    adxl_getangle(u16 *buf, float *angle)
{
    s16 angleXX = (buf<<8) | buf;
    s16 angleYY = (buf<<8) | buf;
    s16 angleZZ = (buf<<8) | buf;
    angle = angleXX*3.9;
    angle = angleYY*3.9;
    angle = angleZZ*3.9;
}


处理到这个地方的时候发现,X轴总是多出-1g,任何姿态都是这个样子。

比如,按照手册上所述,水平向上的时候:
Xout = 0g    Yout = 0g    Zout = 1g

但是我的实际输出是:
Xout =-1g    Yout = 0g    Zout = 1g


X轴垂直指向上的时候,Xout达到-2g


不知道是哪里设置错了呢?

haolxy 发表于 2011-12-1 19:55:33

需要做零点校准的

Alvin007 发表于 2011-12-2 10:38:50

回复【1楼】haolxy飞鸟
需要做零点校准的
-----------------------------------------------------------------------

多谢

不校准的话,会漂移1g之多吗?

Alvin007 发表于 2011-12-2 11:04:53

OMG
上电测试了一下,同样的程序
过了一夜,好了。。。

目前还没找到原因。。。

cqy1028 发表于 2011-12-2 11:11:36

lz,加速度传感器在撞击,焊接,电源接反,等意外过后。很可能出现一个固定的异常数据。需要静置一夜的。以前曾经被它摆过一道

Alvin007 发表于 2011-12-2 12:48:22

回复【4楼】cqy1028秋阳
lz,加速度传感器在撞击,焊接,电源接反,等意外过后。很可能出现一个固定的异常数据。需要静置一夜的。以前曾经被它摆过一道
-----------------------------------------------------------------------

受教了

Alvin007 发表于 2011-12-2 15:07:09

数值跳动在0.005g左右,不知道算大算小

zerok 发表于 2011-12-3 12:45:33

回复【6楼】Alvin007
-----------------------------------------------------------------------

LZ 请教个问题,ADXL345数据格式,若是±8g,12位分辨率,右对齐情况下,其符号位占几位?如果分为高低各8位,那么是高五位都是符号位,还是高字节的第四位位符号位?谢谢

zerok 发表于 2011-12-3 19:06:13

弄出来了,高5位都是符号位,或者全零或者全一

蓝海de梦 发表于 2012-8-15 19:21:52

原来是这样啊   害我找了一整天的原因   先搁一夜看看不就早上测试时候弹了它几下么来脾气了还

chenjiawei7 发表于 2012-9-1 12:48:42

我的ADXL345数据是正常,我用FIFO水印中断读取数值,一开始进不了中断,后来进去了,然后再取均值,数据跳的厉害,有没有人知道怎么写滤波的程序啊

蕾蕾 发表于 2013-5-1 12:37:35

cqy1028 发表于 2011-12-2 11:11 static/image/common/back.gif
lz,加速度传感器在撞击,焊接,电源接反,等意外过后。很可能出现一个固定的异常数据。需要静置一夜的。以 ...

请问静置一夜具体是多长时间啊?我之前将传感器电源正负接反了,现在传感器各轴显示为0,不过我现在时间很紧,不知道是不是需要静置。。。还有,我用另外的模块各轴也是显示0 ,之前还是可以测得数据的,现在两个模块都不行了,不知道是不是这个原因啊。。。请教了~
页: [1]
查看完整版本: ADXL345输出数据错误,X轴总是多出 -1g左右