direwolf/scripts/telemetry-toolkit/telem-volts.py

37 lines
983 B
Python

#!/usr/bin/python3
# Part of Dire Wolf APRS Telemetry Toolkit, WB2OSZ, 2015
# Derived from
# https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/blob/master/Adafruit_ADS1x15/ads1x15_ex_singleended.py
import time, signal, sys
from Adafruit_ADS1x15 import ADS1x15
ADS1015 = 0x00 # 12-bit ADC
ADS1115 = 0x01 # 16-bit ADC
# Set ADC full scale to 2048 mV.
# Can't use original 4096 with 3.3V supply.
gain = 2048
# Select the sample time, 1/sps second.
# Longer is better to average out noise.
sps = 64
# Set this to ADS1015 or ADS1115 depending on the ADC you are using!
adc = ADS1x15(ic=ADS1115)
# Values for voltage divider on ADC input.
r1 = 1000000.
r2 = 100000.
# Read channel 0 in single-ended mode using the settings above
volts = adc.readADCSingleEnded(0, gain, sps) * 0.001 * (r1+r2) / r2
# Calibration correction specific to my hardware.
# (multiply by expected value, divide by uncalibrated result.)
#volts = volts * 4.98 / 4.889
print("%.3f" % (volts))