Simple test¶
Ensure your device works with this simple test.
import time
from machine import Pin, I2C
from micropython_bmm150 import bmm150
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
bmm = bmm150.BMM150(i2c)
while True:
magx, magy, magz, _ = bmm.measurements
print(f"x: {magx}uT, y: {magy}uT, z:{magz}uT")
print()
time.sleep(0.5)
Interrupt mode settings¶
Example showing the Interrupt mode setting
import time
from machine import Pin, I2C
from micropython_bmm150 import bmm150
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
bmm = bmm150.BMM150(i2c)
bmm.interrupt_mode = bmm150.INT_ENABLED
bmm.high_threshold = 100
while True:
magx, magy, magz, _ = bmm.measurements
print(f"x: {magx}uT, y: {magy}uT, z:{magz}uT")
print(bmm.status_interrupt)
print()
time.sleep(0.5)
Interrupt mode settings¶
Example showing the Interrupt mode setting
import time
from machine import Pin, I2C
from micropython_bmm150 import bmm150
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
bmm = bmm150.BMM150(i2c)
bmm.interrupt_mode = bmm150.INT_ENABLED
bmm.high_threshold = 100
while True:
magx, magy, magz, _ = bmm.measurements
print(f"x: {magx}uT, y: {magy}uT, z:{magz}uT")
print(bmm.status_interrupt)
print()
time.sleep(0.5)
Data rate settings¶
Example showing the Data rate setting
import time
from machine import Pin, I2C
from micropython_bmm150 import bmm150
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
bmm = bmm150.BMM150(i2c)
bmm.data_rate = bmm150.RATE_2HZ
while True:
for data_rate in bmm150.data_rate_values:
print("Current Data rate setting: ", bmm.data_rate)
for _ in range(10):
magx, magy, magz = bmm.magnetic
print("x:{:.2f}T, y:{:.2f}T, z:{:.2f}T".format(magx, magy, magz))
print()
time.sleep(0.5)
bmm.data_rate = data_rate