Official Hobby Components Online Store | Buy Electronic Kits, Components, Boards, Shields, Modules

MPU-6050 GY-521 non legge? Risolvi i problemi I2C comuni

MPU-6050 GY-521 non legge? Risolvi i problemi I2C comuni

By Official Hobby Components Online Store | Buy Electronic Kits, Components, Boards, Shields, Modules | Published: 2026-10-15

Category: Consigli e cura

Esegui il debug di un GY-521 MPU-6050 che non restituisce dati su I2C: controlla il cablaggio, esegui uno scanner I2C, conferma l'indirizzo 0x68 e risolvi i problemi di livello 3.3V.

Risposta rapida

Se il tuo MPU-6050 non restituisce dati, esegui prima uno scanner I2C per confermare che l'indirizzo sia 0x68. Se lo scanner non trova nulla, controlla il cablaggio SDA/SCL e l'alimentazione, poi verifica i livelli logici: il modulo GY-521 si aspetta I2C a 3.3V, quindi con un Arduino a 5V serve un level shifter o delle pull-up a 3.3V. Se lo scanner rileva 0x68 ma le letture falliscono, il problema è di solito la configurazione della libreria o la mancanza di pull-up.

Verifica che il GY-521 sia collegato e alimentato correttamente

Il breakout GY-521 ha quattro pin essenziali: VCC, GND, SDA, SCL. Alimentalo a 3.3 V se la tua scheda lo fornisce; il regolatore e il level shifting del modulo sono minimi, e 5 V su VCC può danneggiare l'MPU-6050. Collega SDA al pin SDA del tuo microcontrollore e SCL a SCL. Su un Arduino Nano V3.0, SDA è A4 e SCL è A5. Su un WeMos D1 mini, SDA è D2 e SCL è D1. Mantieni i fili corti e fissati bene—i jumper allentati sono una causa comune di letture intermittenti.

Se utilizzi una scheda 5V come l’Arduino Nano, le linee I2C del GY-521 non sono tolleranti a 5V. Devi usare un level shifter oppure alimentare il modulo a 3.3V e assicurarti che i pull-up vadano a 3.3V, non a 5V. Molte schede GY-521 includono pull-up da 4.7k verso VCC; se VCC è a 5V, questi pull-up esporranno l’MPU-6050 a 5V su SDA/SCL. Controlla il tuo modulo per eventuali resistenze pull-up integrate e valuta di rimuoverle se alimenti a 5V, anche se si tratta di un lavoro delicato.

  • Alimenta il GY-521 a 3.3 V, non a 5 V.
  • Su Arduino Nano: SDA=A4, SCL=A5.
  • Sul WeMos D1 mini: SDA=D2, SCL=D1.
  • Usa un level shifter per le schede 5V.

Esegui uno scanner I2C per verificare se il sensore risponde

Uno sketch scanner I2C scansiona tutti gli indirizzi e segnala qualsiasi dispositivo che risponde. Carica uno scanner standard sulla tua scheda, apri il monitor seriale a 9600 o 115200 baud e cerca un dispositivo all’indirizzo 0x68. L’indirizzo predefinito dell’MPU-6050 è 0x68 quando AD0 è basso; se AD0 viene portato alto, l’indirizzo diventa 0x69. Se lo scanner non trova nulla, il problema è nel cablaggio, nell’alimentazione o nelle resistenze di pull-up. Se trova 0x68 ma la tua libreria del sensore non funziona, il problema è probabilmente nel codice o nelle impostazioni della libreria.

Se lo scanner mostra 0x68 ma continui a non ricevere dati, prova lo sketch di esempio della libreria che stai usando (ad es. Adafruit_MPU6050 o MPU6050_tockn). Assicurati di chiamare la funzione begin() corretta e che l'indirizzo I2C nel tuo codice corrisponda a 0x68. Alcune librerie usano 0x68 come predefinito, altre richiedono di specificarlo. Controlla anche di non stare usando un bus I2C diverso (Wire vs Wire1) sulle schede con più bus.

  • Lo scanner rileva 0x68: cablaggio e alimentazione sono a posto; concentrati sul codice.
  • Lo scanner rileva 0x69: AD0 è alta; regola l'indirizzo nel codice.
  • Lo scanner non trova nulla: controlla SDA/SCL, l'alimentazione e le resistenze di pull-up.

Risolvere i conflitti 0x68 e i problemi con le resistenze pull-up

Se lo scanner rileva 0x68 ma il tuo codice continua a fallire, un altro dispositivo sul bus potrebbe usare lo stesso indirizzo. I dispositivi I2C comuni, come alcuni display OLED o altri sensori, possono trovarsi anch'essi a 0x68. Scollega gli altri dispositivi I2C e prova l'MPU-6050 da solo. Se funziona da solo, hai un conflitto di indirizzi. Puoi cambiare l'indirizzo dell'MPU-6050 in 0x69 portando AD0 alto, ma ciò richiede un pin libero o un ponte di saldatura.

