INFORMACIÓN
El HMC5883L Módulo es un Magnetómetro de tres ejes (X, Y y Z) de cinco pines, que trabaja con protocolo de comunicación I2C y un rango de medición desde ± 1.3 hasta 8 gauss, cuenta con dos modos de medición (continua y única), se alimenta con voltaje de 3.3 o 5V.
El HMC5883L Módulo es útil en proyectos de robótica, drones, juegos, simuladores y en general para determinar la dirección en la que se está moviendo un dispositivo o vehículo. Para consultar otros modelos de sensores de movimiento puedes dar clic aquí.
Nota: Este sensor es compatible con las funciones del QMC5883L, solo es necesario cambiar la librería.
ESPECIFICACIONES Y CARACTERÍSTICAS
- Tipo: Sensor de Magnetómetro
- Matricula: HMC5883L
- Voltaje de alimentación: 3.3 o 5 VDC
- Corriente de operación: 100 µA
- Tasa de salida:
- Modo Continuo: 75 Hz
- Modo único: 160 Hz
- Rango de medición: ± 1.3 hasta 8 gauss
- Protocolo de comunicación: I2C
- Dimensiones: 18.3 x 13.7 x 1.4 mm
- Peso: 1.04g
DOCUMENTACIÓN Y RECURSOS
INFORMACIÓN ADICIONAL
Para comprobar el funcionamiento de tu módulo puedes utilizar el siguiente circuito:

Una vez que hayas realizado las conexiones, descarga e instala las librerías:
Carga el siguiente código para observar las lecturas del módulo en el monitor Serial del IDE de Arduino.
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_HMC5883_U.h>
//Asignación de un ID único al sensor
Adafruit_HMC5883_Unified mag = Adafruit_HMC5883_Unified(12345);
void displaySensorDetails(void)
{
//Datos de la Datasheet
sensor_t sensor;
mag.getSensor(&sensor);
Serial.println("------------------------------------");
Serial.print ("Sensor: "); Serial.println(sensor.name); //Nombre del sensor
Serial.print ("Driver Ver: "); Serial.println(sensor.version); //Version del Sensor
Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id); //ID del sensor
Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println(" uT"); //Rango máximo del Sensor
Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println(" uT"); //Rango mínimo del Sensor
Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println(" uT"); //Resolución del Sensor
Serial.println("------------------------------------");
Serial.println("");
delay(500);
}
void setup(void)
{
//Inicio del monitor serial
Serial.begin(9600);
Serial.println("HMC5883 Magnetometer Test"); Serial.println("");
//inicialización del sensor
if(!mag.begin())
{
//Si no se detecta el sensor se obtiene el siguiente mensaje
Serial.println("Ooops, no se ha detectado un sensor HMC5883... Revisa tu conexión");
while(1);
}
//Se muestran los datos del Datasheet del Sensor
displaySensorDetails();
}
void loop(void)
{
//Se obtiene un nuevo Evento del sensor
sensors_event_t event;
mag.getEvent(&event);
// Se muetsran los resultados en Micro Tesla (uT)
Serial.print("X: "); Serial.print(event.magnetic.x); Serial.print(" ");
Serial.print("Y: "); Serial.print(event.magnetic.y); Serial.print(" ");
Serial.print("Z: "); Serial.print(event.magnetic.z); Serial.print(" ");Serial.println("uT");
//Sostén el módulo con Z apuntando hacia arriba de manera que se pueda medir la trayectoria de X y Y
//Calcula la trayectoria cuando el sensor este nivelado y luego corrige los signos del eje.
float heading = atan2(event.magnetic.y, event.magnetic.x);
//Una vez que tengas la trayectoria agrega tu ángulo de declinación, que es el error del sensor en tu ubicación.
//Si no conoces tu ángulo de declinación puedes encontrarlo aquí: http://www.magnetic-declination.com/
//Debes convertir el ángulo en radianes para poder colocar el valor en las siguientes líneas.
//Si no logras encontrar tu ángulo de declinación, comenta las siguientes dos líneas, tu brújula estará ligeramente desviada.
float declinationAngle = 0.06;
heading += declinationAngle;
//Corrige si los signos están invertidos
if(heading < 0)
heading += 2*PI;
//Comprueba si hay wrap debido a la adición de declinación.
if(heading > 2*PI)
heading -= 2*PI;
//Convierta radianes a grados para facilitar la lectura
float headingDegrees = heading * 180/M_PI;
Serial.print("Heading (degrees): "); Serial.println(headingDegrees);
delay(500);
}

Kit Micrófono Inalámbrico FM 70-110Mhz
PShieldX Shield de Expansión para Raspberry Pi Pico
I2C Interfaz LCD 1602 PCF8574
KPS1203D Fuente de Alimentación de Laboratorio 120V 3A
Adaptador USB Tipo B Hembra a DIP PCB 4 Pines
Lector De Tarjetas ID RFID 125KHz USB Control de Asistencia EM4100
RDA5807M Modulo Radio FM Estereo
Bateria LiPo 3.7V 1200mAh 103040
VS1053B Reproductor MP3 TF Shield Arduino
FireBeetle ESP32 IoT WiFi + Bluetooth DFR0478
Espejo Reflectante 20x3mm para Máquina Láser CO2
HT-PD27W-US Eliminador 27W USB Tipo C PD para Raspberry Pi 5
Sim808 Gsm Gprs Gps Con Antena Gps
RFM95W 915MHz Transceptor Lora
SOL60-100 Rollo Soldadura Estaño 100g 60/40 1mm
Pelacables Autoajustable con Cortadora de Cable y Crimpado de Terminales
Alcohol Isopropílico en Aerosol 400 ml





















Valoraciones
No hay valoraciones aún.