【问题标题】:Tap Detection data conversion for ADXL345 sensorADXL345 传感器的抽头检测数据转换
【发布时间】:2018-09-19 08:16:32
【问题描述】:

我正在使用 datasheet 以及其他我能够理解 TAP 阈值设置的库来连接 ADXL345 传感器。

我需要在example code 中确认:

// Set values for what is considered a TAP and what is a DOUBLE TAP (0-
 255)
adxl.setTapThreshold(50);           // 62.5 mg per increment
adxl.setTapDuration(15);            // 625 μs per increment
adxl.setDoubleTapLatency(80);       // 1.25 ms per increment
adxl.setDoubleTapWindow(200);       // 1.25 ms per increment

其中根据数据表中提到的比例因子提到的用户设置值, 我在这里面临疑问,需要清除这个

  1. Tap 解决方案中提到的值是十进制还是十六进制?

  2. 需要知道用于创建设置阈值的转换公式。

由于我使用的 ADXL345 传感器的最大分辨率为 13 位,所以我想按 13 位设置值

任何有关这方面的建议对我在 ADXL345 传感器与 Arduino 接口方面的工作都非常有帮助

【问题讨论】:

    标签: arduino hex arduino-ide adc assembly-resolution


    【解决方案1】:

    这些值是十进制值 - 您可以在 cmets 中看到它们与实际物理值的关系:

    adxl.setTapThreshold(50);           // 62.5 mg per increment -> 62.5mg * 50 = 3.125g
    adxl.setTapDuration(15);            // 625 μs per increment -> 625us * 15 = 9.375ms
    adxl.setDoubleTapLatency(80);       // 1.25 ms per increment -> 1.25ms * 80 = 100ms
    adxl.setDoubleTapWindow(200);       // 1.25 ms per increment -> 1.25ms * 200 = 250ms
    

    所以要计算出阈值 Xg 所需的值,请使用公式

    v = X / 62.5mg = X / 0.0625
    

    例如,对于 5g 的阈值:

    adxl.setTapThreshold(80); // Because 5 / 0.0625 = 80
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多