
MMA8451
Dependencies: MMA8451Q
main.cpp@3:ad69174423e0, 2018-11-19 (annotated)
- Committer:
- jiuk
- Date:
- Mon Nov 19 02:05:05 2018 +0000
- Revision:
- 3:ad69174423e0
- Parent:
- 2:5fb1ae9832d3
acelerometro version chip mma8451
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
WilliamMarshQMUL | 0:a1caba5c4e48 | 1 | #include "mbed.h" |
WilliamMarshQMUL | 0:a1caba5c4e48 | 2 | #include "rtos.h" |
WilliamMarshQMUL | 0:a1caba5c4e48 | 3 | #include "MMA8451Q.h" |
WilliamMarshQMUL | 0:a1caba5c4e48 | 4 | |
jiuk | 3:ad69174423e0 | 5 | PinName const SDA = PC_9; |
jiuk | 3:ad69174423e0 | 6 | PinName const SCL = PB_8; |
jiuk | 3:ad69174423e0 | 7 | //SDA PC_9 |
jiuk | 3:ad69174423e0 | 8 | //SCL PB_8 |
WilliamMarshQMUL | 0:a1caba5c4e48 | 9 | |
jiuk | 3:ad69174423e0 | 10 | #define MMA8451_I2C_ADDRESS (0x68) |
WilliamMarshQMUL | 0:a1caba5c4e48 | 11 | |
WilliamMarshQMUL | 0:a1caba5c4e48 | 12 | int main(void) |
WilliamMarshQMUL | 0:a1caba5c4e48 | 13 | { |
WilliamMarshQMUL | 0:a1caba5c4e48 | 14 | MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS); |
WilliamMarshQMUL | 0:a1caba5c4e48 | 15 | Serial pc(USBTX, USBRX); // tx, rx |
cvmanuel | 2:5fb1ae9832d3 | 16 | float threshold = .50; |
cvmanuel | 2:5fb1ae9832d3 | 17 | float min_threshold = 0.25; |
cvmanuel | 2:5fb1ae9832d3 | 18 | |
WilliamMarshQMUL | 0:a1caba5c4e48 | 19 | |
WilliamMarshQMUL | 0:a1caba5c4e48 | 20 | |
WilliamMarshQMUL | 0:a1caba5c4e48 | 21 | pc.printf("MMA8451 ID: %d\n", acc.getWhoAmI()); |
WilliamMarshQMUL | 0:a1caba5c4e48 | 22 | |
WilliamMarshQMUL | 0:a1caba5c4e48 | 23 | while (true) { |
WilliamMarshQMUL | 0:a1caba5c4e48 | 24 | float x, y, z; |
WilliamMarshQMUL | 0:a1caba5c4e48 | 25 | x = acc.getAccX(); |
WilliamMarshQMUL | 0:a1caba5c4e48 | 26 | y = acc.getAccY(); |
WilliamMarshQMUL | 0:a1caba5c4e48 | 27 | z = acc.getAccZ(); |
jiuk | 3:ad69174423e0 | 28 | pc.printf("acelerometro: %d\n", x); |
jiuk | 3:ad69174423e0 | 29 | pc.printf("acelerometro: %d\n", y); |
jiuk | 3:ad69174423e0 | 30 | pc.printf("acelerometro: %d\n", z); |
cvmanuel | 2:5fb1ae9832d3 | 31 | //flat |
cvmanuel | 2:5fb1ae9832d3 | 32 | if(z>threshold && abs(x)< min_threshold && abs(y)< min_threshold) |
cvmanuel | 2:5fb1ae9832d3 | 33 | { |
cvmanuel | 2:5fb1ae9832d3 | 34 | pc.printf("FLAT\n\r"); |
cvmanuel | 2:5fb1ae9832d3 | 35 | pc.printf("X: %1.2f, Y: %1.2f, Z: %1.2f\n\r", x, y, z); |
cvmanuel | 2:5fb1ae9832d3 | 36 | |
cvmanuel | 2:5fb1ae9832d3 | 37 | }else |
cvmanuel | 2:5fb1ae9832d3 | 38 | if(y<-threshold && abs(z)<min_threshold && abs(x)<min_threshold) |
cvmanuel | 2:5fb1ae9832d3 | 39 | { |
cvmanuel | 2:5fb1ae9832d3 | 40 | pc.printf("RIGHT\n\r"); |
cvmanuel | 2:5fb1ae9832d3 | 41 | pc.printf("X: %1.2f, Y: %1.2f, Z: %1.2f\n\r", x, y, z); |
cvmanuel | 2:5fb1ae9832d3 | 42 | }else |
cvmanuel | 2:5fb1ae9832d3 | 43 | if(y>threshold && abs(z)<min_threshold && abs(x)<min_threshold) |
cvmanuel | 2:5fb1ae9832d3 | 44 | { |
cvmanuel | 2:5fb1ae9832d3 | 45 | pc.printf("LEFT\n\r"); |
cvmanuel | 2:5fb1ae9832d3 | 46 | pc.printf("X: %1.2f, Y: %1.2f, Z: %1.2f\n\r", x, y, z); |
cvmanuel | 2:5fb1ae9832d3 | 47 | }else |
cvmanuel | 2:5fb1ae9832d3 | 48 | if(x< -threshold && abs(z)<min_threshold && abs(y)<min_threshold) |
cvmanuel | 2:5fb1ae9832d3 | 49 | { |
cvmanuel | 2:5fb1ae9832d3 | 50 | pc.printf("DOWN\n\r"); |
cvmanuel | 2:5fb1ae9832d3 | 51 | pc.printf("X: %1.2f, Y: %1.2f, Z: %1.2f\n\r", x, y, z); |
cvmanuel | 2:5fb1ae9832d3 | 52 | }else |
cvmanuel | 2:5fb1ae9832d3 | 53 | if(x> threshold && abs(z)<min_threshold && abs(y)<min_threshold) |
cvmanuel | 2:5fb1ae9832d3 | 54 | { |
cvmanuel | 2:5fb1ae9832d3 | 55 | pc.printf("UP\n\r"); |
cvmanuel | 2:5fb1ae9832d3 | 56 | pc.printf("X: %1.2f, Y: %1.2f, Z: %1.2f\n\r", x, y, z); |
cvmanuel | 2:5fb1ae9832d3 | 57 | }else |
cvmanuel | 2:5fb1ae9832d3 | 58 | if(z<-threshold && abs(y)<min_threshold && abs(x)<min_threshold) |
cvmanuel | 2:5fb1ae9832d3 | 59 | { |
cvmanuel | 2:5fb1ae9832d3 | 60 | pc.printf("OVER\n\r"); |
cvmanuel | 2:5fb1ae9832d3 | 61 | pc.printf("X: %1.2f, Y: %1.2f, Z: %1.2f\n\r", x, y, z); |
cvmanuel | 2:5fb1ae9832d3 | 62 | } |
WilliamMarshQMUL | 0:a1caba5c4e48 | 63 | Thread::wait(300); |
cvmanuel | 2:5fb1ae9832d3 | 64 | |
WilliamMarshQMUL | 0:a1caba5c4e48 | 65 | } |
WilliamMarshQMUL | 0:a1caba5c4e48 | 66 | } |