93
93
94
94
95
95
class LIS3DH :
96
- """Driver base for the LIS3DH accelerometer.
96
+ """Driver base for the LIS3DH accelerometer. Optional parameters:
97
97
98
98
:param digitalio.DigitalInOut int1: `digitalio.DigitalInOut` connected to
99
99
the LIS3DH INT interrupt pin
100
100
:param digitalio.DigitalInOut int2: `digitalio.DigitalInOut` connected to
101
101
the LIS3DH I2 interrupt pin (only on STEMMA QT model)
102
+ :param bool internal_pull_up_int1: use this to control if
103
+ the internal pull-up of the board/MCU should be used or not for the LIS3DH
104
+ INT interrupt pin (int1). Use external pull-up resistor if set to false.
105
+ By default the internal pull-up resistor will be used.
102
106
"""
103
107
104
108
def __init__ (
105
109
self ,
106
110
int1 : Optional [digitalio .DigitalInOut ] = None ,
107
111
int2 : Optional [digitalio .DigitalInOut ] = None ,
112
+ internal_pull_up_int1 : bool = True ,
108
113
) -> None :
109
114
# Check device ID.
110
115
device_id = self ._read_register_byte (_REG_WHOAMI )
@@ -129,7 +134,8 @@ def __init__(
129
134
self ._int2 = int2
130
135
if self ._int1 :
131
136
self ._int1 .direction = digitalio .Direction .INPUT
132
- self ._int1 .pull = digitalio .Pull .UP
137
+ if internal_pull_up_int1 :
138
+ self ._int1 .pull = digitalio .Pull .UP
133
139
134
140
@property
135
141
def data_rate (
@@ -310,7 +316,7 @@ def set_tap(
310
316
time_limit : int = 10 ,
311
317
time_latency : int = 20 ,
312
318
time_window : int = 255 ,
313
- click_cfg : Optional [int ] = None
319
+ click_cfg : Optional [int ] = None ,
314
320
) -> None :
315
321
"""
316
322
The tap detection parameters.
@@ -413,15 +419,18 @@ def __init__(
413
419
* ,
414
420
address : int = 0x18 ,
415
421
int1 : Optional [digitalio .DigitalInOut ] = None ,
416
- int2 : Optional [digitalio .DigitalInOut ] = None
422
+ int2 : Optional [digitalio .DigitalInOut ] = None ,
423
+ internal_pull_up_int1 : bool = True ,
417
424
) -> None :
418
425
from adafruit_bus_device import ( # pylint: disable=import-outside-toplevel
419
426
i2c_device ,
420
427
)
421
428
422
429
self ._i2c = i2c_device .I2CDevice (i2c , address )
423
430
self ._buffer = bytearray (6 )
424
- super ().__init__ (int1 = int1 , int2 = int2 )
431
+ super ().__init__ (
432
+ int1 = int1 , int2 = int2 , internal_pull_up_int1 = internal_pull_up_int1
433
+ )
425
434
426
435
def _read_register (self , register : int , length : int ) -> bytearray :
427
436
self ._buffer [0 ] = register & 0xFF
@@ -476,7 +485,7 @@ def __init__(
476
485
* ,
477
486
baudrate : int = 100000 ,
478
487
int1 : Optional [digitalio .DigitalInOut ] = None ,
479
- int2 : Optional [digitalio .DigitalInOut ] = None
488
+ int2 : Optional [digitalio .DigitalInOut ] = None ,
480
489
) -> None :
481
490
from adafruit_bus_device import ( # pylint: disable=import-outside-toplevel
482
491
spi_device ,
0 commit comments