Bertie Harte
/
arraytest
make public
Diff: main.cpp
- Revision:
- 0:7d4a8ede5b35
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Mar 26 10:18:10 2021 +0000 @@ -0,0 +1,65 @@ +#include "mbed.h" +#include "MMA7660.h" + +MMA7660 MMA(p28, p27); // declare accelerometer. + + +// calculate angle function, using x,y,z variables. +float calculateAngle(float x, float y, float z) +{ + float Angle; + float PI = 3.14159265; + // formula for calculating the angle - renamed as per program spec, based on equation 7 (Roll). + // convert to degrees from rad using 180/PI + Angle = (atan(y/(sqrt((x*x)+(z*z)))))*(180/PI); + return Angle; +} +// print output +// MMA.(value) is the built in function of MMA7660 library to read the accelerometer postions. +// Print measured values to terminal. +int main() +{ + while(1) { + float Arr[10]; + float Angle = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); + Arr[0] = Angle; + float Angle1 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); + Arr[1] = Angle1; + float Angle2 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); + Arr[2] = Angle2; + float Angle3 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); + Arr[3] = Angle3; + float Angle4 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); + Arr[4] = Angle4; + float Angle5 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); + Arr[5] = Angle5; + float Angle6 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); + Arr[6] = Angle6; + float Angle7 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); + Arr[7] = Angle7; + float Angle8 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); + Arr[8] = Angle8; + float Angle9 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); + Arr[9] = Angle9; +// float Angle2 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); +// float Angle3 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); +// float Angle4 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); +// float Angle5 = (calculateAngle(MMA.x(),MMA.y(),MMA.z())); + printf("0 = %f \n\r" , Arr[0]); + printf("1 = %f \n\r" , Arr[1]); + printf("2 = %f \n\r" , Arr[2]); + printf("3 = %f \n\r" , Arr[3]); + printf("4 = %f \n\r" , Arr[4]); + printf("5 = %f \n\r" , Arr[5]); + printf("6 = %f \n\r" , Arr[6]); + printf("7 = %f \n\r" , Arr[7]); + printf("8 = %f \n\r" , Arr[8]); + printf("9 = %f \n\r" , Arr[9]); + float LAngle = (Arr[0]+Arr[1]+Arr[2]+Arr[3]+Arr[4]+Arr[5]+Arr[6]+Arr[7]+Arr[8]+Arr[9])/10; +if (LAngle != 0.000000) { + printf ("Angle = %f \n \r", LAngle); + wait(1); + } else { + } + } +}