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

Conector Doble Banana Rojo Negro Plug
Kit de 100 diodos 1N5399 1N5408 1N4148 1N4007 1N5819 1N5822
Cepillo de Alambre de Latón y Acero Inoxidable para Limpieza de Boquillas
Eliminador 9V 1A con Plug
MiniBotDS2 Kit Robot Programable
Bateria LiPo 3.7V 2500mAh 104050
Cable de Alimentación para Fuente Conmutada
Bateria LiPo 3.7V 400mAh 602035
Arduino Alvik Robot Educativo AKX00066
Conector USB 2.0 Tipo A SMD
DHT11 con Interfaz para ESP8266
MOC3021 Optoacoplador DIP-6
Lector De Tarjetas ID RFID 125KHz USB Control de Asistencia EM4100
NanoKVM Full IP-KVM RISC-V





















Valoraciones
No hay valoraciones aún.