Fredrik Bjørken / Mbed 2 deprecated Avstandsmaler

Dependencies:   mbed SRF05

Fork of Ultralydsensor by Fredrik Bjørken

Committer:
bredeh
Date:
Wed Apr 27 10:49:38 2016 +0000
Revision:
5:c0ceed1cbd3e
Parent:
4:3fdf1cba912c
Child:
6:86df4b837fa2
l;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Bjorken 0:27c5b713c538 1 #include "mbed.h"
bredeh 2:c4eb242c1b43 2 #include "SRF05.h"
Bjorken 0:27c5b713c538 3
Bjorken 4:3fdf1cba912c 4 #define MAX 30
Bjorken 4:3fdf1cba912c 5 #define INTERVALL (MAX/10)
Bjorken 4:3fdf1cba912c 6
bredeh 2:c4eb242c1b43 7 SRF05 srf(p17, p18);
bredeh 1:cdf97a56d4d4 8 DigitalOut TriggerPin(p17); //Sender signal
Bjorken 3:ed77f5925399 9 DigitalOut myled(LED1);
bredeh 2:c4eb242c1b43 10 DigitalIn EchoPin(p18); //Mottar signal
bredeh 1:cdf97a56d4d4 11 DigitalIn Br(p15);
bredeh 5:c0ceed1cbd3e 12 BusOut bar(p21,p22,p23,p24,p25,p26,p27,p28, p29, p30);
bredeh 2:c4eb242c1b43 13
bredeh 1:cdf97a56d4d4 14 Serial pc(USBTX, USBRX);
Bjorken 3:ed77f5925399 15
Bjorken 3:ed77f5925399 16 int valg;
Bjorken 3:ed77f5925399 17 int start;
Bjorken 3:ed77f5925399 18 int tall;
Bjorken 3:ed77f5925399 19 int t;
Bjorken 3:ed77f5925399 20 int verdi[11] = {1023, 511, 255, 127, 63, 31, 15, 7, 3, 1, 0};
Bjorken 3:ed77f5925399 21
Bjorken 3:ed77f5925399 22 float avstand;
Bjorken 3:ed77f5925399 23 float distance; //variable for lagring og utrening av avstand.
Bjorken 3:ed77f5925399 24
bredeh 1:cdf97a56d4d4 25
bredeh 1:cdf97a56d4d4 26 Timer echo; //Timer for avlesing av echosignal.
bredeh 2:c4eb242c1b43 27 //Sender ut ett trigger signal på 10us
bredeh 1:cdf97a56d4d4 28
bredeh 5:c0ceed1cbd3e 29 void triggerfunc()
bredeh 5:c0ceed1cbd3e 30 {
bredeh 5:c0ceed1cbd3e 31 TriggerPin = 1;
bredeh 5:c0ceed1cbd3e 32 wait_us(10);
bredeh 5:c0ceed1cbd3e 33 TriggerPin = 0;
bredeh 5:c0ceed1cbd3e 34 }
bredeh 1:cdf97a56d4d4 35 main()
bredeh 1:cdf97a56d4d4 36 {
bredeh 2:c4eb242c1b43 37 pc.printf("Tast 1 for avstandsmaaling: \n ");
bredeh 2:c4eb242c1b43 38 pc.printf("Tast 2 for bevegelsesmaaling: \n ");
bredeh 2:c4eb242c1b43 39 pc.printf("Tast 3 for hastighetsmaaling: \n ");
bredeh 1:cdf97a56d4d4 40 pc.scanf("%d",&valg);
bredeh 2:c4eb242c1b43 41
bredeh 2:c4eb242c1b43 42 int meny=valg;
bredeh 2:c4eb242c1b43 43
bredeh 2:c4eb242c1b43 44
bredeh 2:c4eb242c1b43 45 switch (meny) {
bredeh 2:c4eb242c1b43 46 case 1:
bredeh 2:c4eb242c1b43 47 while(1) {
Bjorken 3:ed77f5925399 48 printf("Distance = %.1f\n\r", srf.read());
Bjorken 3:ed77f5925399 49 for(int i = 0; i < 11; i++) {
Bjorken 3:ed77f5925399 50 float temp = srf.read();
bredeh 5:c0ceed1cbd3e 51 if (temp < (MAX - INTERVALL*i) && temp > (MAX - INTERVALL*(i+1))) {
Bjorken 3:ed77f5925399 52 bar = verdi[i];
bredeh 5:c0ceed1cbd3e 53 }
bredeh 5:c0ceed1cbd3e 54 }
Bjorken 3:ed77f5925399 55 wait(0.05);
bredeh 2:c4eb242c1b43 56 }
bredeh 2:c4eb242c1b43 57
bredeh 2:c4eb242c1b43 58 case 2:
bredeh 2:c4eb242c1b43 59 float tiden;
bredeh 2:c4eb242c1b43 60 while(1) {
bredeh 2:c4eb242c1b43 61
bredeh 1:cdf97a56d4d4 62
bredeh 2:c4eb242c1b43 63 triggerfunc();
bredeh 2:c4eb242c1b43 64 while(!EchoPin);
bredeh 2:c4eb242c1b43 65 echo.start();
bredeh 2:c4eb242c1b43 66 while(EchoPin);
bredeh 2:c4eb242c1b43 67 echo.stop();
bredeh 2:c4eb242c1b43 68 if(EchoPin==0) {
bredeh 2:c4eb242c1b43 69
bredeh 2:c4eb242c1b43 70 if(tiden==!echo.read_ms()) {
bredeh 2:c4eb242c1b43 71 pc.printf("Bevegelse \n");
bredeh 2:c4eb242c1b43 72 }
bredeh 2:c4eb242c1b43 73 tiden=echo.read_ms();
bredeh 2:c4eb242c1b43 74 echo.reset();
bredeh 2:c4eb242c1b43 75 wait(0.01);
bredeh 2:c4eb242c1b43 76
bredeh 1:cdf97a56d4d4 77 }
bredeh 2:c4eb242c1b43 78 }
bredeh 2:c4eb242c1b43 79
bredeh 2:c4eb242c1b43 80 case 3:
bredeh 2:c4eb242c1b43 81
bredeh 2:c4eb242c1b43 82 float hastighet1;
bredeh 2:c4eb242c1b43 83 float hastighet2;
bredeh 2:c4eb242c1b43 84 float fart;
bredeh 2:c4eb242c1b43 85 Timer tid1;
bredeh 2:c4eb242c1b43 86 Timer tid2;
bredeh 2:c4eb242c1b43 87 while(1) {
bredeh 1:cdf97a56d4d4 88
bredeh 1:cdf97a56d4d4 89
bredeh 1:cdf97a56d4d4 90
bredeh 2:c4eb242c1b43 91 tid1.start();
bredeh 2:c4eb242c1b43 92 hastighet1=srf.read();
bredeh 2:c4eb242c1b43 93
bredeh 2:c4eb242c1b43 94 wait(0.1);
bredeh 2:c4eb242c1b43 95
bredeh 2:c4eb242c1b43 96 hastighet2=srf.read();
bredeh 5:c0ceed1cbd3e 97
bredeh 2:c4eb242c1b43 98 tid1.stop();
bredeh 2:c4eb242c1b43 99 fart =( hastighet1-hastighet2 )/tid1.read();
bredeh 2:c4eb242c1b43 100
bredeh 2:c4eb242c1b43 101 printf("farten til objektet er : %.2f \n",fart);
bredeh 2:c4eb242c1b43 102
bredeh 2:c4eb242c1b43 103
bredeh 2:c4eb242c1b43 104 tid1.reset();
bredeh 2:c4eb242c1b43 105
bredeh 2:c4eb242c1b43 106
bredeh 2:c4eb242c1b43 107
bredeh 2:c4eb242c1b43 108 }
bredeh 2:c4eb242c1b43 109 }
bredeh 2:c4eb242c1b43 110
bredeh 5:c0ceed1cbd3e 111 }