Fredrik Bjørken / Mbed 2 deprecated Avstandsmaler

Dependencies:   mbed SRF05

Fork of Ultralydsensor by Fredrik Bjørken

Committer:
bredeh
Date:
Fri Apr 22 10:41:25 2016 +0000
Revision:
2:c4eb242c1b43
Parent:
1:cdf97a56d4d4
Child:
3:ed77f5925399
oppdatering;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bredeh 2:c4eb242c1b43 1
Bjorken 0:27c5b713c538 2 #include "mbed.h"
bredeh 2:c4eb242c1b43 3 #include "SRF05.h"
Bjorken 0:27c5b713c538 4
bredeh 2:c4eb242c1b43 5 SRF05 srf(p17, p18);
bredeh 1:cdf97a56d4d4 6 DigitalOut TriggerPin(p17); //Sender signal
bredeh 2:c4eb242c1b43 7 DigitalIn EchoPin(p18); //Mottar signal
bredeh 1:cdf97a56d4d4 8 DigitalIn Br(p15);
bredeh 1:cdf97a56d4d4 9 DigitalOut myled(LED1);
bredeh 1:cdf97a56d4d4 10 int valg;
bredeh 2:c4eb242c1b43 11 float avstand;
bredeh 2:c4eb242c1b43 12 void flushSerialBuffer(void);
bredeh 2:c4eb242c1b43 13
bredeh 1:cdf97a56d4d4 14 Serial pc(USBTX, USBRX);
bredeh 2:c4eb242c1b43 15 BusOut bargraph(p21,p22,p23,p24,p25,p26,p27,p28, p29, p30);
bredeh 1:cdf97a56d4d4 16
bredeh 1:cdf97a56d4d4 17 Timer echo; //Timer for avlesing av echosignal.
bredeh 2:c4eb242c1b43 18 //Sender ut ett trigger signal på 10us
bredeh 1:cdf97a56d4d4 19
bredeh 2:c4eb242c1b43 20 void triggerfunc()
bredeh 2:c4eb242c1b43 21 {
bredeh 2:c4eb242c1b43 22 TriggerPin = 1;
bredeh 2:c4eb242c1b43 23 wait_us(10);
bredeh 2:c4eb242c1b43 24 TriggerPin = 0;
bredeh 2:c4eb242c1b43 25 }
bredeh 1:cdf97a56d4d4 26 main()
bredeh 1:cdf97a56d4d4 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 1:cdf97a56d4d4 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 switch (meny) {
bredeh 2:c4eb242c1b43 37 case 1:
bredeh 2:c4eb242c1b43 38 while(1) {
bredeh 2:c4eb242c1b43 39 printf("Distance = %.1f\n", srf.read());
bredeh 2:c4eb242c1b43 40 bargraph=10*srf.read();
bredeh 2:c4eb242c1b43 41 wait(0.5);
bredeh 2:c4eb242c1b43 42 }
bredeh 2:c4eb242c1b43 43
bredeh 2:c4eb242c1b43 44 case 2:
bredeh 2:c4eb242c1b43 45 float tiden;
bredeh 2:c4eb242c1b43 46 while(1) {
bredeh 2:c4eb242c1b43 47
bredeh 1:cdf97a56d4d4 48
bredeh 2:c4eb242c1b43 49 triggerfunc();
bredeh 2:c4eb242c1b43 50 while(!EchoPin);
bredeh 2:c4eb242c1b43 51 echo.start();
bredeh 2:c4eb242c1b43 52 while(EchoPin);
bredeh 2:c4eb242c1b43 53 echo.stop();
bredeh 2:c4eb242c1b43 54 if(EchoPin==0) {
bredeh 2:c4eb242c1b43 55
bredeh 2:c4eb242c1b43 56 if(tiden==!echo.read_ms()) {
bredeh 2:c4eb242c1b43 57 pc.printf("Bevegelse \n");
bredeh 2:c4eb242c1b43 58 }
bredeh 2:c4eb242c1b43 59 tiden=echo.read_ms();
bredeh 2:c4eb242c1b43 60 echo.reset();
bredeh 2:c4eb242c1b43 61 wait(0.01);
bredeh 2:c4eb242c1b43 62
bredeh 1:cdf97a56d4d4 63 }
bredeh 2:c4eb242c1b43 64 }
bredeh 2:c4eb242c1b43 65
bredeh 2:c4eb242c1b43 66 case 3:
bredeh 2:c4eb242c1b43 67
bredeh 2:c4eb242c1b43 68 float hastighet1;
bredeh 2:c4eb242c1b43 69 float hastighet2;
bredeh 2:c4eb242c1b43 70 float fart;
bredeh 2:c4eb242c1b43 71 Timer tid1;
bredeh 2:c4eb242c1b43 72 Timer tid2;
bredeh 2:c4eb242c1b43 73 while(1) {
bredeh 1:cdf97a56d4d4 74
bredeh 1:cdf97a56d4d4 75
bredeh 1:cdf97a56d4d4 76
bredeh 2:c4eb242c1b43 77 tid1.start();
bredeh 2:c4eb242c1b43 78 hastighet1=srf.read();
bredeh 2:c4eb242c1b43 79
bredeh 2:c4eb242c1b43 80 wait(0.1);
bredeh 2:c4eb242c1b43 81
bredeh 2:c4eb242c1b43 82 hastighet2=srf.read();
bredeh 2:c4eb242c1b43 83
bredeh 2:c4eb242c1b43 84 tid1.stop();
bredeh 2:c4eb242c1b43 85 fart =( hastighet1-hastighet2 )/tid1.read();
bredeh 2:c4eb242c1b43 86
bredeh 2:c4eb242c1b43 87 printf("farten til objektet er : %.2f \n",fart);
bredeh 2:c4eb242c1b43 88
bredeh 2:c4eb242c1b43 89
bredeh 2:c4eb242c1b43 90 tid1.reset();
bredeh 2:c4eb242c1b43 91
bredeh 2:c4eb242c1b43 92
bredeh 2:c4eb242c1b43 93
bredeh 2:c4eb242c1b43 94 }
bredeh 2:c4eb242c1b43 95 }
bredeh 2:c4eb242c1b43 96
bredeh 2:c4eb242c1b43 97 /*void flushSerialBuffer(void)
bredeh 2:c4eb242c1b43 98 {
bredeh 2:c4eb242c1b43 99 while (pc.readable()) {
bredeh 2:c4eb242c1b43 100 (void) pc.getc();
bredeh 2:c4eb242c1b43 101 }
bredeh 2:c4eb242c1b43 102 return;
bredeh 2:c4eb242c1b43 103 */
bredeh 2:c4eb242c1b43 104 }