Yusuke Suzuki
/
balancer
The LEDs flashes faster, depending on the inclination of the sensor. Accelerometer: MMA8451Q
Diff: main.cpp
- Revision:
- 0:3e3ddecc2783
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Mar 09 15:01:24 2014 +0000 @@ -0,0 +1,31 @@ +// +// balance meter +// + +#include "mbed.h" +#include "MMA8451Q.h" +#include <iostream> +#include "math.h" + +#define TIME 0.05 // wait (balanced) +#define MINIMUM_TIME 0.003 // wait (not balanced) + +PwmOut gled(LED1); +PwmOut rled(LED2); +MMA8451Q acc(PTE25, PTE24, 0x1D<<1); + +int main() +{ + gled.period_ms( 1 ); + rled.period_ms( 1 ); + + while (1) + { + for ( int i=0; i<360; i+=10 ) { + gled = cos( i*2.0*3.14/360 ) * 0.5 + 0.5; + rled = 1.0 - (cos( i*2.0*3.14/360 ) * 0.5 + 0.5); + + wait(max(TIME - (abs(acc.getAccX()) + abs(acc.getAccY())) * TIME, MINIMUM_TIME)); + } + } +}