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)