código da seta v1

Dependencies:   MMA8451Q_ext mbed

Committer:
marcosvtt
Date:
Tue Jun 27 04:55:53 2017 +0000
Revision:
0:c02ad4dd2e3f
c?digo da seta;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcosvtt 0:c02ad4dd2e3f 1 #include "mbed.h"
marcosvtt 0:c02ad4dd2e3f 2 #include "MMA8451Q.h"
marcosvtt 0:c02ad4dd2e3f 3
marcosvtt 0:c02ad4dd2e3f 4 #define MMA8451_I2C_ADDRESS (0x1d<<1)
marcosvtt 0:c02ad4dd2e3f 5
marcosvtt 0:c02ad4dd2e3f 6 Serial pc(USBTX, USBRX);
marcosvtt 0:c02ad4dd2e3f 7 MMA8451Q acelerometro(PTE25, PTE24, MMA8451_I2C_ADDRESS);
marcosvtt 0:c02ad4dd2e3f 8
marcosvtt 0:c02ad4dd2e3f 9 DigitalOut Led_Vermelho(LED_RED);
marcosvtt 0:c02ad4dd2e3f 10 DigitalOut Led_Verde(LED_GREEN);
marcosvtt 0:c02ad4dd2e3f 11 DigitalOut Led_Azul(LED_BLUE);
marcosvtt 0:c02ad4dd2e3f 12
marcosvtt 0:c02ad4dd2e3f 13 float max_sens_acc; // constante de ajuste de sensibilidade do acelerometro
marcosvtt 0:c02ad4dd2e3f 14 float min_sens_acc;
marcosvtt 0:c02ad4dd2e3f 15
marcosvtt 0:c02ad4dd2e3f 16 int main(){
marcosvtt 0:c02ad4dd2e3f 17 float d_x;
marcosvtt 0:c02ad4dd2e3f 18 float d_y;
marcosvtt 0:c02ad4dd2e3f 19 float d_z;
marcosvtt 0:c02ad4dd2e3f 20 float old_x = 0;
marcosvtt 0:c02ad4dd2e3f 21 float old_y = 0;
marcosvtt 0:c02ad4dd2e3f 22 float old_z = 0;
marcosvtt 0:c02ad4dd2e3f 23
marcosvtt 0:c02ad4dd2e3f 24 pc.printf("Definir sensibilidade maxima:");
marcosvtt 0:c02ad4dd2e3f 25 pc.scanf("%f", &max_sens_acc);
marcosvtt 0:c02ad4dd2e3f 26 pc.printf("Definir sensibilidade minima:");
marcosvtt 0:c02ad4dd2e3f 27 pc.scanf("%f", &min_sens_acc);
marcosvtt 0:c02ad4dd2e3f 28 pc.printf("\nmax_sens_acc: %f\n", max_sens_acc);
marcosvtt 0:c02ad4dd2e3f 29 pc.printf("min_sens_acc: %f\n", min_sens_acc);
marcosvtt 0:c02ad4dd2e3f 30 wait(1);
marcosvtt 0:c02ad4dd2e3f 31
marcosvtt 0:c02ad4dd2e3f 32 while(1){
marcosvtt 0:c02ad4dd2e3f 33 d_x = abs(acelerometro.getAccX() - old_x);
marcosvtt 0:c02ad4dd2e3f 34 d_y = abs(acelerometro.getAccY() - old_y);
marcosvtt 0:c02ad4dd2e3f 35 d_z = abs(acelerometro.getAccZ() - old_z);
marcosvtt 0:c02ad4dd2e3f 36
marcosvtt 0:c02ad4dd2e3f 37
marcosvtt 0:c02ad4dd2e3f 38 if(d_x >= max_sens_acc) Led_Vermelho = 0;
marcosvtt 0:c02ad4dd2e3f 39 else if (d_x <= min_sens_acc) Led_Vermelho = 1;
marcosvtt 0:c02ad4dd2e3f 40
marcosvtt 0:c02ad4dd2e3f 41 if(d_y >= max_sens_acc) Led_Verde = 0;
marcosvtt 0:c02ad4dd2e3f 42 else if(d_y <= min_sens_acc)Led_Verde = 1;
marcosvtt 0:c02ad4dd2e3f 43
marcosvtt 0:c02ad4dd2e3f 44 if(d_z >= max_sens_acc) Led_Azul = 0;
marcosvtt 0:c02ad4dd2e3f 45 else if(d_z <= min_sens_acc) Led_Azul = 1;
marcosvtt 0:c02ad4dd2e3f 46
marcosvtt 0:c02ad4dd2e3f 47
marcosvtt 0:c02ad4dd2e3f 48 old_x = acelerometro.getAccX();
marcosvtt 0:c02ad4dd2e3f 49 old_y = acelerometro.getAccY();
marcosvtt 0:c02ad4dd2e3f 50 old_z = acelerometro.getAccZ();
marcosvtt 0:c02ad4dd2e3f 51
marcosvtt 0:c02ad4dd2e3f 52 pc.printf("%f | %f | %f || %f | %f | %f\n", d_x, d_y, d_z, old_x, old_y, old_z);
marcosvtt 0:c02ad4dd2e3f 53 //pc.printf("%f | %f || %f | %f\n", d_x, d_y, old_x, old_y);
marcosvtt 0:c02ad4dd2e3f 54
marcosvtt 0:c02ad4dd2e3f 55 // wait(0.3);
marcosvtt 0:c02ad4dd2e3f 56 }
marcosvtt 0:c02ad4dd2e3f 57 }