Measurement of slope of accelerometer

Dependencies:   mbed C12832 MMA7660

main.cpp

Committer:
Dariusz_Piskorowski
Date:
2019-08-11
Revision:
0:a52d467589e0

File content as of revision 0:a52d467589e0:

#include "mbed.h"
#include "C12832.h"
#include "MMA7660.h"
#define PI 3.14159265

C12832 lcd(p5, p7, p6, p8, p11);  // setting up lcd  
MMA7660 MMA(p28, p27);            //setting up MMA
float mean;

float calculateAngle(float x, float y, float z){ //calculate angle
        float angle=0;
        angle=pow(y,2) + pow(z,2);
        angle=sqrt(angle);
        angle=x/angle;
        angle=atan(angle);
        angle=angle* 180/PI;
        for(int i=0; i<100; i++){  //loop for counting angle 100 times
            mean =+ angle;         //add next value of angle to mean
            wait(0.001);           //wait a little for different value
            }
            angle=mean/100;        //angle as mean
        return angle;
        }    

int main() {
    
    while(1) {
               
        lcd.cls();    
        lcd.locate(0,4);
        //print on lcd values of X,Y,Z and calculated angle
        lcd.printf("X= %f   Y= %f Z= %f  Angle= %.1f ", 
        MMA.x(),MMA.y(),MMA.z(), calculateAngle(MMA.x(),MMA.y(),MMA.z()));         
        wait(1);   // frequency of displayed data on lcd screen = delay time
        
        }
}