5 #ifndef ADAFRUIT_MSA301_H     6 #define ADAFRUIT_MSA301_H     8 #include <Adafruit_BusIO_Register.h>     9 #include <Adafruit_I2CDevice.h>    10 #include <Adafruit_Sensor.h>    16 #define MSA301_I2CADDR_DEFAULT (0x26)     17 #define MSA311_I2CADDR_DEFAULT (0x62)     20 #define MSA301_REG_PARTID 0x01        21 #define MSA301_REG_OUT_X_L 0x02       22 #define MSA301_REG_OUT_X_H 0x03       23 #define MSA301_REG_OUT_Y_L 0x04       24 #define MSA301_REG_OUT_Y_H 0x05       25 #define MSA301_REG_OUT_Z_L 0x06       26 #define MSA301_REG_OUT_Z_H 0x07       27 #define MSA301_REG_MOTIONINT 0x09     28 #define MSA301_REG_DATAINT 0x0A       29 #define MSA301_REG_CLICKSTATUS                                                 \    31 #define MSA301_REG_RESRANGE 0x0F      32 #define MSA301_REG_ODR 0x10           33 #define MSA301_REG_POWERMODE 0x11     34 #define MSA301_REG_INTSET0 0x16       35 #define MSA301_REG_INTSET1 0x17       36 #define MSA301_REG_INTMAP0 0x19       37 #define MSA301_REG_INTMAP1 0x1A       38 #define MSA301_REG_TAPDUR 0x2A        39 #define MSA301_REG_TAPTH 0x2B        140   bool getEvent(sensors_event_t *event);
   144                         bool activeX = 
false, 
bool activeY = 
false,
   145                         bool activeZ = 
false, 
bool newData = 
false,
   146                         bool freefall = 
false, 
bool orient = 
false);
   148                        bool activity = 
false, 
bool newData = 
false,
   149                        bool freefall = 
