Bonjour à tous,
J'ai un petit probléme avec le module pololu altimu-10 v4. Je souhaite récupérer les données du compas (LMS303) via l'I2C. J'ai suivi plusieurs tutos mais j'ai toujours un probléme de valeurs.
D'aprés la datasheet du LMS 303, son adresse du compas est 0x1D (adresse vérifiée avec I2C_scanner).
Les adresses des registres sont :
OUT_Z_L_M : 0C |
---|
OUT_Z_H_M : 0D |
Et correspond à cette description.
Z-axis magnetic data. The value is expressed in 16-bit as 2’s complement.
Voici ensuite le code que j'utilise :
#include <Wire.h>
int sensorAddress = 0x1D;
int ZL, ZH;#define out_z_l 0x0C
#define out_z_h 0x0Dvoid setup() {
Wire.begin();
Serial.begin(9600);
delay(100);
}void loop(){
Wire.beginTransmission(sensorAddress);
Wire.write(out_z_l);
Wire.write(out_z_h);
Wire.endTransmission(sensorAddress);Wire.requestFrom(sensorAddress,2);
if(Wire.available()<=2) {
ZL = Wire.read();
ZH = Wire.read();
}Serial.println(ZL);
Serial.println(ZH);
delay(20);}
Sur mon serial je n'obtiens que 254 quelque soit l'orientation de mon compas.
Je dois passer à coté de quelquechose mais je n'arrive pas à trouver quoi.
Une réponse serait la bienvenue
Matthieu