快速解答

如果您的 MPU-6050 沒有回傳資料,請先執行 I2C 掃描器,確認位址為 0x68。如果掃描器找不到任何裝置,請檢查 SDA/SCL 接線與電源,然後確認邏輯電壓:GY-521 模組預期 3.3V 的 I2C,因此搭配 5V 的 Arduino 時,您需要位準轉換器或將 pull-up 拉到 3.3V。如果掃描器看到 0x68 但讀取失敗,問題通常是函式庫設定或缺少 pull-up。

確認 GY-521 已正確接線並供電

GY-521 擴充板有四個必要接腳:VCC、GND、SDA、SCL。如果您的開發板提供 3.3V,請用它供電;此模組的穩壓器與位準轉換極為精簡,若在 VCC 上施加 5V 可能會損壞 MPU-6050。將 SDA 連接到微控制器的 SDA 接腳,並將 SCL 連接到 SCL。在 Arduino Nano V3.0 上,SDA 是 A4,SCL 是 A5。在 WeMos D1 mini 上,SDA 是 D2,SCL 是 D1。請保持接線短且牢固——鬆脫的跳線是造成讀取間歇的常見原因。

如果您使用像 Arduino Nano 這樣的 5V 開發板,GY-521 的 I2C 線路並不耐 5V。您必須使用電位轉換器,或將模組以 3.3V 供電,並確保上拉電阻接到 3.3V,而不是 5V。許多 GY-521 板都包含連接到 VCC 的 4.7k 上拉電阻;如果 VCC 為 5V,這些上拉電阻會讓 MPU-6050 在 SDA/SCL 上暴露於 5V。請檢查您的模組是否有板載上拉電阻,如果您以 5V 供電,請考慮移除它們,不過這是精細的工作。

  • GY-521 請使用 3.3V 供電,而非 5V。
  • 在 Arduino Nano 上:SDA=A4,SCL=A5。
  • 在 WeMos D1 mini 上:SDA=D2,SCL=D1。
  • 請為 5V 開發板使用電位準轉換器。

執行 I2C 掃描器,查看感測器是否有回應

I2C 掃描器 sketch 會掃描所有位址,並回報任何有回應的裝置。將標準掃描器上傳到你的開發板,以 9600 或 115200 鮑率開啟序列埠監控視窗,然後尋找位於 0x68 的裝置。當 AD0 為低電位時,MPU-6050 的預設位址是 0x68;如果將 AD0 拉高,位址會變成 0x69。如果掃描器找不到任何裝置,問題出在接線、電源或上拉電阻。如果找到 0x68,但你的感測器函式庫失敗,問題很可能在程式碼或函式庫設定。

如果掃描器顯示 0x68,但仍無法取得資料,請試試您所用函式庫的範例程式碼(例如 Adafruit_MPU6050 或 MPU6050_tockn)。請確認您呼叫了正確的 begin() 函式,且程式碼中的 I2C 位址與 0x68 相符。有些函式庫預設為 0x68,其他則需要您自行指定。另外也請檢查在具有多個匯流排的板子上,您是否使用了不同的 I2C 匯流排(Wire 與 Wire1)。

  • 掃描器找到 0x68:接線與電源正常;請專注於程式碼。
  • 掃描器發現 0x69:AD0 過高;請在程式碼中調整位址。
  • 掃描器找不到任何裝置:請檢查 SDA/SCL、電源與上拉電阻。

解決 0x68 衝突與上拉電阻問題

如果掃描器偵測到 0x68,但你的程式碼仍然失敗,匯流排上的另一個裝置可能正在使用相同位址。常見的 I2C 裝置,例如某些 OLED 顯示器或其他感測器,也可能位於 0x68。請斷開其他 I2C 裝置,並單獨測試 MPU-6050。如果單獨運作正常,就是位址衝突。你可以將 AD0 拉高,把 MPU-6050 的位址改為 0x69,但這需要一個空閒接腳或焊接橋接。

缺少或錯誤的上拉電阻也可能導致故障。GY-521 通常包含連接到 VCC 的 4.7k 上拉電阻。如果您以 3.3V 供電,這些上拉電阻適用於 3.3V 邏輯。如果您使用電位轉換器,請確保高壓側有連接到 5V 的上拉電阻,低壓側有連接到 3.3V 的上拉電阻;許多電位轉換器已內建這些電阻。如果您移除了模組的上拉電阻,或使用的是裸 MPU-6050 晶片,請從 SDA 和 SCL 添加外部 4.7k 電阻連接到 3.3V。

  • 請中斷其他 I2C 裝置的連線,以排除位址衝突。
  • 將 AD0 向上拖曳,即可將位址變更為 0x69。
  • 如果您的模組沒有內建 4.7k 提升電阻,請外加。

何時該停下來,改採不同的做法

如果您已確認接線、電源、位址與上拉電阻,掃描器仍找不到任何裝置,模組可能已損壞。MPU-6050 對過電壓很敏感;若不小心將 5V 接到 VCC 或 SDA/SCL,它可能已經故障。此時,更換 GY-521 是最實際的做法。如果您需要更穩固的 5V 系統解決方案,可考慮採用原生 3.3V 的微控制器,例如 WeMos D1 mini,能完全避免電位轉換。對於需要精確動作追蹤的專案,內建 5V 耐受度的高階 IMU 或許能節省除錯時間。

  • 如果所有檢查都失敗,請懷疑感測器可能損壞。
  • 考慮使用 3.3V 板,以避免電位轉換。
  • 針對進階需求,請尋找具有 5V 容差的 IMU。

診斷檢查清單

  • I2C 掃描器未找到任何裝置: 檢查電源(3.3V)、SDA/SCL 連接和上拉電阻。確保模組沒有損壞。 如果接線與電源都正確,請更換模組。
  • 掃描器找到 0x68,但程式庫失敗: 請檢查函式庫的 begin() 函式與位址設定。試試其他函式庫或範例程式碼。 如果程式碼正確,請檢查 I2C 匯流排速度問題;試試 100kHz。
  • 讀數間歇或出現雜訊: 縮短線路,在 VCC 與 GND 之間加入去耦電容(0.1uF),並確保連接穩固。 如果雜訊持續存在,請考慮改用其他感測器或屏蔽電纜。

產品資訊

  • GY-521 MPU-6050 模組 3 軸陀螺儀 + 3 軸加速度計模組: 晶片:MPU-6050;電源供應:35V;通訊模式:標準 IIC 通訊協定;晶片內建 16 位元 AD 轉換器。35V 的供電範圍常被誤讀為可耐受 5V 的 I2C;I2C 線路並不具備 5V 耐受能力,因此使用 5V 微控制器時需要進行電位轉換。
  • Arduino 相容 Nano V3.0,附免費 USB 傳輸線: 相容於 Arduino 的 Nano V3.0,採用 ATmega328;沒有 DC 電源插座;可使用 Mini-B USB 傳輸線運作。這款 5V 板子是 GY-521 的常見主機;其 I2C 腳位(A4/A5)為 5V 邏輯,因此您必須進行電位轉換,或從 3.3V 為感測器供電,以避免損壞。
  • WeMos D1 迷你原型擴充板: WeMos D1 mini Prototyping Shield 專為 WeMos D1 mini 與 mini Pro 設計;隨附 3 組排針(需自行焊接);可堆疊使用。WeMos D1 mini 是 3.3V 板,因此可直接連接 GY-521,無需位準轉換器,簡化 I2C 接線並減少故障點。