Fredrik Bjørken
/
Avstandsmaler
Ultralyd
Fork of Ultralydsensor by
Fredrik.cpp@9:10a78150aa1c, 2016-04-29 (annotated)
- Committer:
- Bjorken
- Date:
- Fri Apr 29 10:13:49 2016 +0000
- Revision:
- 9:10a78150aa1c
- Parent:
- 2:c4eb242c1b43
Skrevet kommentarer til case 2 og 3.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bredeh | 2:c4eb242c1b43 | 1 | /* |
Bjorken | 0:27c5b713c538 | 2 | #include "mbed.h" |
Bjorken | 0:27c5b713c538 | 3 | |
bredeh | 2:c4eb242c1b43 | 4 | DigitalOut TriggerPin(p17); //Sender signal |
bredeh | 2:c4eb242c1b43 | 5 | DigitalIn EchoPin(p18); //Mottar signal |
bredeh | 2:c4eb242c1b43 | 6 | DigitalIn Br(p15); |
bredeh | 2:c4eb242c1b43 | 7 | DigitalOut myled(LED1); |
bredeh | 2:c4eb242c1b43 | 8 | int valg; |
bredeh | 2:c4eb242c1b43 | 9 | float avstand; |
bredeh | 2:c4eb242c1b43 | 10 | void flushSerialBuffer(void); |
bredeh | 2:c4eb242c1b43 | 11 | Timer tid; |
bredeh | 2:c4eb242c1b43 | 12 | |
bredeh | 2:c4eb242c1b43 | 13 | Serial pc(USBTX, USBRX); |
bredeh | 2:c4eb242c1b43 | 14 | BusOut bargraph(p21,p22,p23,p24,p25,p26,p27,p28, p29, p30); |
bredeh | 2:c4eb242c1b43 | 15 | |
bredeh | 2:c4eb242c1b43 | 16 | Timer echo; //Timer for avlesing av echosignal. |
bredeh | 2:c4eb242c1b43 | 17 | //Sender ut ett trigger signal på 10us |
bredeh | 2:c4eb242c1b43 | 18 | void triggerfunc() |
bredeh | 2:c4eb242c1b43 | 19 | { |
bredeh | 2:c4eb242c1b43 | 20 | TriggerPin = 1; |
bredeh | 2:c4eb242c1b43 | 21 | wait_us(10); |
bredeh | 2:c4eb242c1b43 | 22 | TriggerPin = 0; |
bredeh | 2:c4eb242c1b43 | 23 | } |
bredeh | 2:c4eb242c1b43 | 24 | |
bredeh | 2:c4eb242c1b43 | 25 | |
bredeh | 2:c4eb242c1b43 | 26 | main() |
bredeh | 2:c4eb242c1b43 | 27 | { |
bredeh | 2:c4eb242c1b43 | 28 | pc.printf("Tast 1 for avstandsmaaling: \n "); |
bredeh | 2:c4eb242c1b43 | 29 | pc.printf("Tast 2 for bevegelsesmaaling: \n "); |
bredeh | 2:c4eb242c1b43 | 30 | pc.printf("Tast 3 for hastighetsmaaling: \n "); |
bredeh | 2:c4eb242c1b43 | 31 | pc.scanf("%d",&valg); |
bredeh | 2:c4eb242c1b43 | 32 | |
bredeh | 2:c4eb242c1b43 | 33 | int meny=valg; |
bredeh | 2:c4eb242c1b43 | 34 | |
bredeh | 2:c4eb242c1b43 | 35 | |
bredeh | 2:c4eb242c1b43 | 36 | |
bredeh | 2:c4eb242c1b43 | 37 | switch (meny) { |
bredeh | 2:c4eb242c1b43 | 38 | case 1: |
bredeh | 2:c4eb242c1b43 | 39 | while(1) { |
bredeh | 2:c4eb242c1b43 | 40 | triggerfunc(); |
bredeh | 2:c4eb242c1b43 | 41 | while(!EchoPin); |
bredeh | 2:c4eb242c1b43 | 42 | echo.start(); |
bredeh | 2:c4eb242c1b43 | 43 | while(EchoPin); |
bredeh | 2:c4eb242c1b43 | 44 | echo.stop(); |
bredeh | 2:c4eb242c1b43 | 45 | if(EchoPin==0) { |
bredeh | 2:c4eb242c1b43 | 46 | |
bredeh | 2:c4eb242c1b43 | 47 | pc.printf(" tiden lyden brukte er %f s. \n",echo.read()/2); |
bredeh | 2:c4eb242c1b43 | 48 | avstand=(echo.read()* 340* 100) /2; |
bredeh | 2:c4eb242c1b43 | 49 | pc.printf(" Avstanden er %.2f \n",avstand); |
bredeh | 2:c4eb242c1b43 | 50 | } |
bredeh | 2:c4eb242c1b43 | 51 | pc.printf("trykk en knapp for flere maalinger \n"); |
bredeh | 2:c4eb242c1b43 | 52 | flushSerialBuffer(); |
bredeh | 2:c4eb242c1b43 | 53 | while(!pc.getc()==' ') |
bredeh | 2:c4eb242c1b43 | 54 | {} |
bredeh | 2:c4eb242c1b43 | 55 | echo.reset(); |
bredeh | 2:c4eb242c1b43 | 56 | } |
bredeh | 2:c4eb242c1b43 | 57 | |
bredeh | 2:c4eb242c1b43 | 58 | |
bredeh | 2:c4eb242c1b43 | 59 | case 2: |
bredeh | 2:c4eb242c1b43 | 60 | |
bredeh | 2:c4eb242c1b43 | 61 | float tiden; |
bredeh | 2:c4eb242c1b43 | 62 | while(1) { |
bredeh | 2:c4eb242c1b43 | 63 | |
bredeh | 2:c4eb242c1b43 | 64 | |
bredeh | 2:c4eb242c1b43 | 65 | triggerfunc(); |
bredeh | 2:c4eb242c1b43 | 66 | while(!EchoPin); |
bredeh | 2:c4eb242c1b43 | 67 | echo.start(); |
bredeh | 2:c4eb242c1b43 | 68 | while(EchoPin); |
bredeh | 2:c4eb242c1b43 | 69 | echo.stop(); |
bredeh | 2:c4eb242c1b43 | 70 | if(EchoPin==0) { |
bredeh | 2:c4eb242c1b43 | 71 | |
bredeh | 2:c4eb242c1b43 | 72 | if(tiden==!echo.read_ms()) { |
bredeh | 2:c4eb242c1b43 | 73 | pc.printf("Bevegelse \n"); |
bredeh | 2:c4eb242c1b43 | 74 | } |
bredeh | 2:c4eb242c1b43 | 75 | tiden=echo.read_ms(); |
bredeh | 2:c4eb242c1b43 | 76 | echo.reset(); |
bredeh | 2:c4eb242c1b43 | 77 | wait(0.05); |
bredeh | 2:c4eb242c1b43 | 78 | |
bredeh | 2:c4eb242c1b43 | 79 | } |
bredeh | 2:c4eb242c1b43 | 80 | } |
bredeh | 2:c4eb242c1b43 | 81 | |
bredeh | 2:c4eb242c1b43 | 82 | case 3: |
bredeh | 2:c4eb242c1b43 | 83 | |
bredeh | 2:c4eb242c1b43 | 84 | |
bredeh | 2:c4eb242c1b43 | 85 | float fart; |
bredeh | 2:c4eb242c1b43 | 86 | float avstand; |
bredeh | 2:c4eb242c1b43 | 87 | float avstand2; |
bredeh | 2:c4eb242c1b43 | 88 | Timer tida; |
bredeh | 2:c4eb242c1b43 | 89 | float strekning; |
bredeh | 2:c4eb242c1b43 | 90 | while(1) { |
bredeh | 2:c4eb242c1b43 | 91 | |
bredeh | 2:c4eb242c1b43 | 92 | tida.start(); |
bredeh | 2:c4eb242c1b43 | 93 | triggerfunc(); |
bredeh | 2:c4eb242c1b43 | 94 | while(!EchoPin); |
bredeh | 2:c4eb242c1b43 | 95 | echo.start(); |
bredeh | 2:c4eb242c1b43 | 96 | while(EchoPin); |
bredeh | 2:c4eb242c1b43 | 97 | echo.stop(); |
bredeh | 2:c4eb242c1b43 | 98 | |
bredeh | 2:c4eb242c1b43 | 99 | //Fart = avstand / tid |
bredeh | 2:c4eb242c1b43 | 100 | |
bredeh | 2:c4eb242c1b43 | 101 | avstand =(echo.read()* 340* 100) /2; |
bredeh | 2:c4eb242c1b43 | 102 | float tid1=echo.read(); |
bredeh | 2:c4eb242c1b43 | 103 | echo.reset(); |
bredeh | 2:c4eb242c1b43 | 104 | |
bredeh | 2:c4eb242c1b43 | 105 | float tida1=tida.read(); |
bredeh | 2:c4eb242c1b43 | 106 | tida.reset(); |
bredeh | 2:c4eb242c1b43 | 107 | tida.start(); |
bredeh | 2:c4eb242c1b43 | 108 | triggerfunc(); |
bredeh | 2:c4eb242c1b43 | 109 | while(!EchoPin); |
bredeh | 2:c4eb242c1b43 | 110 | echo.start(); |
bredeh | 2:c4eb242c1b43 | 111 | while(EchoPin); |
bredeh | 2:c4eb242c1b43 | 112 | echo.stop(); |
bredeh | 2:c4eb242c1b43 | 113 | tida.stop(); |
bredeh | 2:c4eb242c1b43 | 114 | |
bredeh | 2:c4eb242c1b43 | 115 | |
bredeh | 2:c4eb242c1b43 | 116 | avstand2 =(echo.read()* 340* 100) /2; |
bredeh | 2:c4eb242c1b43 | 117 | |
bredeh | 2:c4eb242c1b43 | 118 | strekning= avstand-avstand2; |
bredeh | 2:c4eb242c1b43 | 119 | fart=strekning/tida.read(); |
bredeh | 2:c4eb242c1b43 | 120 | printf("farten til objektet er : %.4f \n",fart); |
bredeh | 2:c4eb242c1b43 | 121 | echo.reset(); |
bredeh | 2:c4eb242c1b43 | 122 | wait(1); |
bredeh | 2:c4eb242c1b43 | 123 | } |
bredeh | 2:c4eb242c1b43 | 124 | } |
bredeh | 2:c4eb242c1b43 | 125 | } |
bredeh | 2:c4eb242c1b43 | 126 | |
bredeh | 2:c4eb242c1b43 | 127 | void flushSerialBuffer(void) |
bredeh | 2:c4eb242c1b43 | 128 | { |
bredeh | 2:c4eb242c1b43 | 129 | while (pc.readable()) { |
bredeh | 2:c4eb242c1b43 | 130 | (void) pc.getc(); |
bredeh | 2:c4eb242c1b43 | 131 | return; |
bredeh | 2:c4eb242c1b43 | 132 | } |
bredeh | 2:c4eb242c1b43 | 133 | } |
bredeh | 2:c4eb242c1b43 | 134 | */ |