Bonjour à tous !
Je viens de faire l’acquisition d’un capteur HMC5883L afin de faire une boussole avec un arduino.
Problème, le capteur ne semble pas alimenté...
Je m’explique :
J’ai pris un programme sur un site :
#include <Wire.h> // Bibliothèque pour i2c
#define addresse 0x1E // Adresse i2c du capteur HMC5883
// valeurs requises pour calibrer nos mesures (spécifique à votre module):
const int calibration = 0; // régler à "1" pour calibrer vos mesures, "0" pour utiliser les mesures non-calibrées
const int xmin = 0;
const int xmax = 0;
const int ymin = 0;
const int ymax = 0;
void setup() {
Serial.begin(9600);
Wire.begin();
// Initialisation du HMC5883
Wire.beginTransmission(addresse);
Wire.write(0x02);
Wire.write(0x00); // mode de mesure continue
Wire.endTransmission();
}
void loop() {
int xbrut, ybrut, zbrut, xcalibree, ycalibree;
// On demande une prise de mesure
Wire.beginTransmission(addresse);
Wire.write(0x03);
Wire.endTransmission();
// Lecture des mesures
Wire.requestFrom(addresse, 6);
if (6 <= Wire.available()) {
xbrut = Wire.read() << 8; //X msb
xbrut |= Wire.read(); //X lsb
zbrut = Wire.read() << 8; //Z msb
zbrut |= Wire.read(); //Z lsb
ybrut = Wire.read() << 8; //Y msb
ybrut |= Wire.read(); //Y lsb
}
// calibration, si désirée:
if (calibration) {
xcalibree = map(xbrut, xmin, xmax, -1000, 1000);
ycalibree = map(ybrut, ymin, ymax, -1000, 1000);
// affichage au moniteur série
Serial.print(xcalibree); Serial.print("\t");
Serial.print(ycalibree); Serial.print("\t");
Serial.println(zbrut);
}
else // on affiche les valeurs brutes
{
Serial.print(xbrut); Serial.print("\t");
Serial.print(ybrut); Serial.print("\t");
Serial.println(zbrut);
}
delay(250); // court délai pour ralentir un peu le processus
}
Le problème est que j’obtiens des valeurs constantes et qui ne changent pas que le capteur soit branché ou non...
Donc il est évident que le capteur n’est pas actif
J’ai ensuite fait des tests avec une led (car le capteur en est dépourvu) et j’ai donc branché une led en série et elle s’allume une microseconde et s’éteint immédiatement.
Auriez-vous une idée concernant la cause de ce problème ? (Est-ce que le capteur est complètement foutu ?)
Merci beaucoup et bonne journée !