Problemas con el HMC5883L

Buenos días, estoy intentando hacer pruebas con el modulo hmc5883l ya que necesito incorporarlo a un proyecto, pero no consigo hacerlo funcionar. El problema es que el valor de las variables es todo el rato 0 como si no estuviera funcionando. El código y esquema que estoy utilizando son los siguientes:

#include "Wire.h"
#include "I2Cdev.h"
#include "HMC5883L.h"

HMC5883L magnetometro;

int16_t mx, my, mz;
void setup() {
    
    Serial.begin(9600);
    Serial.println("Inicializando Magnetometro...");
    //Inicializamos la comunicación I2C y el magnetómetro
    Wire.begin();
    magnetometro.initialize();
}

void loop() {
    //Obtenemos del magnetometro las componentes del campo magnético
    magnetometro.getHeading(&mx, &my, &mz);
    
    Serial.print("mx:");
    Serial.print(mx); 
    Serial.print("\tmy:");
    Serial.print(my);
    Serial.print("\tmz:");
    Serial.println(mz);
    delay(100);
}

Partamos de lo que me hace ruido, que es lo que he marcado, por qué usas I2Cdev cuando puedes usar Wire.h como la librería standard?

Mira lo que Adafruit recomienda en este link

Esta en el Administrador de librerías

Revisa si la librería y sus ejemplos si te funcionan.

Cual es el problema con I2Cdev? Pues que a riesgo de equivocarme es una librería que implementa un I2C virtual o sea para micros que no lo tienen x hardware. En este momento tengo dudas.
Otra cosa es probar el I2CScanner pero ya veras que no usa I2Cdev.h. Con el detectas si tu sensor funciona y si lo hace devuelve la dirección hexa con la que ha respondido.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.