Test of the accelerometer, digital I/O, on-board LCD screen. Looking at vector product of the x-y components of the accelerometer. Works pretty well. Still rough, program wise - sc 140710

Dependencies:   MMA8451Q SLCD mbed

Fork of ACC_LCD_341_MID by Stanley Cohen

Files at this revision

API Documentation at this revision

Comitter:
scohennm
Date:
Thu Sep 25 15:53:53 2014 +0000
Child:
1:9340a340e588
Commit message:
Midterm test program for publishing practice SSD 341 AY2014-2015 NMHU

Changed in this revision

MMA8451Q.lib Show annotated file Show diff for this revision Revisions of this file
SLCD.lib Show annotated file Show diff for this revision Revisions of this file
acc_341.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/MMA8451Q.lib	Thu Sep 25 15:53:53 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/emilmont/code/MMA8451Q/#c4d879a39775
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SLCD.lib	Thu Sep 25 15:53:53 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/Sissors/code/SLCD/#ef2b3b7f1b01
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/acc_341.cpp	Thu Sep 25 15:53:53 2014 +0000
@@ -0,0 +1,73 @@
+#include "mbed.h"
+#include "MMA8451Q.h"
+#include "SLCD.h"
+
+/* 
+Test of the accelerometer, digital I/O, on-board LCD screen.
+ Looing at vector product of the x-y components of the accelerometer.
+ Works pretty well. Still rough, program wise - sc 140710
+ */
+
+#define BLINKTIME 0.700
+#define DATATIME 0.200
+
+#define PROGNAME "ACCLCD341\r/n"
+
+#define PRINTDBUG
+
+#if   defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
+  PinName const SDA = PTE25;
+  PinName const SCL = PTE24;
+#elif defined (TARGET_KL05Z)
+  PinName const SDA = PTB4;
+  PinName const SCL = PTB3;
+#else
+  #error TARGET NOT DEFINED
+#endif
+
+#define MMA8451_I2C_ADDRESS (0x1d<<1)
+
+SLCD slcd; //define LCD display
+
+MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS);
+Serial pc(USBTX, USBRX);
+
+
+
+void LCDMess(char *lMess, float dWait){
+        slcd.Home();
+        slcd.clear();
+        slcd.printf(lMess);
+        wait(dWait);
+} 
+
+
+int main() {
+    float xAcc;
+    float yAcc;
+    float vector;  
+    char lcdData[10]; //buffer needs places dor decimal pt and colon
+    
+#ifdef PRINTDBUG
+        pc.printf(PROGNAME);
+#endif
+// main loop forever 
+    while(true) {
+
+//Get accelerometer data - tilt angles minus offset for zero mark.
+        xAcc = abs(acc.getAccX());
+        yAcc = abs(acc.getAccY());     
+ // Calulate vector sum of x and y reading.       
+        vector = sqrt(pow(xAcc,2) + pow(yAcc,2));
+        
+ 
+#ifdef PRINTDBUG
+        pc.printf("vector = %f\r\n",  vector);
+#endif
+
+        sprintf (lcdData,"%4.3f",vector);
+        LCDMess(lcdData, DATATIME);
+// Wait then do the whole thing again.
+        wait(DATATIME);
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Sep 25 15:53:53 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/04dd9b1680ae
\ No newline at end of file