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