santos_ej1_modulo3

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 Serial pc(USBTX, USBRX);
00004 
00005 // Se definen la entradas analógicas
00006 
00007 AnalogIn dataX(A1);                                
00008 AnalogIn dataY(A2);
00009 AnalogIn dataZ(A3);
00010 
00011 void bucle() {
00012     pc.baud(4800);
00013     double x,y,z;
00014     double x_g_value,y_g_value,z_g_value;
00015     double roll, pitch;
00016     while(1) {
00017         x = dataX.read();
00018         y = dataY.read();
00019         z = dataZ.read();
00020         
00021         // Calculamos las aceleraciones en g
00022         x_g_value = ( ( ( (double)(x * 5)/1024) - 1.65 ) / 0.330 );
00023         y_g_value = ( ( ( (double)(y * 5)/1024) - 1.65 ) / 0.330 );
00024         z_g_value = ( ( ( (double)(z * 5)/1024) - 1.80 ) / 0.330 );
00025         
00026         //A partir de los valores del acelerometro, se calculan los angulos Y, X
00027         //respectivamente, con la formula de la tangente.
00028         roll = ( ( (atan2(y_g_value,z_g_value) * 180) / 3.14 ) + 180 );
00029         pitch = ( ( (atan2(z_g_value,x_g_value) * 180) / 3.14 ) + 180 );
00030         
00031         pc.printf("Accelerometer X : %f\n\r", x);
00032         pc.printf("Accelerometer Y : %f\n\r", y);
00033         pc.printf("Accelerometer Z : %f\n\r", z);
00034         pc.printf("Roll: %f\n\r",roll);
00035         pc.printf("pitch: %f\n\r",pitch);
00036         pc.printf("\n\n");
00037         pc.printf("\r\n");
00038         wait(1);
00039     }
00040 }
00041 
00042 int main() {
00043     bucle();
00044 }