Fredrik Bjørken / Mbed 2 deprecated Avstandsmaler

Dependencies:   mbed SRF05

Fork of Ultralydsensor by Fredrik Bjørken

Committer:
Bjorken
Date:
Thu Apr 28 11:00:19 2016 +0000
Revision:
7:31fe1f753cff
Parent:
6:86df4b837fa2
Child:
8:7fe0e2e8c2d6
tatt bort noen variabler

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 7:31fe1f753cff 17 int verdi[11] = {1, 3, 7, 15, 31, 63, 127, 255, 511, 1023};
Bjorken 3:ed77f5925399 18
Bjorken 3:ed77f5925399 19 float avstand;
Bjorken 3:ed77f5925399 20 float distance; //variable for lagring og utrening av avstand.
Bjorken 3:ed77f5925399 21
bredeh 1:cdf97a56d4d4 22
bredeh 1:cdf97a56d4d4 23 Timer echo; //Timer for avlesing av echosignal.
bredeh 2:c4eb242c1b43 24 //Sender ut ett trigger signal på 10us
bredeh 1:cdf97a56d4d4 25
bredeh 5:c0ceed1cbd3e 26 void triggerfunc()
bredeh 5:c0ceed1cbd3e 27 {
bredeh 5:c0ceed1cbd3e 28 TriggerPin = 1;
bredeh 5:c0ceed1cbd3e 29 wait_us(10);
bredeh 5:c0ceed1cbd3e 30 TriggerPin = 0;
bredeh 5:c0ceed1cbd3e 31 }
bredeh 1:cdf97a56d4d4 32 main()
bredeh 1:cdf97a56d4d4 33 {
bredeh 2:c4eb242c1b43 34 pc.printf("Tast 1 for avstandsmaaling: \n ");
bredeh 2:c4eb242c1b43 35 pc.printf("Tast 2 for bevegelsesmaaling: \n ");
bredeh 2:c4eb242c1b43 36 pc.printf("Tast 3 for hastighetsmaaling: \n ");
bredeh 1:cdf97a56d4d4 37 pc.scanf("%d",&valg);
bredeh 2:c4eb242c1b43 38
bredeh 2:c4eb242c1b43 39 int meny=valg;
bredeh 2:c4eb242c1b43 40
bredeh 2:c4eb242c1b43 41
bredeh 2:c4eb242c1b43 42 switch (meny) {
bredeh 2:c4eb242c1b43 43 case 1:
bredeh 2:c4eb242c1b43 44 while(1) {
Bjorken 3:ed77f5925399 45 printf("Distance = %.1f\n\r", srf.read());
Bjorken 3:ed77f5925399 46 for(int i = 0; i < 11; i++) {
Bjorken 3:ed77f5925399 47 float temp = srf.read();
bredeh 5:c0ceed1cbd3e 48 if (temp < (MAX - INTERVALL*i) && temp > (MAX - INTERVALL*(i+1))) {
Bjorken 3:ed77f5925399 49 bar = verdi[i];
bredeh 5:c0ceed1cbd3e 50 }
bredeh 5:c0ceed1cbd3e 51 }
Bjorken 3:ed77f5925399 52 wait(0.05);
bredeh 2:c4eb242c1b43 53 }
bredeh 2:c4eb242c1b43 54
bredeh 2:c4eb242c1b43 55 case 2:
bredeh 2:c4eb242c1b43 56 float tiden;
bredeh 2:c4eb242c1b43 57 while(1) {
bredeh 2:c4eb242c1b43 58
bredeh 1:cdf97a56d4d4 59
bredeh 2:c4eb242c1b43 60 triggerfunc();
bredeh 2:c4eb242c1b43 61 while(!EchoPin);
bredeh 2:c4eb242c1b43 62 echo.start();
bredeh 2:c4eb242c1b43 63 while(EchoPin);
bredeh 2:c4eb242c1b43 64 echo.stop();
bredeh 2:c4eb242c1b43 65 if(EchoPin==0) {
bredeh 2:c4eb242c1b43 66
bredeh 2:c4eb242c1b43 67 if(tiden==!echo.read_ms()) {
bredeh 2:c4eb242c1b43 68 pc.printf("Bevegelse \n");
bredeh 2:c4eb242c1b43 69 }
bredeh 2:c4eb242c1b43 70 tiden=echo.read_ms();
bredeh 2:c4eb242c1b43 71 echo.reset();
bredeh 2:c4eb242c1b43 72 wait(0.01);
bredeh 2:c4eb242c1b43 73
bredeh 1:cdf97a56d4d4 74 }
bredeh 2:c4eb242c1b43 75 }
bredeh 2:c4eb242c1b43 76
bredeh 2:c4eb242c1b43 77 case 3:
bredeh 2:c4eb242c1b43 78
bredeh 2:c4eb242c1b43 79 float hastighet1;
bredeh 2:c4eb242c1b43 80 float hastighet2;
bredeh 2:c4eb242c1b43 81 float fart;
bredeh 2:c4eb242c1b43 82 Timer tid1;
bredeh 2:c4eb242c1b43 83 Timer tid2;
bredeh 2:c4eb242c1b43 84 while(1) {
bredeh 1:cdf97a56d4d4 85
bredeh 1:cdf97a56d4d4 86
bredeh 1:cdf97a56d4d4 87
bredeh 2:c4eb242c1b43 88 tid1.start();
bredeh 2:c4eb242c1b43 89 hastighet1=srf.read();
bredeh 2:c4eb242c1b43 90
bredeh 2:c4eb242c1b43 91 wait(0.1);
bredeh 2:c4eb242c1b43 92
bredeh 2:c4eb242c1b43 93 hastighet2=srf.read();
bredeh 5:c0ceed1cbd3e 94
bredeh 2:c4eb242c1b43 95 tid1.stop();
bredeh 2:c4eb242c1b43 96 fart =( hastighet1-hastighet2 )/tid1.read();
bredeh 2:c4eb242c1b43 97
bredeh 2:c4eb242c1b43 98 printf("farten til objektet er : %.2f \n",fart);
bredeh 2:c4eb242c1b43 99
bredeh 2:c4eb242c1b43 100
bredeh 2:c4eb242c1b43 101 tid1.reset();
bredeh 2:c4eb242c1b43 102
bredeh 2:c4eb242c1b43 103
bredeh 2:c4eb242c1b43 104
bredeh 2:c4eb242c1b43 105 }
bredeh 2:c4eb242c1b43 106 }
bredeh 2:c4eb242c1b43 107
bredeh 5:c0ceed1cbd3e 108 }