false, 
bool orient = 
false);
   155   void setClick(
bool tap_quiet, 
bool tap_shock,
   172   Adafruit_I2CDevice *i2c_dev;
 msa301_powermode_t getPowerMode(void)
Get the power mode. 
Definition: Adafruit_MSA301.cpp:181
msa301_powermode_t
Definition: Adafruit_MSA301.h:85
3.9 Hz 
Definition: Adafruit_MSA301.h:60
uint8_t getClick(void)
Gets the most recent click detect status register value. 
Definition: Adafruit_MSA301.cpp:355
float z_g
The last read X acceleration in 'g'. 
Definition: Adafruit_MSA301.h:167
#define MSA311_I2CADDR_DEFAULT
Fixed I2C address. 
Definition: Adafruit_MSA301.h:17
150 millis 
Definition: Adafruit_MSA301.h:103
New data interrupt. 
Definition: Adafruit_MSA301.h:117
500 Hz 
Definition: Adafruit_MSA301.h:67
int16_t x
The last read X acceleration in raw units. 
Definition: Adafruit_MSA301.h:164
125 Hz 
Definition: Adafruit_MSA301.h:65
Single tap interrupt. 
Definition: Adafruit_MSA301.h:114
1000 Hz 
Definition: Adafruit_MSA301.h:68
void enableInterrupts(bool singletap=false, bool doubletap=false, bool activeX=false, bool activeY=false, bool activeZ=false, bool newData=false, bool freefall=false, bool orient=false)
Set which interrupts are enabled. 
Definition: Adafruit_MSA301.cpp:375
Adafruit_MSA301(void)
Instantiates a new MSA301 class. 
Definition: Adafruit_MSA301.cpp:32
void read()
Read the XYZ data from the accelerometer and store in the internal x, y and z (and x_g...
Definition: Adafruit_MSA301.cpp:280
15.63 Hz 
Definition: Adafruit_MSA301.h:76
100 millis 
Definition: Adafruit_MSA301.h:102
bool getEvent(sensors_event_t *event)
Gets the most recent sensor event, Adafruit Unified Sensor format. 
Definition: Adafruit_MSA301.cpp:465
1 Hz 
Definition: Adafruit_MSA301.h:58
31.25 Hz 
Definition: Adafruit_MSA301.h:63
msa301_dataRate_t getDataRate(void)
Gets the data rate for the MSA301 (controls power consumption) 
Definition: Adafruit_MSA301.cpp:130
62.5 Hz 
Definition: Adafruit_MSA301.h:64
375 millis 
Definition: Adafruit_MSA301.h:106
void setRange(msa301_range_t range)
Set the resolution range: +-2g, 4g, 8g, or 16g. 
Definition: Adafruit_MSA301.cpp:223
+/- 8g 
Definition: Adafruit_MSA301.h:45
msa301_tapduration_t
Definition: Adafruit_MSA301.h:100
12-bit resolution 
Definition: Adafruit_MSA301.h:94
8-bit resolution 
Definition: Adafruit_MSA301.h:96
msa301_bandwidth_t
Definition: Adafruit_MSA301.h:72
void getSensor(sensor_t *sensor)
Gets the sensor_t device data, Adafruit Unified Sensor format. 
Definition: Adafruit_MSA301.cpp:490
15.63 Hz 
Definition: Adafruit_MSA301.h:62
bool begin(uint8_t i2c_addr=MSA301_I2CADDR_DEFAULT, TwoWire *wire=&Wire)
Sets up the hardware and initializes I2C. 
Definition: Adafruit_MSA301.cpp:61
125 Hz 
Definition: Adafruit_MSA301.h:79
500 millis 
Definition: Adafruit_MSA301.h:107
void setClick(bool tap_quiet, bool tap_shock, msa301_tapduration_t tapduration, uint8_t tapthresh)
Set the click detection register thresholds. 
Definition: Adafruit_MSA301.cpp:326
void setBandwidth(msa301_bandwidth_t bandwidth)
Set the bandwidth, ranges from 1.95Hz to 500Hz. 
Definition: Adafruit_MSA301.cpp:195
msa301_resolution_t getResolution(void)
Read the resolution - 8, 10, 12, or 14bits. 
Definition: Adafruit_MSA301.cpp:265
Z axis bit. 
Definition: Adafruit_MSA301.h:53
3.9 Hz 
Definition: Adafruit_MSA301.h:74
Suspend (sleep) mode. 
Definition: Adafruit_MSA301.h:88
Y axis bit. 
Definition: Adafruit_MSA301.h:52
1.95 Hz 
Definition: Adafruit_MSA301.h:73
Low power (slow speed) mode. 
Definition: Adafruit_MSA301.h:87
7.81 Hz 
Definition: Adafruit_MSA301.h:61
50 millis 
Definition: Adafruit_MSA301.h:101
250 millis 
Definition: Adafruit_MSA301.h:105
float y_g
The last read Y acceleration in 'g'. 
Definition: Adafruit_MSA301.h:167
void setPowerMode(msa301_powermode_t mode)
Set the power mode, MSA301_NORMALMODE, MSA301_LOWPOWERMODE or MSA301_SUSPENDMODE. ...
Definition: Adafruit_MSA301.cpp:165
void setDataRate(msa301_dataRate_t dataRate)
Sets the data rate for the MSA301 (controls power consumption) from 1 Hz to 1000Hz. 
Definition: Adafruit_MSA301.cpp:116
+/- 2g (default value) 
Definition: Adafruit_MSA301.h:43
7.81 Hz 
Definition: Adafruit_MSA301.h:75
X axis bit. 
Definition: Adafruit_MSA301.h:51
Definition: Adafruit_MSA301.h:121
void setResolution(msa301_resolution_t resolution)
Set the resolution - 8, 10, 12, or 14bits. 
Definition: Adafruit_MSA301.cpp:251
msa301_bandwidth_t getBandwidth(void)
Get the bandwidth. 
Definition: Adafruit_MSA301.cpp:209
int16_t y
The last read Y acceleration in raw units. 
Definition: Adafruit_MSA301.h:164
1.95 Hz 
Definition: Adafruit_MSA301.h:59
31.25 Hz 
Definition: Adafruit_MSA301.h:77
msa301_dataRate_t
Definition: Adafruit_MSA301.h:57
Double tap interrupt. 
Definition: Adafruit_MSA301.h:115
Normal (high speed) mode. 
Definition: Adafruit_MSA301.h:86
200 millis 
Definition: Adafruit_MSA301.h:104
void enableAxes(bool x, bool y, bool z)
What axes of the accelerometer we want enabled for reading. 
Definition: Adafruit_MSA301.cpp:146
msa301_range_t
Definition: Adafruit_MSA301.h:42
Definition: Adafruit_MSA301.h:178
msa301_axis_t
Definition: Adafruit_MSA301.h:50
void mapInterruptPin(bool singletap=false, bool doubletap=false, bool activity=false, bool newData=false, bool freefall=false, bool orient=false)
Set which interrupts are mapped to the INT pin. 
Definition: Adafruit_MSA301.cpp:409
msa301_interrupt_t
Definition: Adafruit_MSA301.h:112
10-bit resolution 
Definition: Adafruit_MSA301.h:95
Orientation change interrupt. 
Definition: Adafruit_MSA301.h:113
250 Hz 
Definition: Adafruit_MSA301.h:66
int16_t z
The last read Z acceleration in raw units. 
Definition: Adafruit_MSA301.h:164
500 Hz 
Definition: Adafruit_MSA301.h:81
+/- 4g 
Definition: Adafruit_MSA301.h:44
62.5 Hz 
Definition: Adafruit_MSA301.h:78
msa301_range_t getRange(void)
Read the resolution range: +-2g, 4g, 8g, or 16g. 
Definition: Adafruit_MSA301.cpp:237
msa301_resolution_t
Definition: Adafruit_MSA301.h:92
+/- 16g 
Definition: Adafruit_MSA301.h:46
Active motion interrupt. 
Definition: Adafruit_MSA301.h:116
uint8_t getMotionInterruptStatus(void)
Gets the most recent motion interrupt status register value. 
Definition: Adafruit_MSA301.cpp:435
250 Hz 
Definition: Adafruit_MSA301.h:80
float x_g
The last read X acceleration in 'g'. 
Definition: Adafruit_MSA301.h:167
uint8_t getDataInterruptStatus(void)
Gets the most recent data interrupt status register value. 
Definition: Adafruit_MSA301.cpp:450
50 millis700 millis 
Definition: Adafruit_MSA301.h:108
#define MSA301_I2CADDR_DEFAULT
Fixed I2C address. 
Definition: Adafruit_MSA301.h:16
14-bit resolution 
Definition: Adafruit_MSA301.h:93