Simple test

Ensure your device works with this simple test.

examples/adxl343_simpletest.py
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

examples/adxl343_resolution_mode.py
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

examples/adxl343_acceleration_range.py
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

examples/adxl343_single_tap_mode.py
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

examples/adxl343_double_tap_mode.py
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

examples/adxl343_activity_detection.py
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

examples/adxl343_inactivity_detection.py
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

examples/adxl343_inactivity_mode.py
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)