Tabla de contenido:
- Paso 1: Hardware necesario:
- Paso 2: Conexión de hardware:
- Paso 3: Código Arduino para medir la intensidad del campo magnético:
- Paso 4: Aplicaciones:
Video: Medición de campo magnético con HMC5883 y Arduino Nano: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
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 Arduino nano.
Paso 1: Hardware necesario:
Los materiales que necesitamos para lograr nuestro objetivo incluyen los siguientes componentes de hardware:
1. HMC5883
2. Arduino Nano
3. Cable I2C
4. Escudo I2C para Arduino Nano
Paso 2: 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 arduino nano. 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 Arduino para medir la intensidad del campo magnético:
Comencemos ahora con el código Arduino.
Mientras usamos el módulo de sensor con Arduino, incluimos la biblioteca Wire.h. La biblioteca "Wire" contiene las funciones que facilitan la comunicación i2c entre el sensor y la placa Arduino.
El código completo de Arduino se proporciona a continuación para la conveniencia del usuario:
#incluir
// La dirección I2C del HMC5883 es 0x1E (30)
#define Addr 0x1E
configuración vacía ()
{
// 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
int xMag = ((datos [0] * 256) + datos [1]);
int zMag = ((datos [2] * 256) + datos [3]);
int yMag = ((datos [4] * 256) + datos [5]);
// Salida de datos al monitor en serie
Serial.print ("Campo magnético en el eje X:");
Serial.println (xMag);
Serial.print ("Campo magnético en el eje Y:");
Serial.println (yMag);
Serial.print ("Campo magnético en el eje Z:");
Serial.println (zMag);
retraso (300);
}
En la biblioteca de cables, Wire.write () y Wire.read () se utilizan para escribir los comandos y leer la salida del sensor. La siguiente parte del código ilustra la lectura de la salida del sensor.
// Leer 6 bytes de datos // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if (Wire.available () == 6) {data [0] = Wire.read (); datos [1] = Wire.read (); datos [2] = Wire.read (); datos [3] = Wire.read (); datos [4] = Wire.read (); datos [5] = Wire.read (); }
Serial.print () y Serial.println () se utilizan para mostrar la salida del sensor en el monitor en serie del IDE de Arduino.
La salida del sensor se muestra en la imagen de arriba.
Paso 4: 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:
Medición de campo magnético con HMC5883 y Raspberry Pi: 4 pasos
Medición de campo magnético con HMC5883 y Raspberry Pi: 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 compensación y
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: 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 compensación y
Medición de presión con CPS120 y Arduino Nano: 4 pasos
Medición de presión con CPS120 y Arduino Nano: CPS120 es un sensor de presión absoluta capacitivo de alta calidad y bajo costo con salida totalmente compensada. Consume muy menos energía y se compone de un sensor microelectromecánico (MEMS) ultrapequeño para medir la presión. Un sigma-delta basado
Medición de temperatura con STS21 y Arduino Nano: 4 pasos
Medición de temperatura usando STS21 y Arduino Nano: El sensor de temperatura digital STS21 ofrece un rendimiento superior y un espacio que ahorra espacio. Proporciona señales calibradas y linealizadas en formato digital I2C. La fabricación de este sensor se basa en la tecnología CMOSens, que se atribuye a la superioridad
Sensor de campo magnético de 3 ejes: 10 pasos (con imágenes)
Sensor de campo magnético de 3 ejes: los sistemas de transferencia de energía inalámbricos están en camino de reemplazar la carga por cable convencional. Desde pequeños implantes biomédicos hasta la recarga inalámbrica de enormes vehículos eléctricos. Una parte integral de la investigación sobre energía inalámbrica es