lis3dh_simpletest.py
1 import time 2 import board 3 import digitalio 4 import busio 5 import adafruit_lis3dh 6 7 # Hardware I2C setup. Use the CircuitPlayground built-in accelerometer if available; 8 # otherwise check I2C pins. 9 if hasattr(board, "ACCELEROMETER_SCL"): 10 i2c = busio.I2C(board.ACCELEROMETER_SCL, board.ACCELEROMETER_SDA) 11 int1 = digitalio.DigitalInOut(board.ACCELEROMETER_INTERRUPT) 12 lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c, address=0x19, int1=int1) 13 else: 14 i2c = busio.I2C(board.SCL, board.SDA) 15 int1 = digitalio.DigitalInOut(board.D6) # Set to correct pin for interrupt! 16 lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c, int1=int1) 17 18 # Hardware SPI setup: 19 # spi = busio.SPI(board.SCK, board.MOSI, board.MISO) 20 # cs = digitalio.DigitalInOut(board.D5) # Set to correct CS pin! 21 # int1 = digitalio.DigitalInOut(board.D6) # Set to correct pin for interrupt! 22 # lis3dh = adafruit_lis3dh.LIS3DH_SPI(spi, cs, int1=int1) 23 24 # PyGamer I2C Setup: 25 # i2c = busio.I2C(board.SCL, board.SDA) 26 # int1 = digitalio.DigitalInOut(board.ACCELEROMETER_INTERRUPT) 27 # lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c, address=0x19, int1=int1) 28 29 30 # Set range of accelerometer (can be RANGE_2_G, RANGE_4_G, RANGE_8_G or RANGE_16_G). 31 lis3dh.range = adafruit_lis3dh.RANGE_2_G 32 33 # Loop forever printing accelerometer values 34 while True: 35 # Read accelerometer values (in m / s ^ 2). Returns a 3-tuple of x, y, 36 # z axis values. Divide them by 9.806 to convert to Gs. 37 x, y, z = [ 38 value / adafruit_lis3dh.STANDARD_GRAVITY for value in lis3dh.acceleration 39 ] 40 print("x = %0.3f G, y = %0.3f G, z = %0.3f G" % (x, y, z)) 41 # Small delay to keep things responsive but give time for interrupt processing. 42 time.sleep(0.1)