Получение обратных значений ускорения и наклона для MPU 6050

Я использую библиотеку I2C для подключения к плате GY-521, и при выполнении методов getAcceleration() я получаю значения гироскопа и наоборот.

Это моя настройка (я использую прото-щит, но, насколько я понимаю, это ничего не должно изменить):

Это следует из этой схемы:

И это код, который я тестирую:

#include "Wire.h"

#include "MPU6050.h"

MPU6050 accel;

int16_t ax, ay, az;

void setup() {
    Wire.begin();
    Serial.begin(9600);
    Serial.println("Initializing I2C devices...");
    accel.initialize();
    Serial.println("Testing device connections...");
    Serial.println(accel.testConnection() ? "Connected" : "Connection failed");
}

void loop() {
    accel.getAcceleration(&ax, &ay, &az);
    Serial.print("acc x:    ");
    Serial.println(ax);  // This prints the gyro value of the Y axis!
    delay(1000);
}

Я не думаю, что это связано с проводкой, так как инвертирование 4 и 5 аналоговых выводов дает нулевые значения.

Это проблема с библиотекой? Или с моим чипом?

, 👍2

Обсуждение

Я думаю, что это должно быть проблемой с библиотекой или с вашим методом определения того, какой набор значений является ускорением и гироскопом, я думаю. Гироскоп должен быть полностью обнулен, когда датчик неподвижен. Откуда вы скачали библиотеку?, @BrettAM

Да, я уверен, что это значение гироскопа (у меня даже есть видео, если оно вам нужно). Так что я предполагаю, что это библиотека... Я могу просто завершить его правильными именами, @Alvaro

Лично я использую accel.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);, который выдает все значения, генерируемые датчиком. Просто для уверенности, если вы используете " accelgyro.getAcceleration(&ax, &ay, &az)", вы получаете данные гироскопа, а если вы используете " accelgyro.getRotation(&gx, &gy, &gz)", вы получаете данные акселерометра? Если вы на самом деле неправильно получаете значения, вы можете просто использовать переменные "неправильно", я знаю, что это не так, как должно работать., @Mathieu Brouwers


1 ответ


-1

Существует множество библиотек, я бы не стал использовать библиотеку акселерометров в wire, скачайте и добавьте библиотеку I2Cdev, вы можете получить ее на различных сайтах, таких как github.com

,

Не могли бы вы, пожалуйста, развить свой ответ дальше? В настоящее время это не типичный полезный ответ: нет реальной ценности, нет деталей, нет причин, по которым "вы бы не использовали библиотеку акселерометров..." Для меня вы могли бы опубликовать это в качестве комментария к вопросу., @jfpoilpret