Réponse rapide

Si votre MPU-6050 ne renvoie pas de données, lancez d'abord un scanner I2C pour confirmer que l'adresse est 0x68. Si le scanner ne trouve rien, vérifiez le câblage SDA/SCL et l'alimentation, puis contrôlez les niveaux logiques : le module GY-521 attend de l'I2C en 3.3V, donc avec un Arduino en 5V, vous avez besoin d'un adaptateur de niveau ou de pull-ups vers 3.3V. Si le scanner détecte 0x68 mais que les lectures échouent, le problème vient généralement de la configuration de la bibliothèque ou de pull-ups manquants.

Vérifiez que le GY-521 est correctement câblé et alimenté

Le breakout GY-521 possède quatre broches essentielles : VCC, GND, SDA, SCL. Alimentez-le en 3.3 V si votre carte le fournit ; le régulateur et l'adaptation de niveau du module sont minimaux, et 5 V sur VCC peut endommager le MPU-6050. Connectez SDA à la broche SDA de votre microcontrôleur et SCL à SCL. Sur un Arduino Nano V3.0, SDA est A4 et SCL est A5. Sur un WeMos D1 mini, SDA est D2 et SCL est D1. Gardez les fils courts et bien fixés—les cavaliers desserrés sont une cause fréquente de lectures intermittentes.

Si vous utilisez une carte 5V comme l’Arduino Nano, les lignes I2C du GY-521 ne sont pas tolérantes au 5V. Vous devez soit utiliser un convertisseur de niveau, soit alimenter le module en 3.3V et vous assurer que les pull-ups vont vers 3.3V, et non vers 5V. De nombreuses cartes GY-521 intègrent des pull-ups de 4.7k vers VCC ; si VCC est en 5V, ces pull-ups exposeront le MPU-6050 à 5V sur SDA/SCL. Vérifiez votre module pour des résistances pull-up intégrées et envisagez de les retirer si vous alimentez en 5V, bien que ce soit un travail délicat.

  • Alimentez le GY-521 en 3.3 V, et non en 5 V.
  • Sur Arduino Nano : SDA=A4, SCL=A5.
  • Sur le WeMos D1 mini : SDA=D2, SCL=D1.
  • Utilisez un convertisseur de niveau pour les cartes 5V.

Lancez un scanner I2C pour vérifier si le capteur répond

Un sketch de scanner I2C balaie toutes les adresses et signale tout appareil qui répond. Téléversez un scanner standard sur votre carte, ouvrez le moniteur série à 9600 ou 115200 bauds, et recherchez un appareil à l’adresse 0x68. L’adresse par défaut du MPU-6050 est 0x68 lorsque AD0 est à l’état bas ; si AD0 est tirée à l’état haut, l’adresse devient 0x69. Si le scanner ne trouve rien, le problème vient du câblage, de l’alimentation ou des résistances de tirage. S’il trouve 0x68 mais que votre bibliothèque de capteur échoue, le problème vient probablement du code ou des paramètres de la bibliothèque.

Si le scanner affiche 0x68 mais que vous n'obtenez toujours aucune donnée, essayez l'exemple de sketch de la bibliothèque que vous utilisez (par ex. Adafruit_MPU6050 ou MPU6050_tockn). Assurez-vous d'appeler la bonne fonction begin() et que l'adresse I2C dans votre code correspond à 0x68. Certaines bibliothèques utilisent 0x68 par défaut, d'autres vous demandent de la préciser. Vérifiez également que vous n'utilisez pas un autre bus I2C (Wire vs Wire1) sur les cartes disposant de plusieurs bus.

  • Le scanner détecte 0x68 : le câblage et l'alimentation sont bons ; concentrez-vous sur le code.
  • Le scanner détecte 0x69 : AD0 est élevée ; ajustez l'adresse dans le code.
  • Le scanner ne trouve rien : vérifiez SDA/SCL, l'alimentation et les résistances de tirage.

Résoudre les conflits 0x68 et les problèmes de résistance de tirage (pull-up)

Si le scanner détecte 0x68 mais que votre code échoue toujours, un autre périphérique sur le bus utilise peut-être la même adresse. Les périphériques I2C courants, comme certains écrans OLED ou d'autres capteurs, peuvent aussi se trouver à 0x68. Déconnectez les autres périphériques I2C et testez le MPU-6050 seul. S'il fonctionne seul, vous avez un conflit d'adresses. Vous pouvez changer l'adresse du MPU-6050 en 0x69 en mettant AD0 à l'état haut, mais cela nécessite une broche libre ou un pont de soudure.

