ESP32 无法连接到 MPU9500/6500

问题描述 投票:0回答:1

我目前使用 ESP-32s WROOM 开发板 v1.1 作为控制模块。我已使用以下连接将其作为 IMU 连接到 MPU9250/6500: 作为 ESP-32s WROOM 开发板 v1.1 的代码,我使用了 Arduino IDE 2.2.1(ALKS ESP32 作为板),代码如下:

    #include "MPU9250.h"

    // an MPU9250 object with the MPU-9250 sensor on I2C bus 0 with address 0x68
    MPU9250 IMU(Wire, 0x68);
    int status;

    void setup() {
      // serial to display data
      Serial.begin(115200);
      while (!Serial) {}

      // start communication with IMU
      status = IMU.begin();
      if (status < 0) {
        Serial.println("IMU initialization unsuccessful");
        Serial.println("Check IMU wiring or try cycling power");
        Serial.print("Status: ");
        Serial.println(status);
        while (1) {}
      }
    }

    void loop() {
      // read the sensor
      IMU.readSensor();
      // display the data
      Serial.print(IMU.getAccelX_mss(), 6);
      Serial.print("\t");
      Serial.print(IMU.getAccelY_mss(), 6);
      Serial.print("\t");
      Serial.print(IMU.getAccelZ_mss(), 6);
      Serial.print("\t");
      Serial.print(IMU.getGyroX_rads(), 6);
      Serial.print("\t");
      Serial.print(IMU.getGyroY_rads(), 6);
      Serial.print("\t");
      Serial.print(IMU.getGyroZ_rads(), 6);
      Serial.print("\t");
      Serial.print(IMU.getMagX_uT(), 6);
      Serial.print("\t");
      Serial.print(IMU.getMagY_uT(), 6);
      Serial.print("\t");
      Serial.print(IMU.getMagZ_uT(), 6);
      Serial.print("\t");
      Serial.println(IMU.getTemperature_C(), 6);
      delay(100);
    }

这是来自教程here的代码,使用提到的库(我已经安装了)。 现在,当我在 ESP32 上运行此代码时,串行监视器中返回以下结果:

    IMU initialization unsuccessful
    Check IMU wiring or try cycling power
    Status: -1

这显然是一个问题,这就是我寻求帮助的原因。因为如果我理解正确的话,ESP32无法连接到MPU9250/6500。 (是的,我已经检查过接线是否正确)

我尝试了以下方法:

arduino esp32 mpu
1个回答
0
投票

我想通了。因此,事实证明,由于某种原因,使用

Wire.begin()
初始化 I2C 协议并没有使用标准 SDA 和 SCL 引脚。为此,您必须使用线
Wire.begin(21, 22)
初始化 I2C 通信,该线将 SDA 和 SCL 引脚设置为 21 和 22。 要实现这一点,您需要执行以下操作:

TwoWire MainWire = TwoWire(0);
MPU9250 IMU = MPU9250(MainWire, 0x68);

在代码的开头。设置如下:

MainWire.begin(21,22); 
IMU.begin();
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.