Lab4 code

Dependencies:   MMA8451Q

Fork of Accelerometer_example by William Marsh

Revision:
2:840d7ce4075f
Parent:
0:a1caba5c4e48
Child:
3:38630c6ae590
--- a/main.cpp	Wed Feb 07 16:56:55 2018 +0000
+++ b/main.cpp	Fri Feb 16 13:53:36 2018 +0000
@@ -1,32 +1,87 @@
 #include "mbed.h"
 #include "rtos.h"
 #include "MMA8451Q.h"
-
+ 
   PinName const SDA = PTE25;
   PinName const SCL = PTE24;
-
+ 
 #define MMA8451_I2C_ADDRESS (0x1d<<1)
-
+ 
 int main(void)
 {
     MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS);
     PwmOut rled(LED1);
     PwmOut gled(LED2);
     PwmOut bled(LED3);
+
     Serial pc(USBTX, USBRX); // tx, rx
-
-
+ 
     pc.printf("MMA8451 ID: %d\n", acc.getWhoAmI());
-
+ 
     while (true) {
         float x, y, z;
+         
         x = acc.getAccX();
         y = acc.getAccY();
         z = acc.getAccZ();
-        rled = 1.0f - abs(x);
-        gled = 1.0f - abs(y);
-        bled = 1.0f - abs(z);
+        
+        //
         Thread::wait(300);
-        pc.printf("X: %1.2f, Y: %1.2f, Z: %1.2f\n", x, y, z);
+        
+        // this is flat state
+        if(z>= 0.9 ){ 
+           
+           
+            rled = 0;
+            gled = 0;
+            bled =0;
+            pc.printf("flat \n \r");
+         //this is the left sate               
+        }else if(y>= 0.9 ){
+            
+            rled = 0;
+            gled = 0;
+            bled =0;
+            pc.printf("Left \n \r");
+          //this is the down state  
+        }else if(x>= 0.9){ 
+            
+            rled = 0;
+            gled = 0;
+            bled =0;
+            pc.printf("down \n \r");
+          //this is ver state  
+        }else if(z<= -0.90 ){ 
+            
+            rled = 0;
+            gled = 0;
+            bled =0;
+            pc.printf("over \n \r");
+           //this is the right  
+        }else if(y<= -0.90 ){ 
+            
+            rled = 0;
+            gled = 0;
+            bled =0;
+            pc.printf("Right \n \r");
+            //this is the Up
+        }else if(x<= -0.90 ){
+            
+            rled = 0;
+            gled = 0;
+            bled =0;
+            pc.printf("up \n \r");
+            
+        }
+        // this is to turn the light off during the turn event 
+        else{
+            
+            rled = 1;
+            gled = 1;
+            bled =1;
+            pc.printf(" \n \r");
+        }
+        //print out the value 
+        pc.printf("X: %1.2f, Y: %1.2f, Z: %1.2f \n \r", x, y, z);
     }
 }