código da seta v1

Dependencies:   MMA8451Q_ext mbed

main.cpp

Committer:
marcosvtt
Date:
2017-06-27
Revision:
0:c02ad4dd2e3f

File content as of revision 0:c02ad4dd2e3f:

#include "mbed.h"
#include "MMA8451Q.h"

#define MMA8451_I2C_ADDRESS (0x1d<<1)

Serial pc(USBTX, USBRX);
MMA8451Q acelerometro(PTE25, PTE24, MMA8451_I2C_ADDRESS);

DigitalOut Led_Vermelho(LED_RED);
DigitalOut Led_Verde(LED_GREEN);
DigitalOut Led_Azul(LED_BLUE);

float max_sens_acc; // constante de ajuste de sensibilidade do acelerometro
float min_sens_acc;

int main(){
    float d_x;
    float d_y;
    float d_z;
    float old_x = 0;
    float old_y = 0;
    float old_z = 0;
    
    pc.printf("Definir sensibilidade maxima:");
    pc.scanf("%f", &max_sens_acc);
    pc.printf("Definir sensibilidade minima:");
    pc.scanf("%f", &min_sens_acc);
    pc.printf("\nmax_sens_acc: %f\n", max_sens_acc);
    pc.printf("min_sens_acc: %f\n", min_sens_acc);
    wait(1);
    
    while(1){
        d_x = abs(acelerometro.getAccX() - old_x);
        d_y = abs(acelerometro.getAccY() - old_y);
        d_z = abs(acelerometro.getAccZ() - old_z);
        
        
        if(d_x >= max_sens_acc) Led_Vermelho = 0;
        else if (d_x <= min_sens_acc) Led_Vermelho = 1;
        
        if(d_y >= max_sens_acc) Led_Verde = 0;
        else if(d_y <= min_sens_acc)Led_Verde = 1;
        
        if(d_z >= max_sens_acc) Led_Azul = 0;
        else if(d_z <= min_sens_acc) Led_Azul = 1;
        
        
        old_x = acelerometro.getAccX();
        old_y = acelerometro.getAccY();
        old_z = acelerometro.getAccZ();
        
        pc.printf("%f | %f | %f  || %f | %f | %f\n", d_x, d_y, d_z, old_x, old_y, old_z);
        //pc.printf("%f | %f || %f | %f\n", d_x, d_y, old_x, old_y);
        
       // wait(0.3);
    }
}