import time import board import busio import adafruit_ads1x15.ads1115 as ADS from adafruit_ads1x15.analog_in import AnalogIn # --- ADS1115 setup --- i2c = busio.I2C(board.SCL, board.SDA) ads = ADS.ADS1115(i2c) # Gain: start conservative so we don't saturate # If everything looks tiny, change to ads.gain = 4 or 8 later. ads.gain = 1 # Channels a0 = AnalogIn(ads, ADS.P0) # single-ended A0 a1 = AnalogIn(ads, ADS.P1) # single-ended A1 d01 = AnalogIn(ads, ADS.P0, ADS.P1) # differential A0 - A1 print("Quickcheck: shows A0, A1, D01(A0-A1) in mV + a simple movement meter.") print("Tip: DON'T touch bare wires. Stretch belt 5-10 times. Ctrl+C to stop.\n") prev = None ema = 0.0 # smoothed movement alpha = 0.2 while True: v0 = a0.voltage v1 = a1.voltage vd = d01.voltage # movement based on differential (best signal if it's a differential sensor) if prev is None: prev = vd move = abs(vd - prev) prev = vd ema = (1 - alpha) * ema + alpha * move # bar graph (auto-scales roughly) bar_len = min(60, int(ema * 2000)) # tweak multiplier if too sensitive/insensitive bar = "#" * bar_len print( f"A0={v0*1000:7.1f}mV A1={v1*1000:7.1f}mV D01={vd*1000:7.1f}mV move={ema*1000:6.2f}mV |{bar}", end="\r", flush=True ) time.sleep(0.05)