Compare commits

..

2 commits

Author SHA1 Message Date
Carter Nelson
1ffc009f29
Merge pull request #57 from caternuson/iss55
Update read for continuous
2020-06-28 10:42:30 -07:00
Carter Nelson
0153a80021 update read for continuous 2020-06-24 22:30:34 +01:00
2 changed files with 13 additions and 1 deletions

View file

@ -31,9 +31,11 @@ CircuitPython base class driver for ADS1015/1115 ADCs.
__version__ = "0.0.0-auto.0" __version__ = "0.0.0-auto.0"
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15.git" __repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15.git"
import time
from micropython import const from micropython import const
from adafruit_bus_device.i2c_device import I2CDevice from adafruit_bus_device.i2c_device import I2CDevice
# pylint: disable=bad-whitespace
_ADS1X15_DEFAULT_ADDRESS = const(0x48) _ADS1X15_DEFAULT_ADDRESS = const(0x48)
_ADS1X15_POINTER_CONVERSION = const(0x00) _ADS1X15_POINTER_CONVERSION = const(0x00)
_ADS1X15_POINTER_CONFIG = const(0x01) _ADS1X15_POINTER_CONFIG = const(0x01)
@ -48,6 +50,7 @@ _ADS1X15_CONFIG_GAIN = {
8: 0x0800, 8: 0x0800,
16: 0x0A00, 16: 0x0A00,
} }
# pylint: enable=bad-whitespace
class Mode: class Mode:
@ -159,7 +162,10 @@ class ADS1x15:
if self.mode == Mode.CONTINUOUS and self._last_pin_read == pin: if self.mode == Mode.CONTINUOUS and self._last_pin_read == pin:
return self._conversion_value(self.get_last_result(True)) return self._conversion_value(self.get_last_result(True))
self._last_pin_read = pin self._last_pin_read = pin
if self.mode == Mode.SINGLE:
config = _ADS1X15_CONFIG_OS_SINGLE config = _ADS1X15_CONFIG_OS_SINGLE
else:
config = 0
config |= (pin & 0x07) << _ADS1X15_CONFIG_MUX_OFFSET config |= (pin & 0x07) << _ADS1X15_CONFIG_MUX_OFFSET
config |= _ADS1X15_CONFIG_GAIN[self.gain] config |= _ADS1X15_CONFIG_GAIN[self.gain]
config |= self.mode config |= self.mode
@ -168,8 +174,12 @@ class ADS1x15:
self._write_register(_ADS1X15_POINTER_CONFIG, config) self._write_register(_ADS1X15_POINTER_CONFIG, config)
if self.mode == Mode.SINGLE: if self.mode == Mode.SINGLE:
# poll conversion complete status bit
while not self._conversion_complete(): while not self._conversion_complete():
pass pass
else:
# just sleep (can't poll in continuous)
time.sleep(2 / self.data_rate)
return self._conversion_value(self.get_last_result(False)) return self._conversion_value(self.get_last_result(False))

View file

@ -28,8 +28,10 @@ differential ADC readings.
* Author(s): Carter Nelson, adapted from MCP3xxx original by Brent Rubell * Author(s): Carter Nelson, adapted from MCP3xxx original by Brent Rubell
""" """
# pylint: disable=bad-whitespace
_ADS1X15_DIFF_CHANNELS = {(0, 1): 0, (0, 3): 1, (1, 3): 2, (2, 3): 3} _ADS1X15_DIFF_CHANNELS = {(0, 1): 0, (0, 3): 1, (1, 3): 2, (2, 3): 3}
_ADS1X15_PGA_RANGE = {2 / 3: 6.144, 1: 4.096, 2: 2.048, 4: 1.024, 8: 0.512, 16: 0.256} _ADS1X15_PGA_RANGE = {2 / 3: 6.144, 1: 4.096, 2: 2.048, 4: 1.024, 8: 0.512, 16: 0.256}
# pylint: enable=bad-whitespace
class AnalogIn: class AnalogIn: