Simple test¶
Ensure your device works with this simple test.
examples/mma8451_simpletest.py¶
import time
from machine import Pin, I2C
from micropython_mma8451 import mma8451
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
mma = mma8451.MMA8451(i2c)
while True:
x, y, z = mma.acceleration
print(
"Acceleration: X={0:0.1f}m/s^2 y={1:0.1f}m/s^2 z={2:0.1f}m/s^2".format(x, y, z)
)
print()
time.sleep(0.5)
Operation mode settings¶
Example showing the Operation mode setting
examples/mma8451_operation_mode.py¶
import time
from machine import Pin, I2C
from micropython_mma8451 import mma8451
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
mma = mma8451.MMA8451(i2c)
mma.operation_mode = mma8451.STANDBY_MODE
while True:
for operation_mode in mma8451.operation_mode_values:
print("Current Operation mode setting: ", mma.operation_mode)
for _ in range(10):
accx, accy, accz = mma.acceleration
print("x:{:.2f}m/s2, y:{:.2f}m/s2, z:{:.2f}m/s2".format(accx, accy, accz))
print()
time.sleep(0.5)
mma.operation_mode = operation_mode
Scale range settings¶
Example showing the Scale range setting
examples/mma8451_scale_range.py¶
import time
from machine import Pin, I2C
from micropython_mma8451 import mma8451
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
mma = mma8451.MMA8451(i2c)
mma.scale_range = mma8451.RANGE_8G
while True:
for scale_range in mma8451.scale_range_values:
print("Current Scale range setting: ", mma.scale_range)
for _ in range(3):
accx, accy, accz = mma.acceleration
print("x:{:.2f}m/s2, y:{:.2f}m/s2, z:{:.2f}m/s2".format(accx, accy, accz))
print()
time.sleep(0.5)
mma.scale_range = scale_range
Data rate settings¶
Example showing the Data rate setting
examples/mma8451_data_rate.py¶
import time
from machine import Pin, I2C
from micropython_mma8451 import mma8451
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
mma = mma8451.MMA8451(i2c)
mma.data_rate = mma8451.DATARATE_800HZ
while True:
for data_rate in mma8451.data_rate_values:
print("Current Data rate setting: ", mma.data_rate)
for _ in range(10):
accx, accy, accz = mma.acceleration
print("x:{:.2f}m/s2, y:{:.2f}m/s2, z:{:.2f}m/s2".format(accx, accy, accz))
print()
time.sleep(0.5)
mma.data_rate = data_rate
High pass filter cutoff settings¶
Example showing the High pass filter cutoff setting
examples/mma8451_high_pass_filter_cutoff.py¶
import time
from machine import Pin, I2C
from micropython_mma8451 import mma8451
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
mma = mma8451.MMA8451(i2c)
mma.high_pass_filter = mma8451.HPF_ENABLED
mma.high_pass_filter_cutoff = mma8451.CUTOFF_8HZ
while True:
for high_pass_filter_cutoff in mma8451.high_pass_filter_cutoff_values:
print("Current High pass filter cutoff setting: ", mma.high_pass_filter_cutoff)
for _ in range(10):
accx, accy, accz = mma.acceleration
print("x:{:.2f}m/s2, y:{:.2f}m/s2, z:{:.2f}m/s2".format(accx, accy, accz))
print()
time.sleep(0.5)
mma.high_pass_filter_cutoff = high_pass_filter_cutoff