Problemas con el Magnetometro HMC5883 [SOLUCIONADO]

Buenos días, estoy trabajando con el magnetómetro HMC5883 y no puedo relevar las lecturas de posición x y e z.
Mi código es igual a uno que encontré en Internet, pero no se por que motivos no funciona. Busque en la web posibles soluciones pero nada me ha servido.

#include <Wire.h> //I2C Arduino Library

#define addr 0x1E //I2C Address for The HMC5883

void setup(){
  
  Serial.begin(9600);
  Wire.begin();
  
  
  Wire.beginTransmission(addr); //start talking
  Wire.write(0x02); // Set the Register
  Wire.write(0x00); // Tell the HMC5883 to Continuously Measure
  Wire.endTransmission();
}


void loop(){
  
  int x,y,z; //triple axis data

  //Tell the HMC what regist to begin writing data into
  Wire.beginTransmission(addr);
  Wire.write(0x03); //start with register 3.
  Wire.endTransmission();
  
 
 //Read the data.. 2 bytes for each axis.. 6 total bytes
  Wire.requestFrom(addr, 6);
  if(6<=Wire.available()){
    x = Wire.read()<<8; //MSB  x 
    x |= Wire.read(); //LSB  x
    z = Wire.read()<<8; //MSB  z
    z |= Wire.read(); //LSB z
    y = Wire.read()<<8; //MSB y
    y |= Wire.read(); //LSB y
  }
  
  // Show Values
  Serial.print("X Value: ");
  Serial.println(x);
  Serial.print("Y Value: ");
  Serial.println(y);
  Serial.print("Z Value: ");
  Serial.println(z);
  Serial.println();
  
  delay(500);
}

No termino de entender bien el ejemplo, tampoco por que los shift.
Si alguien me puede dar una mano genial.
La conexion que realice es SDA al A4 y y SCL al A5 (así lo especificaba la pagina).

las lecturas que arroja por el monitor son todas 0.
Gracias

Porque no comienzas por acá

Enlace tutorial, este de Adafruit y finalmente este en github .

En todos veo librerías, y buena documentación.

Muchas gracias por la información.
La solución final fue usar los pines SDA y SCL de arduino uno con los respectivos pines del Magnetometro.