LED Projects

LED chasers,LED drivers,LED lamps,Automatic lighting systems etc

Microcontroller projects

Projects in PIC,AVR,MSP 430,ARM,Raspberry pi,Arduino etc

Coding

Coding in Microcontrollers,Arduino,MATLAB,LabView etc

Prototyping

Prototyping all kind of electronics and electrical projects

PCB Designing

PCB Dsesigning in Altium and Eagle Designer

Friday, 2 September 2016

MEASURING INCLINATION ANGLE (ARDUION+MPU6050)

Its a project to measure the angle of inclination in X,Y and Z axis.Here i use MPU6050 gyroscope for measurement.





Working of accelerometer

 

Working of Gyroscope


     Circuit



           vcc -- +5v
           Gnd-- Gnd
           SCL-- A5
           SDA--A4

Program

#include<Wire.h>

const int MPU_addr=0x68;

int16_t axis_X,axis_Y,axis_Z;

int minVal=265;

int maxVal=402;

double x;

double y;

double z;

 

void setup(){

  Wire.begin();

  Wire.beginTransmission(MPU_addr);

  Wire.write(0x6B);

  Wire.write(0);

  Wire.endTransmission(true);

  Serial.begin(9600);

}

void loop(){

  Wire.beginTransmission(MPU_addr);

  Wire.write(0x3B);

  Wire.endTransmission(false);

  Wire.requestFrom(MPU_addr,14,true);

  axis_X=Wire.read()<<8|Wire.read();

  axis_Y=Wire.read()<<8|Wire.read();

  axis_Z=Wire.read()<<8|Wire.read();

    int xAng = map(axis_X,minVal,maxVal,-90,90);

    int yAng = map(axis_Y,minVal,maxVal,-90,90);

    int zAng = map(axis_Z,minVal,maxVal,-90,90);

       x= RAD_TO_DEG * (atan2(-yAng, -zAng)+PI);

       y= RAD_TO_DEG * (atan2(-xAng, -zAng)+PI);

       z= RAD_TO_DEG * (atan2(-yAng, -xAng)+PI);

     Serial.print("Angle of inclination in X axis = ");

     Serial.print(x);

     Serial.println((char)176);

   /*  Serial.print("Angle of inclination in Y axis= ");

     Serial.print(y);

     Serial.println((char)176);

     Serial.print("Angle of inclination in Z axis= ");

     Serial.print(z);

     Serial.println((char)176);*/

     Serial.println("-------------------------------------------");

     delay(1000);

}