Resistenze di pull-up mancanti o errate possono anch'esse causare malfunzionamenti. Il GY-521 di solito include pull-up da 4.7k verso VCC. Se alimenti a 3.3V, tali pull-up sono corrette per la logica a 3.3V. Se usi un level shifter, assicurati che il lato alto abbia pull-up verso 5V e il lato basso verso 3.3V; molti level shifter li includono. Se hai rimosso le pull-up del modulo o stai usando un chip MPU-6050 nudo, aggiungi resistenze esterne da 4.7k da SDA e SCL a 3.3V.

  • Scollega gli altri dispositivi I2C per escludere conflitti di indirizzi.
  • Trascina AD0 verso l’alto per cambiare l’indirizzo in 0x69.
  • Aggiungi resistenze di pull-up esterne da 4.7k se il tuo modulo non le ha.

Quando fermarsi e scegliere un approccio diverso

Se hai verificato cablaggio, alimentazione, indirizzo e pull-up, e lo scanner continua a non trovare nulla, il modulo potrebbe essere danneggiato. L'MPU-6050 è sensibile alle sovratensioni; se è stato accidentalmente collegato a 5 V su VCC o SDA/SCL, potrebbe essere guasto. A quel punto, sostituire il GY-521 è il passo più pratico. Se hai bisogno di una soluzione più robusta per sistemi a 5 V, considera un microcontrollore nativo a 3.3 V come il WeMos D1 mini, che evita completamente il level shifting. Per progetti che richiedono un tracciamento preciso del movimento, un'IMU di fascia alta con tolleranza integrata di 5 V potrebbe farti risparmiare tempo di debug.

  • Se tutti i controlli falliscono, sospetta un sensore danneggiato.
  • Considera una scheda 3.3V per evitare il level shifting.
  • Per esigenze avanzate, cerca un'IMU con tolleranza di 5V.

Checklist di diagnosi

  • Nessun dispositivo trovato dallo scanner I2C: Controlla l'alimentazione (3.3V), i collegamenti SDA/SCL e le resistenze di pull-up. Assicurati che il modulo non sia danneggiato. Se il cablaggio e l’alimentazione sono corretti, sostituire il modulo.
  • Lo scanner rileva 0x68 ma la libreria non funziona: Verifica la funzione begin() della libreria e l'impostazione dell'indirizzo. Prova una libreria o uno sketch di esempio diverso. Se il codice è corretto, verifica eventuali problemi di velocità del bus I2C; prova 100kHz.
  • Letture intermittenti o disturbate: Accorcia i fili, aggiungi un condensatore di disaccoppiamento (0.1uF) tra VCC e GND e assicura connessioni solide. Se il rumore persiste, valuta un sensore diverso o cavi schermati.

Dettagli del prodotto

  • GY-521 MPU-6050 Modulo Giroscopio 3 Assi + Modulo Accelerometro 3 Assi: Chip: MPU-6050; alimentazione: 3~5V; modalità di comunicazione: protocollo di comunicazione IIC standard; convertitore AD a 16 bit integrato nel chip. L'intervallo di alimentazione 3~5V viene spesso interpretato erroneamente come tolleranza I2C a 5V; le linee I2C non sono tolleranti a 5V, quindi è necessario un level shifter quando si utilizza un microcontrollore a 5V.
  • Nano compatibile Arduino V3.0 con cavo USB GRATIS: Nano V3.0 compatibile con Arduino basato su ATmega328; privo di jack di alimentazione DC; funziona con cavo USB Mini-B. Questa scheda 5V è un host comune per il GY-521; i suoi pin I2C (A4/A5) sono a logica 5V, quindi è necessario effettuare il level shift o alimentare il sensore a 3.3V per evitare danni.
  • Shield mini per prototipazione WeMos D1: WeMos D1 mini Prototyping Shield progettato per WeMos D1 mini e mini Pro; fornito con 3 set di header (richiede saldatura); consente l'impilamento. Il WeMos D1 mini è una scheda 3.3V, quindi può collegarsi direttamente al GY-521 senza un level shifter, semplificando il cablaggio I2C e riducendo i punti di guasto.

Shop Related Products

Modulo GY-521 MPU-6050 giroscopio a 3 assi + modulo accelerometro a 3 assi

Modulo GY-521 MPU-6050 giroscopio a 3 assi + modulo accelerometro a 3 assi

$1.16 $1.66

Shop Now
WeMos D1 mini Prototyping Shield

WeMos D1 mini Prototyping Shield

$0.88 $1.24

Shop Now
Nano V3.0 compatibile Arduino con cavo USB GRATIS

Nano V3.0 compatibile Arduino con cavo USB GRATIS

$5.02 $7.49

Shop Now