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.
- Arduino
- MicroPython
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 DeepSleep | Soldered 3-axis Magnetometer BMM350 Breakout |
|---|---|
| Qwiic Connector | Qwiic Connector |
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 DeepSleep | Soldered 3-axis Magnetometer BMM350 Breakout |
|---|---|
| GND | GND |
| 3V3 | 3V3 |
| IO8 | SDA |
| IO9 | 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.
/**
**************************************************
*
* @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.
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.
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 DeepSleep | Soldered 3-axis Magnetometer BMM350 Breakout |
|---|---|
| Qwiic Connector | Qwiic Connector |
Ohne Qwiic: Verdrahtung auf dem Steckbrett
Löten Sie die mitgelieferten Stiftleisten an und verbinden Sie die 4-polige Stiftleiste mit Ihrem Controller. Das folgende Beispiel verwendet I2C-Bus 0 mit SDA an GPIO 8 und SCL an GPIO 9. Verbinden Sie diese Pins oder ändern Sie sie im Beispiel auf die Pins, die Sie verwenden.
| NULA DeepSleep | Soldered 3-axis Magnetometer BMM350 Breakout |
|---|---|
| GND | GND |
| 3V3 | 3V3 |
| IO8 | SDA |
| IO9 | 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. Das Modul installieren
Verwenden Sie mim oder installieren Sie, nachdem Sie das Paket mpremote installiert haben, die Bibliothek mit dem folgenden Befehl auf Ihrem Board:
mpremote mip install github:SolderedElectronics/Soldered-BMM350-MicroPython-Library
Oder, wenn Sie ein Windows-Betriebssystem verwenden:
python -m mpremote mip install github:SolderedElectronics/Soldered-BMM350-MicroPython-Library
🔗Soldered BMM350 MicroPython library
Verifiziertes MicroPython-Modul bei Commit 0995e8d
Tipp: Download von GitHub. Ohne mpremote öffnen Sie die .py-Datei
des Moduls auf GitHub und klicken auf Download raw file. Öffnen Sie sie dann in Thonny und kopieren Sie sie über
File → Save as... → MicroPython device auf das Board.
3. Das erste Beispiel ausführen
Dies ist bmm350-basicReadings.py. Es erstellt den I2C-Bus, startet den Sensor an der
Standardadresse 0x14 und gibt das Feld auf allen drei Achsen in µT sowie die
Temperatur in °C aus, etwa alle 100 ms. Ändern Sie die Pins scl und sda in der
Zeile I2C(...) auf die Pins, die Sie verdrahtet haben, und führen Sie es dann auf Ihrem Board aus.
# FILE: bmm350-basicReadings.py
# AUTHOR: Soldered Electronics
# BRIEF: Reads compensated magnetometer and temperature data from the BMM350
# sensor over I2C
# WORKS WITH: BMM350 Geomagnetic Sensor breakout: www.solde.red/333359
# LAST UPDATED: 2026-09-22
from bmm350 import BMM350, BMM350_OK
from machine import I2C, Pin
import time
# Change these to match how your board wires I2C
i2c = I2C(0, scl=Pin(9), sda=Pin(8))
sensor = BMM350(i2c)
if sensor.status != BMM350_OK:
raise Exception("Failed to initialize BMM350: " + sensor.status_string())
print("BMM350 connected!")
while True:
if sensor.get_sensor_data() == BMM350_OK:
print(
"X: {:.2f} uT\tY: {:.2f} uT\tZ: {:.2f} uT\tTemperature: {:.2f} degC".format(
sensor.data.mag_x, sensor.data.mag_y, sensor.data.mag_z, sensor.data.temperature
)
)
else:
print("Failed to read sensor data:", sensor.status_string())
time.sleep_ms(100)
🔗Das vollständige Beispiel öffnen
bmm350-basicReadings.py bei Commit 0995e8d
4. Das Ergebnis prüfen
Sobald der Sensor antwortet, zeigt die Shell BMM350 connected! 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.
BMM350 connected!
X: 12.47 uT Y: -8.31 uT Z: -37.92 uT Temperature: 24.58 degC
X: 12.52 uT Y: -8.28 uT Z: -37.85 uT Temperature: 24.58 degC
X: 12.44 uT Y: -8.35 uT Z: -37.96 uT Temperature: 24.61 degC
X: 12.50 uT Y: -8.29 uT Z: -37.89 uT Temperature: 24.61 degC
Schlägt ein Lesevorgang fehl, lautet die Zeile stattdessen Failed to read sensor data: gefolgt von
der Ursache.
Wenn der Sensor nicht antwortet, bricht das Skript mit einer Exception ab, die die
versuchte Adresse nennt, zum Beispiel BMM350 not responding on address 0x14.
5. Wenn es nicht funktioniert
Fahren Sie mit der Fehlerbehebung fort und wiederholen Sie dieses einfachste Beispiel nach jeder Änderung.