Leer el magnetómetro o brújula digital con Arduino Nano 33 BLE Sense (sensor LSM9DS1)

El modulo LSM9DS1 del Arduino Nano 33 BLE sense incluye un magnetómetro o brújula digital de 3 ejes. X , Y y Z. Su función principal es detectar el campo magnético terrestre en cada uno de los ejes de la placa. El eje X va a lo ancho de la placa, el Z a lo largo y el Y es perpendicular.

El primer paso es incluir la librería

#include <Arduino_LSM9DS1.h>

Inicializar el sensor a través de la instrucción IMU.begin() que devolverá true si todo va bien o false si hay algún error durante la inicialización.

  if (!IMU.begin() ) {
    Serial.println("Error al inicializar el sensor");
  }

Para saber si hay alguna lectura disponible se pude usar la función IMU.magneticFieldAvailable()

  if (IMU.magneticFieldAvailable()) {

  }

Para obtener el valor se usa IMU.readMagneticField(x, y, z); Siendo x, y, z tres variables de tipo float donde devolverá los valores del campo magnético en el eje correspondiente:

IMU.readMagneticField(x, y, z);

El campo magnético de mide en microteslas

Veamos todo el código de ejemplo:

#include <Arduino_LSM9DS1.h>

void setup() {
  Serial.begin(9600);
  while (!Serial);

  if (!IMU.begin()) {
    Serial.println("Error al inicializar el sensor");
  }
}

float x,y,z;

void loop() {
  // comprobar si hay una lectura disponible
  if (IMU.magneticFieldAvailable()) {    
    IMU.readMagneticField(x, y, z);
    Serial.print("x: ");
    Serial.print(x);
    Serial.print(" y: ");
    Serial.print(x);
    Serial.print(" z: ");
    Serial.println(z);
  }
  delay(500);  
}

Un comentario en “Leer el magnetómetro o brújula digital con Arduino Nano 33 BLE Sense (sensor LSM9DS1)

  1. Pingback: Crear un detector de metales con un magnetómetro o brújula digital. | Construyendo a Chispas

Los comentarios están cerrados.