Playing around with accelerometer and magnetometer on mbed KL46Z

Dependencies:   MAG3110 MMA8451Q PinDetect mbed TSI

Files at this revision

API Documentation at this revision

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

MAG3110.lib Show annotated file Show diff for this revision Revisions of this file
MMA8451Q.lib Show annotated file Show diff for this revision Revisions of this file
PinDetect.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /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