Playing around with accelerometer and magnetometer on mbed KL46Z
Dependencies: MAG3110 MMA8451Q PinDetect mbed TSI
Revision 0:648dde0c4ef8, committed 2014-02-02
- Comitter:
- oliverfang
- Date:
- Sun Feb 02 22:07:05 2014 +0000
- Child:
- 1:22fcc3ce3ede
- Commit message:
- Accelerometer and magnetometer data collection with different sampling rates
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MAG3110.lib Sun Feb 02 22:07:05 2014 +0000 @@ -0,0 +1,1 @@ +https://mbed.org/users/SomeRandomBloke/code/MAG3110/#b81ec73cd601
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MMA8451Q.lib Sun Feb 02 22:07:05 2014 +0000 @@ -0,0 +1,1 @@ +https://mbed.org/users/SomeRandomBloke/code/MMA8451Q/#e8bacad228f6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PinDetect.lib Sun Feb 02 22:07:05 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/AjK/code/PinDetect/#cb3afc45028b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Feb 02 22:07:05 2014 +0000 @@ -0,0 +1,77 @@ +#include "mbed.h" +#include "PinDetect.h" +#include "MMA8451Q.h" +#include "MAG3110.h" + +#define MMA8451_I2C_ADDRESS (0x1d<<1) + +// Declare output LEDs +DigitalOut ledgreen(PTD5); +DigitalOut ledred(PTE29); + +// Declare USB serial connection +Serial pc(USBTX,USBRX); + +// Declare timer interrupt +Ticker timerAcc; +Ticker timerMag; + +// Declare pointer variables +float xAcc; +float yAcc; +float zAcc; +int xMag; +int yMag; +int zMag; + +// Declare Accelerometer pins and I2C address +MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS, 0, 0); +// Declare Magnetometer pins +MAG3110 mag(PTE25, PTE24); + +// Functions +void init(); +void accTime(); +void magTime(); + +void init() +{ + // Attach timerAcc + timerAcc.attach(&accTime, 0.5); + timerMag.attach(&magTime, 0.75); + ledred = 0; + ledgreen = 0; +} + +int main() +{ + // Initialize + init(); + + while(1) + { + // Read and print data from accelerometer + pc.puts("Accelerometer Data:\r\n"); + pc.printf("X: %f, Y: %f, Z: %f\r\n", xAcc, yAcc, zAcc); + // Read data from magnetometer + pc.puts("Magnetometer Data:\r\n"); + pc.printf("X: %d, Y: %d, Z: %d\r\n", xMag, yMag, zMag); + wait(0.5); + } +} + +void accTime() +{ + xAcc = abs(acc.getAccX()); + yAcc = abs(acc.getAccY()); + zAcc = abs(acc.getAccZ()); + ledgreen = !ledgreen; +} + +void magTime() +{ + xMag = mag.getXVal(); + yMag = mag.getYVal(); + zMag = mag.getZVal(); + ledred = !ledred; +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Sun Feb 02 22:07:05 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/824293ae5e43 \ No newline at end of file