Go Down

Topic: [RESOLU] Récupération registres MPU6050 par I²C (Read 459 times) previous topic - next topic

Reynosa

Jan 12, 2013, 05:12 pm Last Edit: Jan 13, 2013, 03:51 pm by Reynosa Reason: 1
Bonjour,

Est-ce que quelqu'un qui a déjà codé quelque chose peut me dire pourquoi ceci
Code: [Select]
void GYROSCOPE::request_Zout(void)
{
// Récupération des 8 bits de poids fort
Wire.beginTransmission(MPU6050_I2C_ADDRESS);
Wire.write(MPU6050_GYRO_ZOUT_H);
Wire.endTransmission(false);

Wire.requestFrom(MPU6050_I2C_ADDRESS, 1, true);
while(Wire.available() < 0);
Zout = Wire.read();

Serial.print("Z= ");
Serial.println(Zout, DEC);

/* Récupération des 8 bits de poids faible
Wire.beginTransmission(MPU6050_I2C_ADDRESS);
Wire.write(MPU6050_GYRO_ZOUT_L);
Wire.endTransmission(false);

Wire.requestFrom(MPU6050_I2C_ADDRESS, 1, true);
while(Wire.available() < 0);
Zout |= Wire.read();*/
}


me renvoie toujours 0 dans Zout ???
Je ne m'en sors plus avec ce gyroscope... Je n'arrive à rien avec en orienté objet.

Voici les define que j'utilise:
Code: [Select]
//définition des adresses de registres
#define MPU6050_GYRO_XOUT_H 0x43   // R  
#define MPU6050_GYRO_XOUT_L 0x44   // R  
#define MPU6050_GYRO_YOUT_H 0x45   // R  
#define MPU6050_GYRO_YOUT_L 0x46   // R  
#define MPU6050_GYRO_ZOUT_H 0x47   // R  
#define MPU6050_GYRO_ZOUT_L 0x48   // R

#define WHO_AM_I 0x75 //R
#define MPU6050_PWR_MGMT_1 0x6B   // R/W
#define GYRO_CONFIG 0x1B  // RW

#define MPU6050_I2C_ADDRESS 0x68


Merci d'avance ! Moi je fais une pause avant destruction massive de matériel  :0

Reynosa

Problème trouvé !

Pour information, quand on reset le gyrosocope, il faut mettre le bit à 1 dans le registre MPU6050_PWR_MGMT_1. Mais il faut pas oublier de le remettre à 0 !

Bonne journée à tous

Go Up