Compare commits

...

20 commits

Author SHA1 Message Date
Tyeth Gundry
c096f70814
Bump version to 1.1.4 in library.properties 2025-08-26 15:35:25 +01:00
Limor "Ladyada" Fried
25f91266c5
Merge pull request #8 from lboue/ds
MSA311 Digital Tri-axial Accelerometer Data Sheet
2025-08-19 16:27:15 -04:00
Tyeth Gundry
f0fa5f864b
Update library.properties - bump version to 1.1.3 2025-07-01 14:41:50 +01:00
Carter Nelson
1cfba157ae
Merge pull request #9 from caternuson/msa311
Updates for MSA311
2025-06-26 11:30:03 -07:00
caternuson
cafd3f49ea updates for MSA311 2025-06-26 09:47:27 -07:00
Ludovic BOUÉ
2ff48ad47a
MSA311 Digital Tri-axial Accelerometer Data Sheet
MSA311 Digital Tri-axial Accelerometer Data Sheet
V 1.1 / Mar. 2021
2024-03-18 13:17:02 +01:00
Tyeth Gundry
3b15d2c6a9
Merge pull request #5 from tyeth/bump-version-2023-11-14-20-26-11
Update version number to 1.1.2
2023-11-15 12:55:44 +00:00
Tyeth Gundry
3f911eaf4f Bump version number to 1.1.2 2023-11-14 20:26:12 +00:00
dherrada
f274bb4b28 Update CI action versions 2023-05-12 11:24:05 -04:00
Eva Herrada
8c7e09dae4
Bump to 1.1.0 2021-12-20 22:56:19 -05:00
ladyada
0dd5b7a720 clankz 2021-12-09 19:19:26 -05:00
lady ada
0226c55f96 add MSA311 support 2021-12-09 13:43:51 -05:00
dherrada
15bb233a30
Bump to 1.0.9 2020-05-26 16:07:35 -04:00
Limor "Ladyada" Fried
4bb6d859fe
Merge pull request #3 from adafruit/doxy-fix
Fixed doxygen index page
2020-05-26 14:20:01 -04:00
dherrada
a9a923e0e0 Fixed doxygen index page 2020-05-25 22:51:10 -04:00
dherrada
ab991e21b7
Update library.properties 2020-04-25 13:52:12 -04:00
dherrada
e8fed73ee8
Added docs badge 2020-04-21 21:54:19 -04:00
siddacious
8e897a461d
Update library.properties 2020-01-30 18:09:59 -08:00
siddacious
5ef03c1236 Merge remote-tracking branch 'adafruit/master' 2020-01-24 14:10:00 -08:00
siddacious
f5f8415d29 fixing readme 2020-01-24 14:08:37 -08:00
11 changed files with 125 additions and 93 deletions

View file

@ -7,11 +7,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-python@v1
- uses: actions/setup-python@v4
with:
python-version: '3.x'
- uses: actions/checkout@v2
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: actions/checkout@v3
with:
repository: adafruit/ci-arduino
path: ci

View file

@ -1,28 +1,28 @@
/**************************************************************************/
/*!
@file Adafruit_MSA301.cpp
@author Limor Fried (Adafruit Industries)
This is a library for the Adafruit MSA301 Accel breakout board
----> https://www.adafruit.com
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
@section license License
BSD license, all text here must be included in any redistribution.
*/
/**************************************************************************/
#if ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
* @file Adafruit_MSA301.cpp
*
* @mainpage Adafruit MSA301 Accelerometer Breakout
*
* @section intro_sec Introduction
*
* This is a library for the Adafruit MSA301 Accel breakout board
* ----> https://www.adafruit.com
*
* Adafruit invests time and resources providing this open source code,
* please support Adafruit and open-source hardware by purchasing
* products from Adafruit!
*
* @section author Author
*
* Limor Fried (Adafruit Industries)
*
* @section license License
*
* BSD license, all text here must be included in any redistribution.
*
*/
#include <Adafruit_MSA301.h>
#include <Wire.h>
/**************************************************************************/
/*!
@ -31,6 +31,25 @@
/**************************************************************************/
Adafruit_MSA301::Adafruit_MSA301() {}
/**************************************************************************/
/*!
@brief Instantiates a new MSA311 class
*/
/**************************************************************************/
Adafruit_MSA311::Adafruit_MSA311() {}
/*!
* @brief Sets up the hardware and initializes I2C
* @param i2c_address
* The I2C address to be used.
* @param wire
* The Wire object to be used for I2C connections.
* @return True if initialization was successful, otherwise false.
*/
bool Adafruit_MSA311::begin(uint8_t i2c_address, TwoWire *wire) {
return Adafruit_MSA301::begin(i2c_address, wire);
}
/*!
* @brief Sets up the hardware and initializes I2C
* @param i2c_address

View file

@ -1,17 +1,6 @@
/**************************************************************************/
/*!
@file Adafruit_MSA301.h
@author Limor Fried (Adafruit Industries)
This is a library for the Adafruit MSA301 Accel breakout board
----> https://www.adafruit.com/
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
*/
/**************************************************************************/
* @file Adafruit_MSA301.h
*/
#ifndef ADAFRUIT_MSA301_H
#define ADAFRUIT_MSA301_H
@ -25,6 +14,7 @@
I2C ADDRESS/BITS
-----------------------------------------------------------------------*/
#define MSA301_I2CADDR_DEFAULT (0x26) ///< Fixed I2C address
#define MSA311_I2CADDR_DEFAULT (0x62) ///< Fixed I2C address
/*=========================================================================*/
#define MSA301_REG_PARTID 0x01 ///< Register that contains the part ID
@ -184,4 +174,11 @@ private:
int32_t _sensorID;
};
/** Class for hardware interfacing with an MSA311 accelerometer */
class Adafruit_MSA311 : public Adafruit_MSA301 {
public:
Adafruit_MSA311(void);
bool begin(uint8_t i2c_addr = MSA311_I2CADDR_DEFAULT, TwoWire *wire = &Wire);
};
#endif

