Как подключить датчик MPU6050 к Arduino MKR WIFI 1010?

sensors i2c mpu6050 mkr1010

Я пытался подключить MPU6050 к MKR WIFI 1010, следуя этим общим инструкциям. и использую библиотеку I2CDev, но постоянно сталкиваюсь с проблемами.

Некоторое время Arduino просто не отображался как подключенный в IDE, когда все контакты были подключены, что, как я понял, было связано с отсутствием подтягивающих резисторов для контактов SCL/SDA. Добавление подтягивающих резисторов на 10 кОм немного помогло (чтобы сделать Arduino видимым), но оно зависало при попытке загрузить пример скетча. Резисторы на 2,2 кОм, казалось, сделали свое дело, где теперь наброски примера (MPU6050_DMP6 или MPU6050_raw). Однако они по-прежнему не могут прочитать какие-либо фактические значения. Необработанный скетч дает 0 для всего, а скетч DMP6 печатает

Initializing I2C devices...
Testing device connections...
MPU6050 connection failed

Send any character to begin DMP programming and demo: 
Initializing DMP...
DMP Initialization failed (code 1)

Кто-нибудь знает, почему датчик по-прежнему не дает никаких измерений? Я подключаю VCC и GND от датчика к VCC (3,3 В) и GND от моего Arduino. SCL и SDA от датчика подключаются к VCC через резисторы 2,2 кОм и к контактам SCL и SDA платы Arduino (12 и 11). И INT от датчика подключен к цифровому контакту 2. (Я попробовал это на паре других контактов, таких как 0 и 1, так как это кажется из технические характеристики, что 2 не является контактом внешнего прерывания, но это ничего не изменило.)

Датчик и примеры работали без каких-либо дополнительных усилий на моем Arduino Uno, но, к сожалению, я случайно сжёг его с источником питания 12 В. Я, вероятно, просто возьму еще один Uno, но мне любопытно, почему это не сработало, если я что-то упускаю из I2C или MKR WIFI.

Я также отмечу, что мне пришлось добавить

define #BUFFER_LENGTH 64

на wire.h, чтобы получить скетчи, включая I2Cdev, для компиляции (следуя этим инструкциям).

, 👍1

Обсуждение

Да, определился как 64, хороший улов. (Отредактировано сейчас.) Я не запускал скетч сканера I2C, но могу попробовать. Для подключения SDA/SCL использовалась макетная плата, в которой оба контакта датчика были подключены к своим собственным рядам, резистор 2,2 кОм от каждого ряда к столбцу +3,3 В (который сам подключается к VCC как на Arduino, так и на датчике) и перемычка. кабели из этих рядов к контактам 11 и 12 на Arduino для SDA/SCL соответственно. Другая проводка — это GND (датчик) к отрицательному столбцу на макетной плате, к GND (Arduino) и INT (датчик) к цифровому выводу 2 (в чем я не был уверен, поэтому я также попробовал 0 и 1)., @Frecka

попробуйте скетч I2CScanner тоже без подтягиваний, @Juraj

Я вижу «устройство I2C, найденное по адресу 0x60» и «устройство I2C, найденное по адресу 0x6B», независимо от того, подключено ли что-либо к моему Arduino. Когда я попытался подключить датчик без подтягивающих резисторов, я получил сообщение об ошибке «java.io.IOException: jssc.SerialPortException: Имя порта — COM3; Имя метода — setEventsMask(); Тип исключения — Невозможно установить маску " и загорелся оранжевый индикатор CHRG (с быстрым пульсированием), @Frecka

MKR1010 имеет на борту устройства I2C, @Juraj

Так что тогда он так и не обнаружил датчик. Могут ли помочь различные подтягивающие резисторы? 4,7 кОм кажется типичным используемым значением, @Frecka

какой у тебя модуль с MPU6050?, @Juraj

Этот от Aukru: https://www.amazon.com/Aukru-Arduino-Accelerometer-6050-Gyroscope/dp/B019SX74TE/, @Frecka

Я подозреваю, что MPU 6050 сломан. Я получил новый Arduino Uno, и сканер I2C зависает при подключении MPU, независимо от того, есть ли у меня подтягивающие резисторы. (И он отлично работал без дополнительных подтягивающих резисторов с моим предыдущим Arduino Uno до того, как я его поджарил.) Я закажу новый MPU-6050., @Frecka


1 ответ


Лучший ответ:

1

Датчик действительно был сломан, и после заказа нового у меня не возникло никаких проблем.

,