Simple test¶
Ensure your device works with this simple test.
import time
from machine import Pin, I2C
from micropython_adxl343 import adxl343
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
adx = adxl343.ADXL343(i2c)
while True:
accx, accy, accz = adx.acceleration
print(f"x:{accx:.2f}m/s2, y:{accy:.2f}m/s2, z:{accz:.2f}m/s2")
print()
time.sleep(0.5)
Resolution mode settings¶
Example showing the Resolution mode setting
import time
from machine import Pin, I2C
from micropython_adxl343 import adxl343
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
adx = adxl343.ADXL343(i2c)
adx.resolution_mode = adxl343.LOW_RES
adx.acceleration_range = adxl343.RANGE_16
while True:
for acceleration_range in adxl343.acceleration_range_values:
print("Current Acceleration range setting: ", adx.acceleration_range)
for _ in range(2):
accx, accy, accz = adx.acceleration
print(f"x:{accx:.2f}m/s2, y:{accy:.2f}m/s2, z:{accz:.2f}m/s2")
print()
time.sleep(0.5)
adx.acceleration_range = acceleration_range
Acceleration range settings¶
Example showing the Acceleration range setting
import time
from machine import Pin, I2C
from micropython_adxl343 import adxl343
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
adx = adxl343.ADXL343(i2c)
adx.acceleration_range = adxl343.RANGE_16
while True:
for acceleration_range in adxl343.acceleration_range_values:
print("Current Acceleration range setting: ", adx.acceleration_range)
for _ in range(10):
accx, accy, accz = adx.acceleration
print(f"x:{accx:.2f}m/s2, y:{accy:.2f}m/s2, z:{accz:.2f}m/s2")
print()
time.sleep(0.5)
adx.acceleration_range = acceleration_range
Single tap mode settings¶
Example showing the Single tap mode setting
import time
from machine import Pin, I2C
from micropython_adxl343 import adxl343
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
adx = adxl343.ADXL343(i2c)
adx.single_tap_mode = adxl343.ST_ENABLED
adx.tap_threshold = 4 # m/s2
adx.tap_duration = 625 # us
while True:
print(f"Single Tap detected {adx.single_tap_activated}")
print()
time.sleep(0.5)
Double tap mode settings¶
Example showing the Double tap mode setting
import time
from machine import Pin, I2C
from micropython_adxl343 import adxl343
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
adx = adxl343.ADXL343(i2c)
adx.double_tap_mode = adxl343.DT_ENABLED
adx.tap_threshold = 4 # m/s2
adx.tap_duration = 625 # us
adx.tap_latent = 2.50 # ms
adx.tap_window = 2.50 # ms
while True:
print(f"Double Tap detected {adx.double_tap_activated}")
print()
time.sleep(0.5)
Activity Detection¶
Example showing an activity detection example
import time
from machine import Pin, I2C
from micropython_adxl343 import adxl343
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
adx = adxl343.ADXL343(i2c)
adx.activity_threshold = 20 # m/s2
adx.activity_mode = adxl343.ACTIVITY_ENABLED
while True:
print(f"Activity detected {adx.activity_detected}")
print()
time.sleep(0.5)
Inactivity Detection¶
Example showing an inactivity detection example
import time
from machine import Pin, I2C
from micropython_adxl343 import adxl343
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
adx = adxl343.ADXL343(i2c)
adx.inactivity_threshold = 20 # m/s2
adx.inactivity_mode = adxl343.INACTIVITY_ENABLED
adx.inactivity_duration = 3
while True:
print(f"Inactivity detected {adx.inactivity_detected}")
print()
time.sleep(0.5)
Inactivity mode settings¶
Example showing the Inactivity mode setting
import time
from machine import Pin, I2C
from micropython_adxl343 import adxl343
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
adx = adxl343.ADXL343(i2c)
adx.inactivity_mode = adxl343.INACTIVITY_ENABLED
while True:
for inactivity_mode in adxl343.inactivity_mode_values:
print("Current Inactivity mode setting: ", adx.inactivity_mode)
for _ in range(10):
accx, accy, accz = adx.acceleration
print(f"x:{accx:.2f}m/s2, y:{accy:.2f}m/s2, z:{accz:.2f}m/s2")
print()
time.sleep(0.5)