/ examples / lis3dh_adc.py
lis3dh_adc.py
 1  # Analog to digital converter example.
 2  # Will loop forever printing ADC channel 1 raw and mV values every second.
 3  # NOTE the ADC can only read voltages in the range of ~900mV to 1800mV!
 4  
 5  import time
 6  import board
 7  import busio
 8  import adafruit_lis3dh
 9  
10  # Uncomment if using SPI
11  # import digitalio
12  
13  
14  # Hardware I2C setup. Use the CircuitPlayground built-in accelerometer if available;
15  # otherwise check I2C pins.
16  if hasattr(board, "ACCELEROMETER_SCL"):
17      i2c = busio.I2C(board.ACCELEROMETER_SCL, board.ACCELEROMETER_SDA)
18      lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c, address=0x19)
19  else:
20      i2c = busio.I2C(board.SCL, board.SDA)
21      lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c)
22  
23  # Hardware SPI setup:
24  # spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
25  # cs = digitalio.DigitalInOut(board.D5)  # Set to correct CS pin!
26  # lis3dh = adafruit_lis3dh.LIS3DH_SPI(spi, cs)
27  
28  # PyGamer I2C Setup:
29  # i2c = busio.I2C(board.SCL, board.SDA)
30  # lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c, address=0x19)
31  
32  
33  # Loop forever printing ADC readings.
34  while True:
35      # Read raw ADC value.  Specify which ADC to read: 1, 2, or 3.
36      adc1_raw = lis3dh.read_adc_raw(1)
37      # Or read the ADC value in millivolts:
38      adc1_mV = lis3dh.read_adc_mV(1)
39      print("ADC 1 = {} ({} mV)".format(adc1_raw, adc1_mV))
40      time.sleep(1)