Результат акселерометра, сохраненный в двух дополнениях, всегда дает математическую ошибку 1LSB? - PullRequest
0 голосов
/ 30 марта 2019

Я написал университетскую диссертацию, в которой используется UC Atmega328, запрограммированный с помощью Ansi C, GNU Toolchain и MEMS-акселерометра MPU6050. Устройство работает, как я хотел, но я должен описать его, и у меня возникли проблемы с описанием результатов декодирования акселерометра.

Я использую шкалу +/- 8g и после прочтения правильного регистра через I2C он использует функцию «itoa» для вывода результата на консоль в виде десятичного числа строки ASCII. Затем в листе Excel я делю число на коэффициент и получаю ускорение, масштабируемое на «g».

Какой математически правильный способ расчета ускорения в г?

MPU6050 documentation says that:
- result is stored as "16-bit 2’s complement value" 
- it is scaled in +/- 8g, 
- "Sensitivity Scale Factor = 4096 LSB / g"

So +8g equal 8 * 4096 = 32768
and -8g equal -8 * 4096 = -32768

... но это невозможно сохранить в двух значениях дополнения, следовательно, минимальное значение 16-битового дополнения 16 бит -32768, но максимальное значение + 32,767

Для работы моего устройства это не проблема, но я больной перфекционист, а также боюсь, что преподаватели университетов поймают голубую картинку на этой странице моей диссертации.

Как правильно рассчитать ускорение g из необработанных результатов измерений акселерометра.

...