Problème sur connection d'un accéleromètre MPU6050 avec un motorshield

Bonjour,
Dans le cadre d'un projet étudiant j'ai besoin d'asservir deux moteurs CC en fonction des vibrations reçues par un accélerometre MPU 6050.
J'ai cependant un probleme, impossible d'établir une connection avec le capteur lorsque la carte de puissance est montée sur ma carte Arduino . Pourtant, lorsque le capteur est branché directement à la carte tout marche, le pc arrive à recevoir les données du capteur.
J'ai vérifié la connectique , essayé avec une alimentation externe et de brancher le capteur sur l'arduino puis de monter la carte de puissance dessus mais le capteur n'est jamais connecté...
Que faire ?
Merci d'avance pour votre aide.

Matériel utilisé :
-Carte Arduino Uno
-MotorPowershield WPSH03

  • accélérometre MPU6050
  • deux moteurs CC 3-6V
  • alimentation externe à tension réglable.

Code utilisé pour récupérer les données du capteur :

#include <Wire.h>
#include <MPU6050.h>


// Définir les broches pour les moteurs
const int dir1Pin = 2;
const int dir2Pin = 8;
const int pwm1Pin = 3;
const int pwm2Pin = 9;


MPU6050 mpu;


void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu.initialize();


  // Vérifiez que la connexion est établie
  if (!mpu.testConnection()) {
    Serial.println("MPU6050 connection failed");
    while (1);
  }


  Serial.println("MPU6050 connection successful");


  // Configurer les broches des moteurs comme sorties
  pinMode(dir1Pin, OUTPUT);
  pinMode(dir2Pin, OUTPUT);
  pinMode(pwm1Pin, OUTPUT);
  pinMode(pwm2Pin, OUTPUT);
}


void loop() {
  int16_t ax, ay, az;
  int16_t gx, gy, gz;


  // Lire les valeurs de l'accéléromètre et du gyroscope
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);


  // Afficher les valeurs sur le moniteur série
  Serial.print("a/g:\t");
  Serial.print(ax); Serial.print("\t");
  Serial.print(ay); Serial.print("\t");
  Serial.print(az); Serial.print("\t");
  Serial.print(gx); Serial.print("\t");
  Serial.print(gy); Serial.print("\t");
  Serial.print(gz); Serial.print("\n");




  delay(100);
}

I moved your topic to an appropriate forum category @jeanlf .

In the future, please take some time to pick the forum category that best suits the subject of your topic. There is an "About the _____ category" topic at the top of each category that explains its purpose.

This is an important part of responsible forum usage, as explained in the "How to get the best out of this forum" guide. The guide contains a lot of other useful information. Please read it.

Thanks in advance for your cooperation.

Bonjour jeanlf

Essaies ces tests:
Sans le shield de puissance, connectes ton MPU 6050.
Télécharges un scanner i2C, dans la console tu dois voir l'adresse de ton MPU 6050.

Remets le shield de puissance et connectes-y ton MPU 6050 et relances le sacnner, si tu as le texte No I2C devices found c'est que ton shield bloque le bus i2c qui se trouve sur les pin A4 et A5
image

A+
Cordialement
jpbbricole

Merci pour votre réponse, j'ai essayé sans le shield et ça marche, mais avec le shield le scanner cherche mais ne trouve pas le bus i2c.


Ce doit donc être le shield qui bloque et dans ce cas que puis je faire pour éviter ce blocage ?
Merci d'avance,
Cordialement,

D'après le schéma:
image

Il y a quelque chose sur A5:
J'en ai retrouvé l'image:
image

Regardes sur le shield s'il y a une piste qui part de cette pin.

A+
Cordialement
jpbbricole

Alors oui il y a bien une piste qui part de la pin A5.

Cordialement,

Bonjour jeanlf

Alors ça va forcément perturber le bus i2C, qui est le bus de connexion de ton MPU6050.
image

La seule chose que je vois, couper cette piste :woozy_face:
image

Cordialement
jpbbricole

Et sinon est ce que je peux régler ça avec un multiplexeur i2c ?

Non, c'est le bus i2C qui est perturbé par ce montage:
image

Bonjour,

Puisque le module WPSH03 utilise la broche A5 pour offrir la possibilité au codeur de lire la tension moteur POWER

Et que le module MPU6050 a en priorité besoin des broche A4 et A5

Pour libérer A5 pris aussi par le module WPSH03.

Tu peux, si tu souhaite lire la tension POWER pour les moteur, couper la piste sur le module WPSH03 et relier à A0 qui n'est pas utilisée.

Ou si tu ne veux pas couper ta piste, enlever R9, R10, C3
Screenshot_20241019-082712 (1) (1)

C'est noté !
Merci beaucoup

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.