Simple test¶
Ensure your device works with this simple test.
import time
from machine import Pin, I2C
from micropython_bma400 import bma400
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
bma = bma400.BMA400(i2c)
while True:
accx, accy, accz = bma.acceleration
print(f"x:{accx:.2f}Gs, y:{accy:.2f}Gs, z:{accz:.2f}Gs")
time.sleep(0.5)
Power mode settings¶
Example showing the Power mode setting
import time
from machine import Pin, I2C
from micropython_bma400 import bma400
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
bma = bma400.BMA400(i2c)
bma.power_mode = bma400.LOW_POWER_MODE
while True:
for power_mode in bma400.power_mode_values:
print("Current Power mode setting: ", bma.power_mode)
for _ in range(10):
accx, accy, accz = bma.acceleration
print(f"x:{accx:.2f}Gs, y:{accy:.2f}Gs, z:{accz:.2f}Gs")
time.sleep(0.5)
bma.power_mode = power_mode
Output data rate settings¶
Example showing the Output data rate setting
import time
from machine import Pin, I2C
from micropython_bma400 import bma400
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
bma = bma400.BMA400(i2c)
bma.output_data_rate = bma400.ACCEL_50HZ
while True:
for output_data_rate in bma400.output_data_rate_values:
print("Current Output data rate setting: ", bma.output_data_rate)
for _ in range(10):
accx, accy, accz = bma.acceleration
print(f"x:{accx:.2f}Gs, y:{accy:.2f}Gs, z:{accz:.2f}Gs")
time.sleep(0.5)
bma.output_data_rate = output_data_rate
Oversampling rate settings¶
Example showing the Oversampling rate setting
import time
from machine import Pin, I2C
from micropython_bma400 import bma400
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
bma = bma400.BMA400(i2c)
bma.oversampling_rate = bma400.OVERSAMPLING_2
while True:
for oversampling_rate in bma400.oversampling_rate_values:
print("Current Oversampling rate setting: ", bma.oversampling_rate)
for _ in range(10):
accx, accy, accz = bma.acceleration
print(f"x:{accx:.2f}Gs, y:{accy:.2f}Gs, z:{accz:.2f}Gs")
time.sleep(0.5)
bma.oversampling_rate = oversampling_rate
Acc range settings¶
Example showing the Acc range setting
import time
from machine import Pin, I2C
from micropython_bma400 import bma400
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
bma = bma400.BMA400(i2c)
bma.acc_range = bma400.ACC_RANGE_16
while True:
for acc_range in bma400.acc_range_values:
print("Current Acc range setting: ", bma.acc_range)
for _ in range(10):
accx, accy, accz = bma.acceleration
print(f"x:{accx:.2f}Gs, y:{accy:.2f}Gs, z:{accz:.2f}Gs")
time.sleep(0.5)
bma.acc_range = acc_range
Source data registers settings¶
Example showing the Source data registers setting
import time
from machine import Pin, I2C
from micropython_bma400 import bma400
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
bma = bma400.BMA400(i2c)
bma.source_data_registers = bma400.ACC_FILT2
while True:
for source_data_registers in bma400.source_data_registers_values:
print("Current Source data registers setting: ", bma.source_data_registers)
for _ in range(10):
accx, accy, accz = bma.acceleration
print(f"x:{accx:.2f}Gs, y:{accy:.2f}Gs, z:{accz:.2f}Gs")
time.sleep(0.5)
bma.source_data_registers = source_data_registers
Filter bandwidth settings¶
Example showing the Filter bandwidth setting
import time
from machine import Pin, I2C
from micropython_bma400 import bma400
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
bma = bma400.BMA400(i2c)
bma.filter_bandwidth = bma400.ACC_FILT_BW0
while True:
for filter_bandwidth in bma400.filter_bandwidth_values:
print("Current Filter bandwidth setting: ", bma.filter_bandwidth)
for _ in range(10):
accx, accy, accz = bma.acceleration
print(f"x:{accx:.2f}Gs, y:{accy:.2f}Gs, z:{accz:.2f}Gs")
time.sleep(0.5)
bma.filter_bandwidth = filter_bandwidth