make public

Dependencies:   mbed MMA7660

Committer:
BertieHarte
Date:
Fri Mar 26 10:18:10 2021 +0000
Revision:
0:7d4a8ede5b35
make public

Who changed what in which revision?

UserRevisionLine numberNew contents of line
BertieHarte 0:7d4a8ede5b35 1 #include "mbed.h"
BertieHarte 0:7d4a8ede5b35 2 #include "MMA7660.h"
BertieHarte 0:7d4a8ede5b35 3
BertieHarte 0:7d4a8ede5b35 4 MMA7660 MMA(p28, p27); // declare accelerometer.
BertieHarte 0:7d4a8ede5b35 5
BertieHarte 0:7d4a8ede5b35 6
BertieHarte 0:7d4a8ede5b35 7 // calculate angle function, using x,y,z variables.
BertieHarte 0:7d4a8ede5b35 8 float calculateAngle(float x, float y, float z)
BertieHarte 0:7d4a8ede5b35 9 {
BertieHarte 0:7d4a8ede5b35 10 float Angle;
BertieHarte 0:7d4a8ede5b35 11 float PI = 3.14159265;
BertieHarte 0:7d4a8ede5b35 12 // formula for calculating the angle - renamed as per program spec, based on equation 7 (Roll).
BertieHarte 0:7d4a8ede5b35 13 // convert to degrees from rad using 180/PI
BertieHarte 0:7d4a8ede5b35 14 Angle = (atan(y/(sqrt((x*x)+(z*z)))))*(180/PI);
BertieHarte 0:7d4a8ede5b35 15 return Angle;
BertieHarte 0:7d4a8ede5b35 16 }
BertieHarte 0:7d4a8ede5b35 17 // print output
BertieHarte 0:7d4a8ede5b35 18 // MMA.(value) is the built in function of MMA7660 library to read the accelerometer postions.
BertieHarte 0:7d4a8ede5b35 19 // Print measured values to terminal.
BertieHarte 0:7d4a8ede5b35 20 int main()
BertieHarte 0:7d4a8ede5b35 21 {
BertieHarte 0:7d4a8ede5b35 22 while(1) {
BertieHarte 0:7d4a8ede5b35 23 float Arr[10];
BertieHarte 0:7d4a8ede5b35 24 float Angle = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 25 Arr[0] = Angle;
BertieHarte 0:7d4a8ede5b35 26 float Angle1 = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 27 Arr[1] = Angle1;
BertieHarte 0:7d4a8ede5b35 28 float Angle2 = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 29 Arr[2] = Angle2;
BertieHarte 0:7d4a8ede5b35 30 float Angle3 = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 31 Arr[3] = Angle3;
BertieHarte 0:7d4a8ede5b35 32 float Angle4 = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 33 Arr[4] = Angle4;
BertieHarte 0:7d4a8ede5b35 34 float Angle5 = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 35 Arr[5] = Angle5;
BertieHarte 0:7d4a8ede5b35 36 float Angle6 = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 37 Arr[6] = Angle6;
BertieHarte 0:7d4a8ede5b35 38 float Angle7 = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 39 Arr[7] = Angle7;
BertieHarte 0:7d4a8ede5b35 40 float Angle8 = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 41 Arr[8] = Angle8;
BertieHarte 0:7d4a8ede5b35 42 float Angle9 = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 43 Arr[9] = Angle9;
BertieHarte 0:7d4a8ede5b35 44 // float Angle2 = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 45 // float Angle3 = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 46 // float Angle4 = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 47 // float Angle5 = (calculateAngle(MMA.x(),MMA.y(),MMA.z()));
BertieHarte 0:7d4a8ede5b35 48 printf("0 = %f \n\r" , Arr[0]);
BertieHarte 0:7d4a8ede5b35 49 printf("1 = %f \n\r" , Arr[1]);
BertieHarte 0:7d4a8ede5b35 50 printf("2 = %f \n\r" , Arr[2]);
BertieHarte 0:7d4a8ede5b35 51 printf("3 = %f \n\r" , Arr[3]);
BertieHarte 0:7d4a8ede5b35 52 printf("4 = %f \n\r" , Arr[4]);
BertieHarte 0:7d4a8ede5b35 53 printf("5 = %f \n\r" , Arr[5]);
BertieHarte 0:7d4a8ede5b35 54 printf("6 = %f \n\r" , Arr[6]);
BertieHarte 0:7d4a8ede5b35 55 printf("7 = %f \n\r" , Arr[7]);
BertieHarte 0:7d4a8ede5b35 56 printf("8 = %f \n\r" , Arr[8]);
BertieHarte 0:7d4a8ede5b35 57 printf("9 = %f \n\r" , Arr[9]);
BertieHarte 0:7d4a8ede5b35 58 float LAngle = (Arr[0]+Arr[1]+Arr[2]+Arr[3]+Arr[4]+Arr[5]+Arr[6]+Arr[7]+Arr[8]+Arr[9])/10;
BertieHarte 0:7d4a8ede5b35 59 if (LAngle != 0.000000) {
BertieHarte 0:7d4a8ede5b35 60 printf ("Angle = %f \n \r", LAngle);
BertieHarte 0:7d4a8ede5b35 61 wait(1);
BertieHarte 0:7d4a8ede5b35 62 } else {
BertieHarte 0:7d4a8ede5b35 63 }
BertieHarte 0:7d4a8ede5b35 64 }
BertieHarte 0:7d4a8ede5b35 65 }