Simple test¶
Ensure your device works with this simple test.
import time
from machine import Pin, I2C
from micropython_mmc5983 import MMC5983
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
mmc = MMC5983(i2c)
while True:
magx, magy, magz = mmc.magnetic
print(f"X: {magx:.2f}uT, Y: {magy:.2f}uT, Z: {magz:.2f}uT")
time.sleep(0.5)
temp = mmc.temperature
print(f"Temperature {temp:.1f}°C")
print()
time.sleep(0.5)
Operation mode settings¶
Example showing the Operation mode setting
import time
from machine import Pin, I2C
from micropython_mmc5983 import mmc5983
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
mmc = mmc5983.MMC5983(i2c)
mmc.operation_mode = mmc5983.CONTINUOUS
while True:
for operation_mode in mmc5983.operation_mode_values:
print("Current Operation mode setting: ", mmc.operation_mode)
for _ in range(10):
magx, magy, magz = mmc.magnetic
print(f"X: {magx:.2f}uT, Y: {magy:.2f}uT, Z: {magz:.2f}uT")
print()
time.sleep(0.5)
mmc.operation_mode = operation_mode
Continuous mode frequency settings¶
Example showing the Continuous mode frequency setting
import time
from machine import Pin, I2C
from micropython_mmc5983 import mmc5983
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
mmc = mmc5983.MMC5983(i2c)
mmc.continuous_mode_frequency = mmc5983.CM_20HZ
while True:
for continuous_mode_frequency in mmc5983.continuous_mode_frequency_values:
print(
"Current Continuous mode frequency setting: ", mmc.continuous_mode_frequency
)
for _ in range(5):
magx, magy, magz = mmc.magnetic
print(f"X: {magx:.2f}uT, Y: {magy:.2f}uT, Z: {magz:.2f}uT")
time.sleep(0.5)
mmc.continuous_mode_frequency = continuous_mode_frequency
Continuous mode frequency settings¶
Example showing the Continuous mode frequency setting
import time
from machine import Pin, I2C
from micropython_mmc5983 import mmc5983
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
mmc = mmc5983.MMC5983(i2c)
mmc.continuous_mode_frequency = mmc5983.CM_20HZ
while True:
for continuous_mode_frequency in mmc5983.continuous_mode_frequency_values:
print(
"Current Continuous mode frequency setting: ", mmc.continuous_mode_frequency
)
for _ in range(5):
magx, magy, magz = mmc.magnetic
print(f"X: {magx:.2f}uT, Y: {magy:.2f}uT, Z: {magz:.2f}uT")
time.sleep(0.5)
mmc.continuous_mode_frequency = continuous_mode_frequency
Bandwidth settings¶
Example showing the Bandwidth setting
import time
from machine import Pin, I2C
from micropython_mmc5983 import mmc5983
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
mmc = mmc5983.MMC5983(i2c)
mmc.bandwidth = mmc5983.BW_400HZ
while True:
for bandwidth in mmc5983.bandwidth_values:
print("Current Bandwidth setting: ", mmc.bandwidth)
for _ in range(10):
magx, magy, magz = mmc.magnetic
print(f"X: {magx:.2f}uT, Y: {magy:.2f}uT, Z: {magz:.2f}uT")
print()
time.sleep(0.5)
mmc.bandwidth = bandwidth