jumper
Dependencies: MMA7660 Speaker TextLCD mbed
main.cpp
- Committer:
- RiiQQe
- Date:
- 2016-01-15
- Revision:
- 0:8145e3945243
File content as of revision 0:8145e3945243:
/* Räknar ut tiden det tar från botten till toppen i ett hopp. Från det kan man räkna ut hur högt man hoppar, med hjälp av h = (g * pow(t,2)) / 2; */ #include "mbed.h" #include "MMA7660.h" #include "Speaker.h" //To get the x,y,z movements MMA7660 MMA(p28, p27); //To write to the terminal Serial pc(USBTX, USBRX); // tx, rx // app board joystick // down: p12, left: p13, center: p14, up: p15, right: p16 BusIn joystick(p12, p13, p15, p16); DigitalIn button(p14); BusOut leds(LED1, LED2, LED3, LED4); DigitalOut red_(p23); DigitalOut green_(p24); Speaker speaker(p26); float MAX = 1.0; float g = 9.82; float flightTime = 0, height = 0; Timer t; bool up = false; bool top = false; int main() { green_ = 1; pc.printf("Running mBed\n"); if(!MMA.testConnection()) red_ = 0; while (true) { if(MMA.y() > MAX && !up){ up = true; //MAX = MMA.y(); //Never go above 5000Hz, can damage the mbed. //pc.printf("%f", MMA.y()); } if(MMA.y() == 0.0 && !top) { t.start(); speaker.PlayNote(969.0, 0.5, 1.0); speaker.PlayNote(800.0, 0.5, 1.0); top = true; } if(MMA.y() == 0.0 && top) { t.stop(); printf("The time taken was %f seconds\n", t.read()); top = false; up = false; flightTime = t.read(); height = g * flightTime * flightTime * 0.5; printf("The jump height was %f meters\n", height); t.reset(); } if (button){ leds = 0xf; // turns all LEDs on green_ = 0; } else{ green_ = 1; red_ = 1; leds = joystick; } wait(0.01); } }