MPU6050, кажется, не дает значения должным образом, и никакие устройства i2c не нашли ошибку

Я использую MPU6050 с Arduino. Он читает что-то, но не числовые значения!

1- Соединения такие же, как показано ниже.


2- Затем я добавил библиотеку i2cdev отсюда и отсюда mpu6050.

Я скопировал их в C:\Program Files\Arduino\ библиотеки.


3 - Я попробовал пример DMP6, и он дает случайные символы


4- Я попробовал MPU6050_raw пример. Вы можете видеть, что он постоянно дает одни и те же символы, но не числовые значения

5- Здесь я видел эту тему MPU6050 DMP не работает? и загрузил i2c_scanner на устройство. Там написано " Устройства I2c не найдены ". Зачем?

6- Я увидел другую тему https://forum.arduino.cc/index.php?topic=404031.0 точно такую ​​же, как в моем случае. Я также пробовал код там, кажется, работает, но он дает постоянно -1 для значений акселерометра и гироскопа, хотя я перехожу MPU6050.

1 ответ

Решение

Полный ответ, так что этот вопрос может быть закрыт:

  1. В последовательном мониторе была выбрана неправильная скорость передачи. Эскиз MPU6050_DMP6.ino выводится со скоростью 115200 бод и MPU6050_raw.ino однако при скорости 38400 бод последовательный монитор был установлен на 9600, что вызывало рассинхронизацию интерфейса UART и получающихся в результате мусорных байтов.
  2. Контактный AD0 на MPU6050 используется для выбора младшего бита его адреса I2C. Этот вывод должен быть либо вытянут к VCC, либо опущен к GND. В этом примере, однако, он был оставлен неподключенным / плавающим, что приводит к тому, что устройство не имеет стабильного фиксированного адреса I²C. Эта проблема была исправлена ​​путем подключения AD0 с GND.
Другие вопросы по тегам