
Codigo derivada de levant y comunicacion serial con matlab
Fork of SC_accelerometer by
main.cpp
- Committer:
- gcorderop
- Date:
- 2015-09-06
- Revision:
- 2:31492faba62d
- Parent:
- 1:2d5e4ef32912
File content as of revision 2:31492faba62d:
#include "mbed.h" #include "MMA8451Q.h" #include "math.h" #define MMA8451_I2C_ADDRESS (0x1d<<1) Serial pc(USBTX, USBRX); char val; uint8_t t; int8_t t_total; uint16_t n; uint16_t i=0; float signal; //senal que representa la funcion float dt,signo; float L=4.0; float lambda, alfa; float z0=0; float z1=0; int main(void) { pc.baud(115200); /******************* Inicializacion *********************/ t =0; //inicializo variable de tiempo en 0 msec t_total=9; dt=0.015; //10 milisegundos n=(uint16_t)(t_total/dt); //numero de muestras lambda=1.1*sqrt(L); //en z0 lambda=1.5L^(1/2) alfa=0.5*L; //en z1 alfa=1.1L /******************* Acelerometro ************************/ MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS); PwmOut rled(LED_RED); PwmOut gled(LED_GREEN); PwmOut bled(LED_BLUE); pc.printf("%c \r\n",'a'); //palabra que indica que comienze la recepcion for(i=0; i<n; i++) { rled = 1.0 - abs(acc.getAccX());//gled = 1.0 - abs(acc.getAccY()); //bled = 1.0 - abs(acc.getAccZ()); signal = acc.getAccX(); //senal del eje x del acelerometro if ((z0-signal)>0){ signo=1.0; } else{ signo=-1.0; } z0= z0+ dt*(z1-(lambda*sqrt(abs(z0-signal)))*signo) ; //z0n=z0+dt*z1-dt*lambda*sqrt(abs(z0-f))*sign(z0-f); z1= z1 - dt*(alfa*signo); //z1n=z1-dt*alfa*sign(z0-f); wait(dt); t = t+dt; //al tiempo le doy incremento de 100 msec /************* El programa enviara datos cada 10 mili segundos **************/ pc.printf("%i \r\n",(int8_t)(signal*100)); //imprime el valor de la funcion pc.printf("%i \r\n",(int8_t)(z0*100)); //imprime el valor de la funcion pc.printf("%i \r\n\n",(int8_t)(z1*100)); //imprime el valor de la funcion // pc.printf("%.2f \r\n ",signal); //imprime el valor de la funcion // pc.printf("%.2f \r\n ",z0); //imprime el valor de la funcion // pc.printf("%.2f \r\n\n",z1); //imprime el valor de la funcion } }