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);
}

RG6-305 Cable Coaxial 1m 75 Ohms C/50% Malla
KBU1010 Puente Rectificador 1000V 10A
Sonoff RFR2 Interruptor WiFi/RF 433MHz 10A
Raspberry Pi Pico 2 W RP2350
CN3065 Cargador Solar para Bateria de Litio
TTP223B Sensor Capacitivo Touch - UNIT DevLab
UNIT Placa de Expansión para Raspberry Pi Pico
HDP135V6 Fuente de Alimentación 0-30V 6A 210W
Kit Agujas de 0.15-0.35mm para Limpieza de Boquillas
TDA7297 Amplificador Audio de Doble Canal 12V DC 15W
Kit Brazo Robótico 6DOF con Garra y Servos
TDA7294 Amplificador de Audio Mono 100W
Ramps 1.4 Tarjeta De Control Para Impresora 3d
Kit Roboracer STEAM
Modulo De Potencia Mosfet 210a Cama Caliente Hot Bed 3d Cnc
UNIT DualMCU ONE ESP32 + RP2040
HB-019 Desoldador de Succión Eléctrico 36W 110V





















Valoraciones
No hay valoraciones aún.