Simple test¶
Ensure your device works with this simple test.
import time
import board
import h3lis200dl
i2c = board.I2C() # uses board.SCL and board.SDA
h3lis = h3lis200dl.H3LIS200DL(i2c)
while True:
accx, accy, accz = h3lis.acceleration
print(f"x:{accx:.2f}g, y:{accy:.2f}g, z{accz:.2f}g")
print()
time.sleep(0.5)
Operation mode settings¶
Example showing the Operation mode setting
import time
import board
import h3lis200dl
i2c = board.I2C()
h3lis = h3lis200dl.H3LIS200DL(i2c)
h3lis.operation_mode = h3lis200dl.LOW_POWER_ODR0_5
while True:
for operation_mode in h3lis200dl.operation_mode_values:
print("Current Operation mode setting: ", h3lis.operation_mode)
for _ in range(10):
accx, accy, accz = h3lis.acceleration
print(f"x:{accx:.2f}g, y:{accy:.2f}g, z{accz:.2f}g")
print()
time.sleep(0.5)
h3lis.operation_mode = operation_mode
Full scale selection settings¶
Example showing the Full scale selection setting
import time
import board
import h3lis200dl
i2c = board.I2C()
h3lis = h3lis200dl.H3LIS200DL(i2c)
h3lis.full_scale_selection = h3lis200dl.SCALE_100G
while True:
for full_scale_selection in h3lis200dl.full_scale_selection_values:
print("Current Full scale selection setting: ", h3lis.full_scale_selection)
for _ in range(10):
accx, accy, accz = h3lis.acceleration
print(f"x:{accx:.2f}g, y:{accy:.2f}g, z{accz:.2f}g")
print()
time.sleep(0.5)
h3lis.full_scale_selection = full_scale_selection
Data rate settings¶
Example showing the Data rate setting
import time
import board
import h3lis200dl
i2c = board.I2C()
h3lis = h3lis200dl.H3LIS200DL(i2c)
h3lis.data_rate = h3lis200dl.RATE_400HZ
while True:
for data_rate in h3lis200dl.data_rate_values:
print("Current Data rate setting: ", h3lis.data_rate)
for _ in range(10):
accx, accy, accz = h3lis.acceleration
print(f"x:{accx:.2f}g, y:{accy:.2f}g, z{accz:.2f}g")
print()
time.sleep(0.5)
h3lis.data_rate = data_rate
High pass filter cutoff settings¶
Example showing the High pass filter cutoff setting
import time
import board
import h3lis200dl
i2c = board.I2C()
h3lis = h3lis200dl.H3LIS200DL(i2c)
h3lis.high_pass_filter_cutoff = h3lis200dl.HPCF32
while True:
for high_pass_filter_cutoff in h3lis200dl.high_pass_filter_cutoff_values:
print(
"Current High pass filter cutoff setting: ", h3lis.high_pass_filter_cutoff
)
for _ in range(10):
accx, accy, accz = h3lis.acceleration
print(f"x:{accx:.2f}g, y:{accy:.2f}g, z{accz:.2f}g")
print()
time.sleep(0.5)
h3lis.high_pass_filter_cutoff = high_pass_filter_cutoff
Interrupt Example¶
Interrupt Example
import time
import board
import h3lis200dl
i2c = board.I2C() # uses board.SCL and board.SDA
h3lis = h3lis200dl.H3LIS200DL(i2c)
h3lis.interrupt1_threshold = 2 # roughly 1.5 gs
h3lis.interrupt1_duration = 127 # Latch for 127 steps
h3lis.interrupt1_configuration = 42 # 0b101010 See Datasheet for options
h3lis.interrupt1_latched = 1 # 1 for True interrupt 1
while True:
accx, accy, accz = h3lis.acceleration
print(f"x:{accx:.2f}g, y:{accy:.2f}g, z{accz:.2f}g")
print(h3lis.interrupt1_source_register)
print()
time.sleep(1)