This library enables users to communicate with the ADXL345 accelerometer through the I2C bus on the mbed. The API names are similar and work nearly the same way as those made in the SPI libraries for the ADXL345.

Dependencies:   mbed

Dependents:   sensors-example

Committer:
peterswanson87
Date:
Thu May 12 01:19:36 2011 +0000
Revision:
1:d9412b56f98a
Parent:
0:d0adb548714f

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
peterswanson87 0:d0adb548714f 1 #include "ADXL345_I2C.h"
peterswanson87 0:d0adb548714f 2
peterswanson87 0:d0adb548714f 3 ADXL345_I2C accelerometer(p28, p27);
peterswanson87 0:d0adb548714f 4 Serial pc(USBTX, USBRX);
peterswanson87 0:d0adb548714f 5
peterswanson87 0:d0adb548714f 6 int main() {
peterswanson87 0:d0adb548714f 7 pc.baud(115200);
peterswanson87 0:d0adb548714f 8 int readings[3] = {0, 0, 0};
peterswanson87 0:d0adb548714f 9
peterswanson87 0:d0adb548714f 10 pc.printf("Starting ADXL345 test...\n");
peterswanson87 0:d0adb548714f 11 wait(.001);
peterswanson87 0:d0adb548714f 12 pc.printf("Device ID is: 0x%02x\n", accelerometer.getDeviceID());
peterswanson87 0:d0adb548714f 13 wait(.001);
peterswanson87 0:d0adb548714f 14
peterswanson87 0:d0adb548714f 15 // These are here to test whether any of the initialization fails. It will print the failure
peterswanson87 0:d0adb548714f 16 if (accelerometer.setPowerControl(0x00)){
peterswanson87 0:d0adb548714f 17 pc.printf("didn't intitialize power control\n");
peterswanson87 0:d0adb548714f 18 return 0; }
peterswanson87 0:d0adb548714f 19 //Full resolution, +/-16g, 4mg/LSB.
peterswanson87 0:d0adb548714f 20 wait(.001);
peterswanson87 0:d0adb548714f 21
peterswanson87 0:d0adb548714f 22 if(accelerometer.setDataFormatControl(0x0B)){
peterswanson87 0:d0adb548714f 23 pc.printf("didn't set data format\n");
peterswanson87 0:d0adb548714f 24 return 0; }
peterswanson87 0:d0adb548714f 25 wait(.001);
peterswanson87 0:d0adb548714f 26
peterswanson87 0:d0adb548714f 27 //3.2kHz data rate.
peterswanson87 0:d0adb548714f 28 if(accelerometer.setDataRate(ADXL345_3200HZ)){
peterswanson87 0:d0adb548714f 29 pc.printf("didn't set data rate\n");
peterswanson87 0:d0adb548714f 30 return 0; }
peterswanson87 0:d0adb548714f 31 wait(.001);
peterswanson87 0:d0adb548714f 32
peterswanson87 0:d0adb548714f 33 //Measurement mode.
peterswanson87 0:d0adb548714f 34
peterswanson87 0:d0adb548714f 35 if(accelerometer.setPowerControl(MeasurementMode)) {
peterswanson87 0:d0adb548714f 36 pc.printf("didn't set the power control to measurement\n");
peterswanson87 0:d0adb548714f 37 return 0; }
peterswanson87 0:d0adb548714f 38
peterswanson87 0:d0adb548714f 39 while (1) {
peterswanson87 0:d0adb548714f 40
peterswanson87 0:d0adb548714f 41 wait(0.1);
peterswanson87 0:d0adb548714f 42
peterswanson87 0:d0adb548714f 43 accelerometer.getOutput(readings);
peterswanson87 0:d0adb548714f 44
peterswanson87 0:d0adb548714f 45
peterswanson87 0:d0adb548714f 46 pc.printf("%i, %i, %i\n", (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]);
peterswanson87 0:d0adb548714f 47 }
peterswanson87 0:d0adb548714f 48
peterswanson87 0:d0adb548714f 49 }