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 ответ
Полный ответ, так что этот вопрос может быть закрыт:
- В последовательном мониторе была выбрана неправильная скорость передачи. Эскиз
MPU6050_DMP6.ino
выводится со скоростью 115200 бод иMPU6050_raw.ino
однако при скорости 38400 бод последовательный монитор был установлен на 9600, что вызывало рассинхронизацию интерфейса UART и получающихся в результате мусорных байтов. - Контактный
AD0
на MPU6050 используется для выбора младшего бита его адреса I2C. Этот вывод должен быть либо вытянут к VCC, либо опущен к GND. В этом примере, однако, он был оставлен неподключенным / плавающим, что приводит к тому, что устройство не имеет стабильного фиксированного адреса I²C. Эта проблема была исправлена путем подключения AD0 с GND.