Des résistances de tirage (pull-up) manquantes ou incorrectes peuvent également provoquer des défaillances. Le GY-521 inclut généralement des pull-ups de 4.7k vers VCC. Si vous alimentez en 3.3V, ces pull-ups sont correctes pour une logique en 3.3V. Si vous utilisez un convertisseur de niveau, assurez-vous que le côté haut dispose de pull-ups vers 5V et le côté bas vers 3.3V ; beaucoup de convertisseurs de niveau les intègrent. Si vous avez retiré les pull-ups du module ou utilisez une puce MPU-6050 nue, ajoutez des résistances externes de 4.7k entre SDA et SCL et 3.3V.

  • Déconnectez les autres appareils I2C pour écarter tout conflit d'adresses.
  • Faites glisser AD0 vers le haut pour changer l’adresse en 0x69.
  • Ajoutez des résistances de tirage externes 4.7k si votre module n'en dispose pas.

Quand s'arrêter et choisir une autre approche

Si vous avez vérifié le câblage, l'alimentation, l'adresse et les pull-ups, et que le scanner ne trouve toujours rien, le module est peut-être endommagé. Le MPU-6050 est sensible aux surtensions ; s'il a été accidentellement connecté à 5 V sur VCC ou SDA/SCL, il peut être mort. À ce stade, remplacer le GY-521 est l'étape la plus pratique. Si vous avez besoin d'une solution plus robuste pour les systèmes en 5 V, envisagez un microcontrôleur natif en 3.3 V comme le WeMos D1 mini, qui évite complètement le décalage de niveau. Pour les projets nécessitant un suivi précis des mouvements, une IMU haut de gamme avec tolérance intégrée de 5 V pourrait vous faire gagner du temps de débogage.

  • Si tous les contrôles échouent, suspectez un capteur endommagé.
  • Envisagez une carte 3.3V pour éviter le décalage de niveau.
  • Pour des besoins avancés, recherchez une IMU avec une tolérance de 5V.

Liste de contrôle de diagnostic

  • Aucun appareil détecté par le scanner I2C : Vérifiez l'alimentation (3.3V), les connexions SDA/SCL et les résistances de tirage. Assurez-vous que le module n'est pas endommagé. Si le câblage et l’alimentation sont corrects, remplacez le module.
  • Le scanner détecte 0x68 mais la bibliothèque échoue : Vérifiez la fonction begin() de la bibliothèque et le réglage de l'adresse. Essayez une autre bibliothèque ou un autre sketch d'exemple. Si le code est correct, vérifiez les problèmes de vitesse du bus I2C ; essayez 100kHz.
  • Lectures intermittentes ou bruitées : Raccourcissez les fils, ajoutez un condensateur de découplage (0.1uF) entre VCC et GND, et assurez des connexions solides. Si le bruit persiste, envisagez un autre capteur ou des câbles blindés.

Caractéristiques du produit

  • GY-521 MPU-6050 Module 3 Axes Gyroscope + 3 Axes Module Accéléromètre: Puce : MPU-6050 ; alimentation : 35V ; mode de communication : protocole de communication IIC standard ; convertisseur AD 16 bits intégré à la puce. La plage d'alimentation 35V est souvent interprétée à tort comme une tolérance I2C de 5V ; les lignes I2C ne sont pas tolérantes à 5V, un décalage de niveau est donc nécessaire lors de l'utilisation d'un microcontrôleur 5V.
  • Nano compatible Arduino V3.0 avec câble USB GRATUIT: Nano V3.0 compatible Arduino basé sur ATmega328 ; dépourvu de prise d'alimentation DC ; fonctionne avec un câble USB Mini-B. Cette carte 5V est un hôte courant pour le GY-521 ; ses broches I2C (A4/A5) sont en logique 5V, vous devez donc décaler le niveau ou alimenter le capteur en 3.3V pour éviter tout dommage.
  • Shield de prototypage mini WeMos D1: WeMos D1 mini Prototyping Shield conçu pour WeMos D1 mini et mini Pro ; fourni avec 3 jeux de broches (soudure requise) ; permet l'empilement. Le WeMos D1 mini est une carte 3.3V, il peut donc se connecter directement au GY-521 sans convertisseur de niveau, ce qui simplifie le câblage I2C et réduit les points de défaillance.