ADXL读数跳变问题
Z轴垂直于平面,XY均在平面内的情况
红色为X轴向,绿色为Y轴向,蓝色为Z轴向,XY轴向均出现±1g的跳变,Z轴向没有,降低传输速率亦存在
X轴垂直于平面,YZ在平面内,三个轴向均出现跳变,幅值都为±1g
XYZ三轴向均不平行或垂直于平面时则无此毛刺产生(同样的速率及硬件
电路)
硬件电路部分
软件部分
初始化
if(ADXL345_RD_Reg(DEVICE_ID)==0XE5) //¶ÁÈ¡Æ÷¼þID
{
ADXL345_WR_Reg(DATA_FORMAT,0X2B); //µÍµçƽÖжÏÊä³ö,13λȫ·Ö±æÂÊ,Êä³öÊý¾ÝÓÒ¶ÔÆë,16gÁ¿³Ì
ADXL345_WR_Reg(BW_RATE,0x0f); //Êý¾ÝÊä³öËÙ¶ÈΪ100Hz
ADXL345_WR_Reg(POWER_CTL,0x28); //Á´½ÓʹÄÜ,²âÁ¿Ä£Ê½
ADXL345_WR_Reg(INT_ENABLE,0x00); //²»Ê¹ÓÃÖжÏ
ADXL345_WR_Reg(OFSX,0x00);
ADXL345_WR_Reg(OFSY,0x00);
ADXL345_WR_Reg(OFSZ,0x00);
return 0;
}
读数及数据处理
for(i=0;i<6;i++)
{
gXYZ_BUF
=ADXL345_RD_Reg(0x32+i); //¶ÁÈ¡Ò»¸ö×Ö½Ú,¼ÌÐø¶Á,·¢ËÍACK
}
gX=(short)(((u16)gXYZ_BUF[1]<<8)+gXYZ_BUF[0]);
gY=(short)(((u16)gXYZ_BUF[3]<<8)+gXYZ_BUF[2]);
gZ=(short)(((u16)gXYZ_BUF[5]<<8)+gXYZ_BUF[4]);
gX=gX*3.9/1000;
gY=gY*3.9/1000;//发送显示的值
gZ=gZ*3.9/1000;