【问题标题】:Getting acceleration without using LSM9DS1 library在不使用 LSM9DS1 库的情况下获得加速
【发布时间】:2022-12-13 01:14:04
【问题描述】:

我需要使用 wire.h 库而不是 Arduino_LSM9DS1.h 从 Arduino 33ble 中的 LSM9DS1 模块获取加速度坐标。

我试图从库中获取代码并实现它,但是我无法运行它。

#include <Wire.h>
#include <Arduino.h>

#define LSM9DS1_ADDRESS            0x6b
#define LSM9DS1_OUT_X_XL           0x28

int readRegisters(uint8_t slaveAddress, uint8_t address, uint8_t *data, size_t length);
bool continuousMode;

void setup() {
  Serial.begin(9600);
}

// Wire1.begin();

void readAcceleration() {
  float z;
  int16_t data[3];
  if (!readRegisters(LSM9DS1_ADDRESS, LSM9DS1_OUT_X_XL, (uint8_t *)data, sizeof(data))) {
    z = NAN;
  }
  z = data[2] * 4.0 / 32768.0;
}

void loop() {
  float z;
  readAcceleration();
  Serial.print(z);
}

我试图从库中获取代码并实现它,但是我无法运行它。运行 Arduino 33ble 时出错。

【问题讨论】:

    标签: arduino i2c acceleration


    【解决方案1】:

    您的readRegisters(...) 电话没有任何作用。您似乎只复制了函数的第一行。只看变量,我猜该函数向传感器发送 I2C 消息,然后处理读取响应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 2016-10-26
      • 2012-02-13
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多