santos_ej1_modulo3

Dependencies:   mbed

Committer:
sedu_santos
Date:
Wed May 04 19:04:32 2022 +0000
Revision:
0:53639fa01e05
santos_ej1_modulo3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sedu_santos 0:53639fa01e05 1 #include "mbed.h"
sedu_santos 0:53639fa01e05 2
sedu_santos 0:53639fa01e05 3 Serial pc(USBTX, USBRX);
sedu_santos 0:53639fa01e05 4
sedu_santos 0:53639fa01e05 5 // Se definen la entradas analógicas
sedu_santos 0:53639fa01e05 6
sedu_santos 0:53639fa01e05 7 AnalogIn dataX(A1);
sedu_santos 0:53639fa01e05 8 AnalogIn dataY(A2);
sedu_santos 0:53639fa01e05 9 AnalogIn dataZ(A3);
sedu_santos 0:53639fa01e05 10
sedu_santos 0:53639fa01e05 11 void bucle() {
sedu_santos 0:53639fa01e05 12 pc.baud(4800);
sedu_santos 0:53639fa01e05 13 double x,y,z;
sedu_santos 0:53639fa01e05 14 double x_g_value,y_g_value,z_g_value;
sedu_santos 0:53639fa01e05 15 double roll, pitch;
sedu_santos 0:53639fa01e05 16 while(1) {
sedu_santos 0:53639fa01e05 17 x = dataX.read();
sedu_santos 0:53639fa01e05 18 y = dataY.read();
sedu_santos 0:53639fa01e05 19 z = dataZ.read();
sedu_santos 0:53639fa01e05 20
sedu_santos 0:53639fa01e05 21 // Calculamos las aceleraciones en g
sedu_santos 0:53639fa01e05 22 x_g_value = ( ( ( (double)(x * 5)/1024) - 1.65 ) / 0.330 );
sedu_santos 0:53639fa01e05 23 y_g_value = ( ( ( (double)(y * 5)/1024) - 1.65 ) / 0.330 );
sedu_santos 0:53639fa01e05 24 z_g_value = ( ( ( (double)(z * 5)/1024) - 1.80 ) / 0.330 );
sedu_santos 0:53639fa01e05 25
sedu_santos 0:53639fa01e05 26 //A partir de los valores del acelerometro, se calculan los angulos Y, X
sedu_santos 0:53639fa01e05 27 //respectivamente, con la formula de la tangente.
sedu_santos 0:53639fa01e05 28 roll = ( ( (atan2(y_g_value,z_g_value) * 180) / 3.14 ) + 180 );
sedu_santos 0:53639fa01e05 29 pitch = ( ( (atan2(z_g_value,x_g_value) * 180) / 3.14 ) + 180 );
sedu_santos 0:53639fa01e05 30
sedu_santos 0:53639fa01e05 31 pc.printf("Accelerometer X : %f\n\r", x);
sedu_santos 0:53639fa01e05 32 pc.printf("Accelerometer Y : %f\n\r", y);
sedu_santos 0:53639fa01e05 33 pc.printf("Accelerometer Z : %f\n\r", z);
sedu_santos 0:53639fa01e05 34 pc.printf("Roll: %f\n\r",roll);
sedu_santos 0:53639fa01e05 35 pc.printf("pitch: %f\n\r",pitch);
sedu_santos 0:53639fa01e05 36 pc.printf("\n\n");
sedu_santos 0:53639fa01e05 37 pc.printf("\r\n");
sedu_santos 0:53639fa01e05 38 wait(1);
sedu_santos 0:53639fa01e05 39 }
sedu_santos 0:53639fa01e05 40 }
sedu_santos 0:53639fa01e05 41
sedu_santos 0:53639fa01e05 42 int main() {
sedu_santos 0:53639fa01e05 43 bucle();
sedu_santos 0:53639fa01e05 44 }