diff --git a/adafruit_lis3dh.py b/adafruit_lis3dh.py index 0544077..d5fddb7 100755 --- a/adafruit_lis3dh.py +++ b/adafruit_lis3dh.py @@ -93,18 +93,23 @@ class LIS3DH: - """Driver base for the LIS3DH accelerometer. + """Driver base for the LIS3DH accelerometer. Optional parameters: :param digitalio.DigitalInOut int1: `digitalio.DigitalInOut` connected to the LIS3DH INT interrupt pin :param digitalio.DigitalInOut int2: `digitalio.DigitalInOut` connected to the LIS3DH I2 interrupt pin (only on STEMMA QT model) + :param bool internal_pull_up_int1: use `internal_pull_up_int1` to control if + the internal pull-up of the board/MCU should be used or not for the LIS3DH + INT interrupt pin (int1). Use external pull-up resistor if set to false. + By default the internal pull-up resistor will be used. """ def __init__( self, int1: Optional[digitalio.DigitalInOut] = None, int2: Optional[digitalio.DigitalInOut] = None, + internal_pull_up_int1: bool = True, ) -> None: # Check device ID. device_id = self._read_register_byte(_REG_WHOAMI) @@ -129,7 +134,8 @@ def __init__( self._int2 = int2 if self._int1: self._int1.direction = digitalio.Direction.INPUT - self._int1.pull = digitalio.Pull.UP + if internal_pull_up_int1: + self._int1.pull = digitalio.Pull.UP @property def data_rate( @@ -310,7 +316,7 @@ def set_tap( time_limit: int = 10, time_latency: int = 20, time_window: int = 255, - click_cfg: Optional[int] = None + click_cfg: Optional[int] = None, ) -> None: """ The tap detection parameters. @@ -413,7 +419,8 @@ def __init__( *, address: int = 0x18, int1: Optional[digitalio.DigitalInOut] = None, - int2: Optional[digitalio.DigitalInOut] = None + int2: Optional[digitalio.DigitalInOut] = None, + internal_pull_up_int1: bool = True, ) -> None: from adafruit_bus_device import ( # pylint: disable=import-outside-toplevel i2c_device, @@ -421,7 +428,9 @@ def __init__( self._i2c = i2c_device.I2CDevice(i2c, address) self._buffer = bytearray(6) - super().__init__(int1=int1, int2=int2) + super().__init__( + int1=int1, int2=int2, internal_pull_up_int1=internal_pull_up_int1 + ) def _read_register(self, register: int, length: int) -> bytearray: self._buffer[0] = register & 0xFF @@ -476,7 +485,7 @@ def __init__( *, baudrate: int = 100000, int1: Optional[digitalio.DigitalInOut] = None, - int2: Optional[digitalio.DigitalInOut] = None + int2: Optional[digitalio.DigitalInOut] = None, ) -> None: from adafruit_bus_device import ( # pylint: disable=import-outside-toplevel spi_device,