Lab 4 part 1

Dependencies:   MMA8451Q

Fork of Accelerometer_example by William Marsh

Committer:
diviavad
Date:
Fri Feb 16 22:28:56 2018 +0000
Revision:
2:41f1970641ca
Parent:
0:a1caba5c4e48
Version 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
WilliamMarshQMUL 0:a1caba5c4e48 1 #include "mbed.h"
WilliamMarshQMUL 0:a1caba5c4e48 2 #include "rtos.h"
WilliamMarshQMUL 0:a1caba5c4e48 3 #include "MMA8451Q.h"
diviavad 2:41f1970641ca 4
WilliamMarshQMUL 0:a1caba5c4e48 5 PinName const SDA = PTE25;
WilliamMarshQMUL 0:a1caba5c4e48 6 PinName const SCL = PTE24;
diviavad 2:41f1970641ca 7
WilliamMarshQMUL 0:a1caba5c4e48 8 #define MMA8451_I2C_ADDRESS (0x1d<<1)
diviavad 2:41f1970641ca 9
WilliamMarshQMUL 0:a1caba5c4e48 10 int main(void)
WilliamMarshQMUL 0:a1caba5c4e48 11 {
WilliamMarshQMUL 0:a1caba5c4e48 12 MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS);
WilliamMarshQMUL 0:a1caba5c4e48 13 PwmOut rled(LED1);
WilliamMarshQMUL 0:a1caba5c4e48 14 PwmOut gled(LED2);
WilliamMarshQMUL 0:a1caba5c4e48 15 PwmOut bled(LED3);
diviavad 2:41f1970641ca 16
WilliamMarshQMUL 0:a1caba5c4e48 17 Serial pc(USBTX, USBRX); // tx, rx
diviavad 2:41f1970641ca 18
diviavad 2:41f1970641ca 19
WilliamMarshQMUL 0:a1caba5c4e48 20 pc.printf("MMA8451 ID: %d\n", acc.getWhoAmI());
diviavad 2:41f1970641ca 21
WilliamMarshQMUL 0:a1caba5c4e48 22 while (true) {
WilliamMarshQMUL 0:a1caba5c4e48 23 float x, y, z;
diviavad 2:41f1970641ca 24
diviavad 2:41f1970641ca 25 float lower_th, upper_th;
diviavad 2:41f1970641ca 26
WilliamMarshQMUL 0:a1caba5c4e48 27 x = acc.getAccX();
WilliamMarshQMUL 0:a1caba5c4e48 28 y = acc.getAccY();
WilliamMarshQMUL 0:a1caba5c4e48 29 z = acc.getAccZ();
diviavad 2:41f1970641ca 30
diviavad 2:41f1970641ca 31 //
WilliamMarshQMUL 0:a1caba5c4e48 32 Thread::wait(300);
diviavad 2:41f1970641ca 33
diviavad 2:41f1970641ca 34 if(z>= 0.9 ){ // flat
diviavad 2:41f1970641ca 35 // myled1 = 0;
diviavad 2:41f1970641ca 36
diviavad 2:41f1970641ca 37 rled = 0;
diviavad 2:41f1970641ca 38 gled = 0;
diviavad 2:41f1970641ca 39 bled =0;
diviavad 2:41f1970641ca 40 pc.printf("flat \n \r");
diviavad 2:41f1970641ca 41
diviavad 2:41f1970641ca 42 }else if(y>= 0.9 ){//right
diviavad 2:41f1970641ca 43
diviavad 2:41f1970641ca 44 rled = 0;
diviavad 2:41f1970641ca 45 gled = 0;
diviavad 2:41f1970641ca 46 bled =0;
diviavad 2:41f1970641ca 47 pc.printf("right \n \r");
diviavad 2:41f1970641ca 48
diviavad 2:41f1970641ca 49 }else if(x>= 0.9){ // dowm
diviavad 2:41f1970641ca 50
diviavad 2:41f1970641ca 51 rled = 0;
diviavad 2:41f1970641ca 52 gled = 0;
diviavad 2:41f1970641ca 53 bled =0;
diviavad 2:41f1970641ca 54 pc.printf("down \n \r");
diviavad 2:41f1970641ca 55
diviavad 2:41f1970641ca 56 }else if(z<= -0.90 ){ //over
diviavad 2:41f1970641ca 57
diviavad 2:41f1970641ca 58 rled = 0;
diviavad 2:41f1970641ca 59 gled = 0;
diviavad 2:41f1970641ca 60 bled =0;
diviavad 2:41f1970641ca 61 pc.printf("over \n \r");
diviavad 2:41f1970641ca 62
diviavad 2:41f1970641ca 63 }else if(y<= -0.90 ){
diviavad 2:41f1970641ca 64
diviavad 2:41f1970641ca 65 rled = 0;
diviavad 2:41f1970641ca 66 gled = 0;
diviavad 2:41f1970641ca 67 bled =0;
diviavad 2:41f1970641ca 68 pc.printf("left \n \r");
diviavad 2:41f1970641ca 69
diviavad 2:41f1970641ca 70 }else if(x<= -0.90 ){
diviavad 2:41f1970641ca 71
diviavad 2:41f1970641ca 72 rled = 0;
diviavad 2:41f1970641ca 73 gled = 0;
diviavad 2:41f1970641ca 74 bled =0;
diviavad 2:41f1970641ca 75 pc.printf("up \n \r");
diviavad 2:41f1970641ca 76
diviavad 2:41f1970641ca 77 }
diviavad 2:41f1970641ca 78
diviavad 2:41f1970641ca 79 else{
diviavad 2:41f1970641ca 80
diviavad 2:41f1970641ca 81 rled = 1;
diviavad 2:41f1970641ca 82 gled = 1;
diviavad 2:41f1970641ca 83 bled =1;
diviavad 2:41f1970641ca 84 pc.printf(" \n \r");
diviavad 2:41f1970641ca 85 }
diviavad 2:41f1970641ca 86 //
diviavad 2:41f1970641ca 87 // pc.printf("X: %1.2f, Y: %1.2f, Z: %1.2f \n \r", x, y, z);
WilliamMarshQMUL 0:a1caba5c4e48 88 }
diviavad 2:41f1970641ca 89 }