código da seta v1
Dependencies: MMA8451Q_ext mbed
main.cpp
00001 #include "mbed.h" 00002 #include "MMA8451Q.h" 00003 00004 #define MMA8451_I2C_ADDRESS (0x1d<<1) 00005 00006 Serial pc(USBTX, USBRX); 00007 MMA8451Q acelerometro(PTE25, PTE24, MMA8451_I2C_ADDRESS); 00008 00009 DigitalOut Led_Vermelho(LED_RED); 00010 DigitalOut Led_Verde(LED_GREEN); 00011 DigitalOut Led_Azul(LED_BLUE); 00012 00013 float max_sens_acc; // constante de ajuste de sensibilidade do acelerometro 00014 float min_sens_acc; 00015 00016 int main(){ 00017 float d_x; 00018 float d_y; 00019 float d_z; 00020 float old_x = 0; 00021 float old_y = 0; 00022 float old_z = 0; 00023 00024 pc.printf("Definir sensibilidade maxima:"); 00025 pc.scanf("%f", &max_sens_acc); 00026 pc.printf("Definir sensibilidade minima:"); 00027 pc.scanf("%f", &min_sens_acc); 00028 pc.printf("\nmax_sens_acc: %f\n", max_sens_acc); 00029 pc.printf("min_sens_acc: %f\n", min_sens_acc); 00030 wait(1); 00031 00032 while(1){ 00033 d_x = abs(acelerometro.getAccX() - old_x); 00034 d_y = abs(acelerometro.getAccY() - old_y); 00035 d_z = abs(acelerometro.getAccZ() - old_z); 00036 00037 00038 if(d_x >= max_sens_acc) Led_Vermelho = 0; 00039 else if (d_x <= min_sens_acc) Led_Vermelho = 1; 00040 00041 if(d_y >= max_sens_acc) Led_Verde = 0; 00042 else if(d_y <= min_sens_acc)Led_Verde = 1; 00043 00044 if(d_z >= max_sens_acc) Led_Azul = 0; 00045 else if(d_z <= min_sens_acc) Led_Azul = 1; 00046 00047 00048 old_x = acelerometro.getAccX(); 00049 old_y = acelerometro.getAccY(); 00050 old_z = acelerometro.getAccZ(); 00051 00052 pc.printf("%f | %f | %f || %f | %f | %f\n", d_x, d_y, d_z, old_x, old_y, old_z); 00053 //pc.printf("%f | %f || %f | %f\n", d_x, d_y, old_x, old_y); 00054 00055 // wait(0.3); 00056 } 00057 }
Generated on Thu Aug 4 2022 21:14:00 by 1.7.2