Ultralyd

Dependencies:   mbed SRF05

Fork of Ultralydsensor by Fredrik Bjørken

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?

UserRevisionLine numberNew 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 */