чтение необработанных данных платы прерывания MPU-9150 с помощью Arduino micro

Мы пытаемся подключить плату прерывания MPU-9150 к arduino micro и использовали пример кода, предложенный в документе sparkfun (https://github.com/sparkfun/MPU-9150_Breakout/tree/master/прошивки), чтобы прочитать необработанные данные. Наш Vcc всегда 3,3 В. И наша скорость передачи данных составляет 9600. Вот что показывает монитор последовательного порта. все значения 9DOF равны нулю

a/g/m: 0 0 0 0 0 0 0 0 0 
a/g/m: 0 0 0 0 0 0 0 0 0 
a/g/m: 0 0 0 0 0 0 0 0 0 
a/g/m: 0 0 0 0 0 0 0 0 0 
a/g/m: 0 0 0 0 0 0 0 0 0 …

Когда мы используем код, предложенный на игровой площадке Arduino: http://playground.arduino.cc//Main/MPU-9150 Вот что у нас получилось. Теперь все значения -1

-1 -1 -1 -1 -1 -1 -1 -1 -1 
36.50 -1 -1 -1 -1 -1 -1 -1 -1 -1 
36.50 -1 -1 -1 -1 -1 -1 -1 -1 -1 
36.50 -1 -1 -1 -1 -1 -1 -1 -1 -1 
36.50 -1 -1 -1 -1 -1 -1 -1 -1 -1 
36.50 -1 -1 -1 -1 -1 -1 -1 -1 -1 
36.50 -1 -1 -1 -1 -1 -1 -1 -1 -1 

........ Мы также уверены в связях. Мы действительно понятия не имеем, где мы делаем неправильно. Vcc, GND, SCL и SDA подключены. любой комментарий будет оценен.


person Pok    schedule 16.11.2013    source источник


Ответы (3)


У меня точно такая же проблема со вторым кодом, который вы упомянули (-1 -1 -1 ....)

У меня были другие ошибки с первым, и я вообще не мог заставить его работать. (Я очень новичок в программировании Arduino, поэтому почти на 100% уверен, что это будет что-то, что я делаю неправильно).

Однако я получил более старый код, связанный с вашим первым примером, работающим следующим образом:

Загрузите zip-файл с: https://github.com/sparkfun/MPU-9150_Breakout (zip-файл находится с правой стороны)

Разархивируйте, скопируйте папки I2Cdev и MPU6150 в C:.../users/.../documents/arduino/libraries/ (или аналогичный, где хранятся библиотеки)

Запустить Ардуино

Откройте программу: MPU9150_raw и загрузите (она находится в MPU6150\examples\MPU9150_raw)

Откройте последовательный монитор

Измените скорость передачи данных на 36000

надеюсь работает!


Недавно я также получил код по адресу player.arduino.cc//Main/MPU-9150, работающий с Arduino Uno и коммутационной платой. Если вы используете коммутационную плату sparkfun, я думаю, вам нужно изменить код в двух местах, чтобы изменить адрес I2C на 0x68, потому что AD0 на плате имеет низкий, а не высокий уровень. Таким образом, вы должны искать int MPU9150_I2C_ADDRESS = 0x69; и измените на 0x68 (это упоминается в коде, так что извините, если это очевидно для большинства людей, просто подумал, что я все равно опубликую это, если это поможет кому-то еще).

На веб-странице arduino для 6050 (у меня недостаточно репутации, чтобы опубликовать другую ссылку) написано

«I2C-адрес зависит от вывода AD0 датчика. Если он подключен к земле, то адрес равен 0x68. Если он подключен к VLOGIC (+3,3 В), это 0x69. датчик MPU-6050 уже припаян к нему. Некоторые из этих плат имеют подтягивающий резистор на AD0 (адрес = 0x68), другие имеют подтягивающий резистор (адрес = 0x69)».

person S.H.    schedule 26.11.2013

Та же проблема. Просто измените адрес I2C вашего устройства... Подключите AD0 к GND и выберите

person zyllia    schedule 31.05.2014
comment
Что вы имеете в виду под и чо? - person Philippe Blayo; 31.05.2014

у меня тоже mpu9150. этот код дает мне необработанные значения для всех трех внутренних чипов. дважды проверьте скорость передачи данных. удачи

https://github.com/sparkfun/MPU-9150_Breakout/blob/master/firmware/MPU6050/Examples/MPU9150_raw/MPU9150_raw.ino

person user3052857    schedule 30.11.2013