Lab4 code

Dependencies:   MMA8451Q

Fork of Accelerometer_example by William Marsh

main.cpp

Committer:
toh2018
Date:
2018-02-16
Revision:
2:840d7ce4075f
Parent:
0:a1caba5c4e48
Child:
3:38630c6ae590

File content as of revision 2:840d7ce4075f:

#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();
        
        //
        Thread::wait(300);
        
        // 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);
    }
}