Library for driving the MMA8452 accelerometer over I2C

Dependents:   MMA8452_Test MMA8452_Demo Dualing_Tanks IMU-Controlled_MP3_Player ... more

Here is a simple example:

#include "mbed.h"
#include "MMA8452.h"

int main() {
   Serial pc(USBTX,USBRX);
   pc.baud(115200);
   double x = 0, y = 0, z = 0;

   MMA8452 acc(p28, p27, 40000);
   acc.setBitDepth(MMA8452::BIT_DEPTH_12);
   acc.setDynamicRange(MMA8452::DYNAMIC_RANGE_4G);
   acc.setDataRate(MMA8452::RATE_100);
   
   while(1) {
      if(!acc.isXYZReady()) {
         wait(0.01);
         continue;
      }
      acc.readXYZGravity(&x,&y,&z);
      pc.printf("Gravities: %lf %lf %lf\r\n",x,y,z);
   }
}

An easy way to test that this actually works is to run the loop above and hold the MMA8452 parallel to the ground along the respective axis (and upsidedown in each axis). You will see 1G on the respective axis and 0G on the others.

Revisions of MMA8452.cpp

Revision Date Message Actions
21:a92a632a0cc7 2014-03-07 Improved doxygen. File  Diff  Annotate
20:d55e9d7eb17e 2014-03-07 Independent read methods present. File  Diff  Annotate
19:4d6cd7140a71 2014-03-06 Adding independent query methods; File  Diff  Annotate
17:6e4232c421c0 2014-03-05 Cleaned up debug handling File  Diff  Annotate
16:d6dde2318edc 2014-03-05 Added data ready query commands for each independent axes. File  Diff  Annotate
14:0602b45ca70f 2014-03-05 Updated author priority to reflect work File  Diff  Annotate
13:4bd8b4cd479d 2014-03-05 Has routines to read raw, counts, and gravity. File  Diff  Annotate
12:172540ff6b8b 2014-03-04 Added basic raw reading back in after remake. File  Diff  Annotate
11:dfd1e0afcb7b 2014-03-04 Started a major rewrite of this library. File  Diff  Annotate
10:ca9ba7ad4e94 2014-03-04 Some minor changes File  Diff  Annotate
9:dfb0f6a7a455 2013-10-17 super clean File  Diff  Annotate
8:89272163f395 2013-10-17 made some simplifications File  Diff  Annotate
7:8aa5123d403f 2013-10-17 Fixing bug in write IIC methods -where register pointer was being reset to 0 as the write function was not doing a repeated 'start' for multiple register reads.... :-) File  Diff  Annotate
6:f6bde04bf8be 2013-10-17 Cleaning some things. File  Diff  Annotate
5:b3d0abd97e55 2013-10-16 adding method for getting control reg 1.; File  Diff  Annotate
4:27aa3cd43234 2013-10-16 simplification on several methods. File  Diff  Annotate
3:ffb0b1650ca2 2013-10-16 mma8452 0.1 - basic functions supported. ; Still going under test. File  Diff  Annotate
2:66db0f91b215 2013-10-08 whoami tested and working File  Diff  Annotate
1:ef026bf28798 2013-10-08 adding device id method detection File  Diff  Annotate
0:bcf2aa85d7f9 2013-10-04 Initial commit fro mma8452 File  Diff  Annotate