BIN
MSA311-V1.1-ENG.pdf Normal file

Binary file not shown.

View file

@ -1,19 +1,18 @@
Adafruit_MSA301 ![Build Status](https://github.com/adafruit/Adafruit_MSA301/workflows/Arduino%20Library%20CI/badge.svg)
================
# Adafruit MSA301 [![Build Status](https://github.com/adafruit/Adafruit_MSA301/workflows/Arduino%20Library%20CI/badge.svg)](https://github.com/adafruit/Adafruit_MSA301/actions)[![Documentation](https://github.com/adafruit/ci-arduino/blob/master/assets/doxygen_badge.svg)](http://adafruit.github.io/Adafruit_MSA301/html/index.html)
<a href="https://www.adafruit.com/products"><img src="assets/board.jpg?raw=true" width="500px"></a>
This is the Adafruit MSA301 Accelerometer library
This is the Adafruit MSA301/311 Accelerometer library
Tested and works great with the Adafruit MSA301 Breakout Board
Tested and works great with the Adafruit MSA301 and MSA311 Breakout Board
* https://www.adafruit.com/product/4344
* https://www.adafruit.com/product/5309
This chip uses I2C to communicate, 2 pins are required to interface
This breakout uses I2C to communicate, 2 pins are required to interface.
Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!
Written by Limor Fried for Adafruit Industries.
Written by Limor Fried for Adafruit Industries.
BSD license, check license.txt for more information
All text above must be included in any redistribution

BIN
assets/board.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 748 KiB

View file

@ -1,23 +1,27 @@
// Basic demo for accelerometer readings from Adafruit MSA301
// Basic demo for accelerometer readings from Adafruit MSA301/311
#include <Wire.h>
#include <Adafruit_MSA301.h>
#include <Adafruit_Sensor.h>
Adafruit_MSA301 msa;
//
// Comment/Uncomment as needed for specific MSA being used:
//
// Adafruit_MSA301 msa;
Adafruit_MSA311 msa;
void setup(void) {
Serial.begin(115200);
while (!Serial) delay(10); // will pause Zero, Leonardo, etc until serial console opens
Serial.println("Adafruit MSA301 test!");
Serial.println("Adafruit MSA301/311 test!");
// Try to initialize!
if (! msa.begin()) {
Serial.println("Failed to find MSA301 chip");
Serial.println("Failed to find MSA301/311 chip");
while (1) { delay(10); }
}
Serial.println("MSA301 Found!");
Serial.println("MSA301/311 Found!");
//msa.setDataRate(MSA301_DATARATE_31_25_HZ);
Serial.print("Data rate set to: ");
@ -79,22 +83,22 @@ void setup(void) {
void loop() {
msa.read(); // get X Y and Z data at once
// Then print out the raw data
Serial.print("X: "); Serial.print(msa.x);
Serial.print(" \tY: "); Serial.print(msa.y);
Serial.print(" \tZ: "); Serial.print(msa.z);
delay(100);
/* Or....get a new sensor event, normalized */
sensors_event_t event;
Serial.print("X: "); Serial.print(msa.x);
Serial.print(" \tY: "); Serial.print(msa.y);
Serial.print(" \tZ: "); Serial.print(msa.z);
delay(100);
/* Or....get a new sensor event, normalized */
sensors_event_t event;
msa.getEvent(&event);
/* Display the results (acceleration is measured in m/s^2) */
Serial.print("\t\tX: "); Serial.print(event.acceleration.x);
Serial.print(" \tY: "); Serial.print(event.acceleration.y);
Serial.print(" \tZ: "); Serial.print(event.acceleration.z);
Serial.print(" \tY: "); Serial.print(event.acceleration.y);
Serial.print(" \tZ: "); Serial.print(event.acceleration.z);
Serial.println(" m/s^2 ");
Serial.println();
delay(100);
delay(100);
}

View file

@ -1,30 +1,35 @@
// OLED demo for accelerometer readings from Adafruit MSA301
// OLED demo for accelerometer readings from Adafruit MSA301/311
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_MSA301.h>
#include <Adafruit_Sensor.h>
Adafruit_MSA301 msa;
//
// Comment/Uncomment as needed for specific MSA being used:
//
// Adafruit_MSA301 msa;
Adafruit_MSA311 msa;
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 32, &Wire);
void setup(void) {
Serial.begin(115200);
Serial.println("Adafruit MSA301 demo!");
Serial.println("Adafruit MSA301/311 demo!");
// Try to initialize!
if (! msa.begin()) {
Serial.println("Failed to find MSA301 chip");
Serial.println("Failed to find MSA301/311 chip");
while (1) { delay(10); }
}
Serial.println("MSA301 Found!");
Serial.println("MSA301/311 Found!");
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x32
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
}
display.display();
delay(500); // Pause for 2 seconds
display.setTextSize(1);
@ -33,24 +38,24 @@ void setup(void) {
}
void loop() {
sensors_event_t event;
sensors_event_t event;
msa.getEvent(&event);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0,0);
display.println("- Adafruit MSA301 -");
display.println("- Adafruit MSA3x1 -");
/* Display the results (acceleration is measured in m/s^2) */
Serial.print("\t\tX: "); Serial.print(event.acceleration.x);
Serial.print(" \tY: "); Serial.print(event.acceleration.y);
Serial.print(" \tZ: "); Serial.print(event.acceleration.z);
Serial.print(" \tY: "); Serial.print(event.acceleration.y);
Serial.print(" \tZ: "); Serial.print(event.acceleration.z);
Serial.println(" m/s^2 ");
display.setCursor(0, 8);
display.print("X: "); display.print(event.acceleration.x); display.println(" m/s^2 ");
display.print("Y: "); display.print(event.acceleration.y); display.println(" m/s^2 ");
display.print("Z: "); display.print(event.acceleration.z); display.println(" m/s^2 ");
display.print("Z: "); display.print(event.acceleration.z); display.println(" m/s^2 ");
display.display();
delay(100);

View file

@ -1,37 +1,41 @@
// Basic demo for plotting accelerometer readings from Adafruit MSA301
// Basic demo for plotting accelerometer readings from Adafruit MSA301/311
#include <Wire.h>
#include <Adafruit_MSA301.h>
#include <Adafruit_Sensor.h>
Adafruit_MSA301 msa;
//
// Comment/Uncomment as needed for specific MSA being used:
//
// Adafruit_MSA301 msa;
Adafruit_MSA311 msa;
void setup(void) {
Serial.begin(115200);
while (!Serial) delay(10); // will pause Zero, Leonardo, etc until serial console opens
Serial.println("Adafruit MSA301 test!");
Serial.println("Adafruit MSA301/311 test!");
// Try to initialize!
if (! msa.begin()) {
Serial.println("Failed to find MSA301 chip");
Serial.println("Failed to find MSA301/311 chip");
while (1) { delay(10); }
}
Serial.println("MSA301 Found!");
Serial.println("MSA301/311 Found!");
}
void loop() {
/* Get a new sensor event, normalized */
sensors_event_t event;
/* Get a new sensor event, normalized */
sensors_event_t event;
msa.getEvent(&event);
/* Display the results (acceleration is measured in m/s^2), with commas in between */
Serial.print(event.acceleration.x);
Serial.print(", "); Serial.print(event.acceleration.y);
Serial.print(", "); Serial.print(event.acceleration.z);
Serial.print(", "); Serial.print(event.acceleration.y);
Serial.print(", "); Serial.print(event.acceleration.z);
Serial.println();
delay(10);
delay(10);
}

View file

@ -1,8 +1,12 @@
// Basic demo for tap/doubletap readings from Adafruit MSA301
// Basic demo for tap/doubletap readings from Adafruit MSA301/311
#include <Adafruit_MSA301.h>
Adafruit_MSA301 msa;
//
// Comment/Uncomment as needed for specific MSA being used:
//
// Adafruit_MSA301 msa;
Adafruit_MSA311 msa;
void setup() {
Serial.begin(115200);
@ -10,10 +14,10 @@ void setup() {
// Try to initialize!
if (! msa.begin()) {
Serial.println("Failed to find MSA301 chip");
Serial.println("Failed to find MSA301/311 chip");
while (1) { delay(10); }
}
Serial.println("Found MSA301!");
Serial.println("Found MSA301/311!");
msa.setPowerMode(MSA301_NORMALMODE);
msa.setDataRate(MSA301_DATARATE_1000_HZ);

View file

@ -1,5 +1,5 @@
name=Adafruit MSA301
version=1.0.6
version=1.1.4
author=Adafruit <info@adafruit.com>
maintainer=Adafruit <info@adafruit.com>
sentence=Library for the Adafruit MSA301 Accelerometer.