Materiales:
- 1 Sensor Magnetómetro HMC5883L.
Detalle de conexión (Arduinos: UNO, Nano, Mini):
Pin Arduino | Pin HMC5883L |
5V | VCC |
GND | GND |
A5 | SCL |
A4 | SDA |
Librería para el HMC5883L
Trabajaremos con la librería desarrollada por Jeff Rowberg: https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/HMC5883L
Esta librería trabaja con una librería adicional para la comunicación I2C, esta también lo pueden encontrar en el mismo github de la libraría anterior: https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/I2Cdev
CÓDIGO:
<pre class="EnlighterJSRAW" data-enlighter-language="c" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#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);
}</pre>
Ver los resultados en el MONITOR SERIAL.