Преобразование данных обнаружения касания для датчика ADXL345 - PullRequest
0 голосов
/ 19 сентября 2018

Я взаимодействую ADXL345 с помощью таблицы , а также других библиотек, которые я могу понять при настройке порога TAP.

Мне нужноподтвердите, что в примере кода :

// 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

1 Ответ

0 голосов
/ 19 сентября 2018

Значения являются десятичными значениями - в комментариях вы можете увидеть, как они соотносятся с фактическими физическими значениями:

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

Например, для порога 5 г:

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