Fredrik Bjørken
/
Avstandsmaler
Ultralyd
Fork of Ultralydsensor by
Fredrik.cpp
- Committer:
- Bjorken
- Date:
- 2016-04-29
- Revision:
- 9:10a78150aa1c
- Parent:
- 2:c4eb242c1b43
File content as of revision 9:10a78150aa1c:
/* #include "mbed.h" DigitalOut TriggerPin(p17); //Sender signal DigitalIn EchoPin(p18); //Mottar signal DigitalIn Br(p15); DigitalOut myled(LED1); int valg; float avstand; void flushSerialBuffer(void); Timer tid; Serial pc(USBTX, USBRX); BusOut bargraph(p21,p22,p23,p24,p25,p26,p27,p28, p29, p30); Timer echo; //Timer for avlesing av echosignal. //Sender ut ett trigger signal på 10us void triggerfunc() { TriggerPin = 1; wait_us(10); TriggerPin = 0; } main() { pc.printf("Tast 1 for avstandsmaaling: \n "); pc.printf("Tast 2 for bevegelsesmaaling: \n "); pc.printf("Tast 3 for hastighetsmaaling: \n "); pc.scanf("%d",&valg); int meny=valg; switch (meny) { case 1: while(1) { triggerfunc(); while(!EchoPin); echo.start(); while(EchoPin); echo.stop(); if(EchoPin==0) { pc.printf(" tiden lyden brukte er %f s. \n",echo.read()/2); avstand=(echo.read()* 340* 100) /2; pc.printf(" Avstanden er %.2f \n",avstand); } pc.printf("trykk en knapp for flere maalinger \n"); flushSerialBuffer(); while(!pc.getc()==' ') {} echo.reset(); } case 2: float tiden; while(1) { triggerfunc(); while(!EchoPin); echo.start(); while(EchoPin); echo.stop(); if(EchoPin==0) { if(tiden==!echo.read_ms()) { pc.printf("Bevegelse \n"); } tiden=echo.read_ms(); echo.reset(); wait(0.05); } } case 3: float fart; float avstand; float avstand2; Timer tida; float strekning; while(1) { tida.start(); triggerfunc(); while(!EchoPin); echo.start(); while(EchoPin); echo.stop(); //Fart = avstand / tid avstand =(echo.read()* 340* 100) /2; float tid1=echo.read(); echo.reset(); float tida1=tida.read(); tida.reset(); tida.start(); triggerfunc(); while(!EchoPin); echo.start(); while(EchoPin); echo.stop(); tida.stop(); avstand2 =(echo.read()* 340* 100) /2; strekning= avstand-avstand2; fart=strekning/tida.read(); printf("farten til objektet er : %.4f \n",fart); echo.reset(); wait(1); } } } void flushSerialBuffer(void) { while (pc.readable()) { (void) pc.getc(); return; } } */