Zum Hauptinhalt springen

Schnellstart

Dieses Board misst das Magnetfeld auf drei Achsen. Verbinden Sie es über I2C, installieren Sie die Bibliothek für Ihre Umgebung und führen Sie das Beispiel für die Grundmessungen aus, um das X-, Y- und Z-Feld in Mikrotesla (µT) sowie die Temperatur des Sensors zu sehen.

Sie programmieren den Controller, der mit diesem Breakout verbunden ist. Das Breakout selbst wird nicht geflasht.

1. Das Breakout anschließen​

Stecken Sie ein Qwiic-Kabel in einen der beiden Qwiic Connector am Breakout und in den Qwiic Connector Ihres Controllers. Das eine Kabel überträgt Strom und I2C.

NULA DeepSleepSoldered 3-axis Magnetometer BMM350 Breakout
Qwiic ConnectorQwiic Connector
Anschlussplan: das NULA DeepSleep, verbunden mit dem Soldered 3-axis Magnetometer BMM350 Breakout über ein Qwiic-Kabel

Ohne Qwiic: Verdrahtung auf dem Steckbrett​

Löten Sie die mitgelieferten Stiftleisten an und verbinden Sie die 4-polige Stiftleiste mit den Strom- und I2C-Pins Ihres Controllers:

NULA DeepSleepSoldered 3-axis Magnetometer BMM350 Breakout
GNDGND
3V33V3
IO8SDA
IO9SCL
Anschlussplan: das NULA DeepSleep, verbunden mit dem Soldered 3-axis Magnetometer BMM350 Breakout: GND an GND, 3V3 an 3V3, IO8 an SDA, IO9 an SCL

Die Stiftleistenseite arbeitet mit 2 V bis 5 V, über den 1,8-V-Regler und den I2C-Pegelwandler des Boards. Die Qwiic Connector teilen sich dieselbe Versorgung. Wenn Sie also die Stiftleiste mit 5 V versorgen, führen beide Qwiic Connector ebenfalls 5 V.

2. Die Bibliothek installieren​

Laden Sie die Bibliothek Soldered BMM350 Geomagnetic Sensor aus ihrem GitHub-Repository herunter und fügen Sie sie in der Arduino IDE als ZIP-Bibliothek hinzu.

🔗Soldered BMM350 Geomagnetic Sensor

Verifizierte Arduino-Bibliothek bei Commit 8ef2cae

→

Tipp: Download von GitHub. Klicken Sie auf der GitHub-Seite der Bibliothek auf die grüne Schaltfläche Code und wählen Sie Download ZIP. Fügen Sie die Datei dann in der Arduino IDE über Sketch → Bibliothek einbinden → .ZIP-Bibliothek hinzufügen... hinzu.

3. Das erste Beispiel ausführen​

Dies ist basicReadings.ino, das einfachste Beispiel der Bibliothek. Es startet den Sensor an der Standardadresse 0x14 und gibt das Feld auf allen drei Achsen in µT sowie die Temperatur in °C aus, etwa 10-mal pro Sekunde. Laden Sie es hoch und öffnen Sie dann den Seriellen Monitor mit 115200 Baud.

Select Board
basicReadings.ino
/**
**************************************************
*
* @file basicReadings.ino
*
* @brief Example showing how to read compensated magnetometer and
* temperature data from the Soldered BMM350 Geomagnetic
* Sensor breakout over I2C
*
* @link solde.red/333359 : Soldered BMM350 Geomagnetic Sensor breakout
*
* @authors Soldered Electronics
***************************************************/
#include <BMM350-SOLDERED.h>

// Create an instance of the BMM350 sensor
Soldered_BMM350 magSensor;

void setup()
{
// Initialize serial for output
Serial.begin(115200);
Serial.println("BMM350 Example - Basic Readings");

// Initialize I2C bus
Wire.begin();

// Check if sensor is connected and initialize it.
// Address is optional, defaults to 0x14 (ADSEL tied low on this breakout)
while (magSensor.begin() != BMM350_OK)
{
Serial.println("Error: BMM350 not connected, check wiring and I2C address!");
delay(1000);
}

Serial.println("BMM350 connected!");
}

void loop()
{
// Get new measurements from the sensor. This must be called before
// accessing the magX/magY/magZ/temperature data, otherwise it will never update
if (magSensor.getSensorData() == BMM350_OK)
{
Serial.print("X: ");
Serial.print(magSensor.magX, 2);
Serial.print(" uT\t");
Serial.print("Y: ");
Serial.print(magSensor.magY, 2);
Serial.print(" uT\t");
Serial.print("Z: ");
Serial.print(magSensor.magZ, 2);
Serial.print(" uT\t");
Serial.print("Temperature: ");
Serial.print(magSensor.temperature, 2);
Serial.println(" degC");
}

// Print 10x per second
delay(100);
}

4. Das Ergebnis prüfen​

Sobald der Sensor antwortet, zeigt der Serielle Monitor die zwei Startzeilen und danach eine Zeile pro Messwert, etwa alle 100 ms: das Feld auf X:, Y: und Z: in uT mit zwei Nachkommastellen, dann Temperature: in degC, durch Tabulatoren getrennt.

Serial MonitorAutoscrollShow timestampNewline115200 baud
Message (Enter to send message to the board)
BMM350 Example - Basic Readings
BMM350 connected!
X: 12.84 uT Y: -21.37 uT Z: -38.92 uT Temperature: 24.61 degC
X: 12.79 uT Y: -21.42 uT Z: -38.88 uT Temperature: 24.62 degC
X: 12.86 uT Y: -21.35 uT Z: -38.95 uT Temperature: 24.62 degC
X: 12.81 uT Y: -21.40 uT Z: -38.90 uT Temperature: 24.63 degC

Wenn Sie stattdessen einmal pro Sekunde Error: BMM350 not connected, check wiring and I2C address! sehen, hat der Sensor unter 0x14 nicht geantwortet.

5. Wenn es nicht funktioniert​

Fahren Sie mit der Fehlerbehebung fort und wiederholen Sie dieses einfachste Beispiel nach jeder Änderung.