Go Down

Topic: [RESOLU] Récupération registres MPU6050 par I²C (Read 531 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy