Comment régler l’adresse
Il n’y a pas de broche d’adresse : l’adresse est fixée en usine, elle vaut donc toujours 0x0D.
Périphériques qui utilisent les mêmes adresses
Aucun des 87 autres périphériques de notre liste n’utilise ces adresses : le risque de conflit est donc faible.
Vérifier tout le bus →Ajoutez votre QMC5883L et vos autres modules : l’outil trouve les conflits, propose des adresses libres et dimensionne les pull-up.
Adresse sur 7 bits et sur 8 bits
Les adresses I²C font 7 bits. Certaines datasheets et bibliothèques les écrivent sur 8 bits, avec le bit de lecture/écriture ajouté à droite : c’est pourquoi la même puce peut être indiquée en 0x0D ou en 0x1A. La bibliothèque Wire d’Arduino et ESPHome utilisent la forme sur 7 bits.
| 7 bits | Binaire | Écriture 8 bits | Lecture 8 bits |
|---|---|---|---|
| 0x0D | 0001101 | 0x1A | 0x1B |
Vérifier qu’il répond
Reliez votre QMC5883L à SDA et SCL, puis téléversez ce sketch : il teste chaque adresse que la puce peut utiliser et affiche celle qui répond. Sur l’ESP32, les broches par défaut sont GPIO21 (SDA) et GPIO22 (SCL) ; sur l’Arduino Uno, A4 et A5.
#include <Wire.h>
const byte ADDRS[] = {0x0D};
void setup() {
Serial.begin(115200);
Wire.begin();
for (byte a : ADDRS) {
Wire.beginTransmission(a);
if (Wire.endTransmission() == 0) {
Serial.print("QMC5883L : adresse 0x");
if (a < 0x10) Serial.print('0');
Serial.println(a, HEX);
return;
}
}
Serial.println("Aucune reponse : verifiez le cablage");
}
void loop() {}
Dans ESPHome, le bus est scanné au démarrage (scan: true est la valeur par défaut) : le log liste toutes les adresses qui répondent.
i2c:
sda: GPIO21
scl: GPIO22
scan: true
Résistances de pull-up
SDA et SCL ont besoin de résistances de pull-up vers l’alimentation. Beaucoup de modules en ont déjà, souvent de 4,7 kΩ ou 10 kΩ, et avec plusieurs modules sur le bus elles se combinent en parallèle. Le vérificateur d’adresses I²C calcule la plage admise selon la tension et la vitesse de votre bus.
Questions fréquentes
Quelle est l’adresse I2C d’un QMC5883L ?
0x0D. Elle est fixe : il n’y a pas de broche d’adresse.
Puis-je utiliser plusieurs QMC5883L sur le même bus ?
Pas directement : l’adresse est fixe, ils entreraient donc en conflit. Placez chacun sur un canal différent d’un multiplexeur TCA9548A, ou utilisez un second bus I²C.
Mon QMC5883L n’apparaît pas dans le scan I2C : pourquoi ?
Vérifiez, dans cet ordre : SDA et SCL non inversés ; la masse commune entre les cartes ; les résistances de pull-up sur SDA et SCL ; le module alimenté à la tension prévue ; enfin, dans votre code, l’adresse sur 7 bits (0x0D) et non celle sur 8 bits (0x1A).
Périphériques similaires
ADXL345 BMI270 BNO055 LIS2DH12 MMA8451Q MPU-6050 MPU-6886 MPU-9250
Adresses vérifiées sur la datasheet QMC5883L.