发 帖  
原厂入驻New
[问答] 请问ADXL355测量到的数据应该如何转换为单位为g的加速度值?
56 程序
分享
新入行,近期在测试ADXL355这个加速度计,使用的是SPI协议,用arduino开发的程序,目前程序输出的值如下:
22222.jpg

请问应当如何转换成加速度值?

程序部分代码如下:

void setup() {
  Serial.begin(115200);
  SPI.begin();

  pinMode(CHIP_SELECT_PIN,OUTPUT);

  writeRegister(RANGE,RANGE_10G);//使用10G
  writeRegister(POWER_CTL,MEASURE_MODE);

  delay(100);
}

void loop() {
  int axisAddresses[] = {XDATA1, XDATA2, XDATA3, YDATA1, YDATA2, YDATA3, ZDATA1, ZDATA2, ZDATA3};
  int axisMeasures[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
  int dataSize = 9;

  readMultipLEData(axisAddresses, dataSize, axisMeasures);

  int xdata = (axisMeasures[0] >> 4) + (axisMeasures[1] << 4) + (axisMeasures[2] << 12);
  int ydata = (axisMeasures[3] >> 4) + (axisMeasures[4] << 4) + (axisMeasures[5] << 12);
  int zdata = (axisMeasures[6] >> 4) + (axisMeasures[7] << 4) + (axisMeasures[8] << 12);

  IF (xdata >= 0x80000) {
    xdata = ~xdata + 1;
  }
  if (ydata >= 0x80000) {
    ydata = ~ydata + 1;
  }
  if (zdata >= 0x80000) {
    zdata = ~zdata + 1;
  }

  Serial.print("X=");
  Serial.print(xdata);
  Serial.print("\t");

  Serial.print("Y=");
  Serial.print(ydata);
  Serial.print("\t");

  Serial.print("Z=");
  Serial.print(zdata);
  Serial.print("\n");

  delay(100);
}


希望各位前辈指点指点
0
2020-9-8 14:39:23   评论 分享淘帖 邀请回答

只有小组成员才能发言,加入小组>>

1243个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表