Ciao Astrobeed , mi sono inbattuto in questa discussione, avendo a disposizione l'hardware necessario ( MPU6050 e il magnetometro basato su HMC5883L precisamente gy-271) mi sono messo sotto con un arduino nano per provare il tuo fantastico lavoro.
La mia intensione è di crearmi degli strumenti da mettere nella mia barca , e tra questi volevo proprio fare una bussola compensata... e vedere di quanti gradi la mia barca sia sbandata in navigazione,( essendo a vela)
ho collegato come da tuo schema
A.nano<-----> MPU <----->GY271
A4 <-----> sda <-----> sda
A5 <-----> scl <-----> scl
5v <-----> Vcc <-----> Vcc
gnd <-----> gnd <-----> gnd
D2 <-----> int
compilando e mandando in Running senza collegare AD0 e impostando Ad0 lw di default (come da commento sul codice).
vedo che rileva correttamente MPU6050 , ma non HMC5883L (precisamente il gy-271)
ecco l'output su seriale:
Initializing I2C devices...
Testing device connections...
MPU6050 connection successful
Initializing DMP...
Enabling DMP...
Enabling interrupt detection (AVR external interrupt 0)...
DMP ready! Waiting for first interrupt...
FS_SEL = 3
AFS_SEL = 0
Initializing HMC5883L...
Testing device connections...
HMC5883L connection failed
1.45 : 0.01 : -3.06 * 0 : 0 : 0 * 360
1.45 : 0.01 : -3.07 * 0 : 0 : 0 * 360
1.45 : 0.01 : -3.08 * 0 : 0 : 0 * 360
0.03 : 0.09 : 1.96 * 0 : 0 : 0 * 360
dove ho sbagliato, oppure quel gy-271 non funziona a dovere?