Tabla de contenido:

Medición de campo magnético con HMC5883 y fotón de partículas: 4 pasos
Medición de campo magnético con HMC5883 y fotón de partículas: 4 pasos

Video: Medición de campo magnético con HMC5883 y fotón de partículas: 4 pasos

Video: Medición de campo magnético con HMC5883 y fotón de partículas: 4 pasos
Video: Arduino desde cero en Español - Capítulo 48 - Magnetómetro 3 ejes 🧭 Brújula digital QMC5883L bus I2C 2024, Noviembre
Anonim
Image
Image

El HMC5883 es una brújula digital diseñada para detección magnética de campo bajo. Este dispositivo tiene un amplio rango de campo magnético de +/- 8 Oe y una tasa de salida de 160 Hz. El sensor HMC5883 incluye controladores de correa de desmagnetización automática, cancelación de desplazamiento y un ADC de 12 bits que permite una precisión de rumbo de la brújula de 1 ° a 2 °. Todos los mini módulos I²C están diseñados para funcionar a 5 V CC.

En este tutorial, vamos a explicar el funcionamiento detallado de HMC5883 con fotones de partículas. El fotón de partículas es una placa que facilita el envío y la recepción de datos desde el sitio web, que es compatible con la función más básica de Internet de las cosas (IoT).

Paso 1: Hardware necesario:

Hardware requerido
Hardware requerido
Hardware requerido
Hardware requerido
Hardware requerido
Hardware requerido

Los materiales que necesitamos para lograr nuestro objetivo incluyen los siguientes componentes de hardware:

1. HMC5883

2. Fotón de partículas

3. Cable I2C

4. Escudo I2C para fotones de partículas

Paso 2: Conexión de hardware:

Conexión de hardware
Conexión de hardware
Conexión de hardware
Conexión de hardware

La sección de conexión de hardware básicamente explica las conexiones de cableado necesarias entre el sensor y el fotón de partículas. Asegurar las conexiones correctas es la necesidad básica al trabajar en cualquier sistema para obtener la salida deseada. Entonces, las conexiones requeridas son las siguientes:

El HMC5883 funcionará sobre I2C. Aquí está el diagrama de cableado de ejemplo, que demuestra cómo cablear cada interfaz del sensor.

Fuera de la caja, la placa está configurada para una interfaz I2C, por lo que recomendamos usar esta conexión si, por lo demás, es agnóstico. ¡Todo lo que necesitas son cuatro cables!

Solo se requieren cuatro conexiones Vcc, Gnd, SCL y pines SDA y estos se conectan con la ayuda del cable I2C.

Estas conexiones se muestran en las imágenes de arriba.

Paso 3: Código para medir la intensidad del campo magnético:

Código para medir la intensidad del campo magnético
Código para medir la intensidad del campo magnético

Comencemos ahora con el código de partículas.

Mientras usamos el módulo sensor con Arduino, incluimos la biblioteca application.hy spark_wiring_i2c.h. La biblioteca "application.h" y spark_wiring_i2c.h contiene las funciones que facilitan la comunicación i2c entre el sensor y la partícula.

El código de partículas completo se proporciona a continuación para comodidad del usuario:

#incluir

#incluir

// La dirección I2C del HMC5883 es 0x1E (30)

#define Addr 0x1E

int xMag = 0, yMag = 0, zMag = 0;

configuración vacía ()

{

// Establecer variable

Particle.variable ("i2cdevice", "HMC5883");

Particle.variable ("xMag", xMag);

Particle.variable ("yMag", yMag);

Particle.variable ("zMag", zMag);

// Inicializar la comunicación I2C como MASTER

Wire.begin ();

// Inicializar la comunicación en serie, configurar la velocidad en baudios = 9600

Serial.begin (9600);

// Iniciar transmisión I2C

Wire.beginTransmission (Addr);

// Seleccione configurar registro A

Wire.write (0x00);

// Establecer la configuración de medición normal, tasa de salida de datos = 0,75 Hz

Wire.write (0x60);

// Detener la transmisión I2C

Wire.endTransmission ();

// Iniciar transmisión I2C

Wire.beginTransmission (Addr);

// Seleccionar registro de modo

Wire.write (0x02);

// Establecer medición continua

Wire.write (0x00);

// Detener la transmisión I2C

Wire.endTransmission ();

retraso (300);

}

bucle vacío ()

{

datos int sin firmar [6];

// Iniciar transmisión I2C

Wire.beginTransmission (Addr);

// Seleccionar registro de datos

Wire.write (0x03);

// Detener la transmisión I2C

Wire.endTransmission ();

// Solicita 6 bytes de datos

Wire.requestFrom (Dirección, 6);

// Leer 6 bytes de datos

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

if (Cable disponible () == 6)

{

datos [0] = Wire.read ();

datos [1] = Wire.read ();

datos [2] = Wire.read ();

datos [3] = Wire.read ();

datos [4] = Wire.read ();

datos [5] = Wire.read ();

}

retraso (300);

// Convertir los datos

xMag = ((datos [0] * 256) + datos [1]);

si (xMag> 32767)

{

xMag - = 65536;

}

zMag = ((datos [2] * 256) + datos [3]);

si (zMag> 32767)

{

zMag - = 65536;

}

yMag = ((datos [4] * 256) + datos [5]);

si (yMag> 32767)

{

yMag - = 65536;

}

// Salida de datos al tablero

Particle.publish ("Campo magnético en el eje X:", String (xMag));

retraso (1000);

Particle.publish ("Campo magnético en el eje Y:", String (yMag));

retraso (1000);

Particle.publish ("Campo magnético en el eje Z:", String (zMag));

retraso (1000);

}

La función Particle.variable () crea las variables para almacenar la salida del sensor y la función Particle.publish () muestra la salida en el tablero del sitio.

La salida del sensor se muestra en la imagen de arriba para su referencia.

Paso 4: Aplicaciones:

Aplicaciones
Aplicaciones

HMC5883 es un módulo multichip de montaje en superficie diseñado para detección magnética de campo bajo con una interfaz digital para aplicaciones como la magnetometría y la brújula de bajo costo. Su precisión y precisión de uno a dos grados permite la navegación peatonal y las aplicaciones LBS.

Recomendado: