Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
MMA8452.h
00001 /** 00002 @file MMA8452.h 00003 00004 @brief Header file containing member functions and variables 00005 00006 */ 00007 00008 #ifndef MMA8452_H 00009 #define MMA8452_H 00010 00011 // MMA8452 address is 0x1D by default (see EAGLE schematic of breakout - SA = 1) 00012 #define MMA8452_W_ADDRESS 0x3A 00013 #define MMA8452_R_ADDRESS 0x3B 00014 // Register Descriptions - p18 datasheet 00015 #define OUT_X_MSB 0x01 00016 #define WHO_AM_I 0x0D 00017 #define CTRL_REG1 0x2A 00018 #define XYZ_DATA_CFG 0x0E 00019 00020 typedef struct Acceleration Acceleration; 00021 struct Acceleration { 00022 float x; 00023 float y; 00024 float z; 00025 }; 00026 00027 #include "mbed.h" 00028 00029 /** 00030 @brief Library for interfacing with MMA8452 I2C Accelerometer 00031 00032 @see http://www.freescale.com/files/sensors/doc/data_sheet/MMA8452Q.pdf 00033 @see https://www.sparkfun.com/products/12756 00034 00035 @brief Revision 1.0 00036 00037 @author Craig A. Evans 00038 @date March 2015 00039 * 00040 * Example: 00041 * @code 00042 00043 #include "mbed.h" 00044 #include "MMA8452.h" 00045 00046 MMA8452 mma8452(p28,p27); // SDA, SCL 00047 Serial serial(USBTX,USBRX); 00048 00049 int main() { 00050 00051 mma8452.init(); // 100 Hz update rate, ±4g scale 00052 00053 Acceleration acceleration; // Accleration structure declared in MMA8452 class 00054 00055 while(1) { 00056 00057 acceleration = mma8452.readValues(); // read current values and print over serial port 00058 serial.printf("x = %.2f g y = %.2f g z = %.2f g\n",acceleration.x,acceleration.y,acceleration.z); 00059 wait(0.1); // short delay until next reading 00060 00061 } 00062 00063 } 00064 00065 00066 * @endcode 00067 */ 00068 class MMA8452 00069 { 00070 00071 public: 00072 /** Create a MMA8452 object connected to the specified pins 00073 * 00074 * @param sdaPin - mbed SDA pin 00075 * @param sclPin - mbed SCL pin 00076 * 00077 */ 00078 MMA8452(PinName sdaPin, PinName sclPin); 00079 00080 /** Initialise accelerometer 00081 * 00082 * Powers up the accelerometer, sets 100 Hz update rate and ±4g scale 00083 */ 00084 void init(); 00085 00086 /** Get values of acceleration 00087 * 00088 * Reads the x,y,z values in g's 00089 * @returns an Acceleration structure with x,y,z members (float) 00090 */ 00091 Acceleration readValues(); 00092 00093 00094 private: 00095 void sendByteToRegister(char byte,char reg); 00096 char readByteFromRegister(char reg); 00097 void readBytesFromRegister(char reg,int numberOfBytes,char bytes[]); 00098 void error(); 00099 00100 public: 00101 00102 private: // private variables 00103 I2C* i2c; 00104 BusOut* leds; 00105 00106 }; 00107 00108 00109 00110 #endif
Generated on Tue Jul 19 2022 21:33:49 by
1.7.2