Adafruit_CircuitPython_ADS1x15/examples/ads1x15_gain_example.py
2020-03-16 15:41:23 -04:00

41 lines
1,005 B
Python

import time
import board
import busio
# import adafruit_ads1x15.ads1015 as ADS
import adafruit_ads1x15.ads1115 as ADS
from adafruit_ads1x15.analog_in import AnalogIn
# Create the I2C bus
i2c = busio.I2C(board.SCL, board.SDA)
# Create the ADS object
# ads = ADS.ADS1015(i2c)
ads = ADS.ADS1115(i2c)
# Create a sinlge ended channel on Pin 0
# Max counts for ADS1015 = 2047
# ADS1115 = 32767
chan = AnalogIn(ads, ADS.P0)
# The ADS1015 and ADS1115 both have the same gain options.
#
# GAIN RANGE (V)
# ---- ---------
# 2/3 +/- 6.144
# 1 +/- 4.096
# 2 +/- 2.048
# 4 +/- 1.024
# 8 +/- 0.512
# 16 +/- 0.256
#
gains = (2 / 3, 1, 2, 4, 8, 16)
while True:
ads.gain = gains[0]
print("{:5} {:5.3f}".format(chan.value, chan.voltage), end="")
for gain in gains[1:]:
ads.gain = gain
print(" | {:5} {:5.3f}".format(chan.value, chan.voltage), end="")
print()
time.sleep(0.5)