Fredrik Bjørken / Mbed 2 deprecated Avstandsmaler

Dependencies:   mbed SRF05

Fork of Ultralydsensor by Fredrik Bjørken

Committer:
Bjorken
Date:
Wed Apr 27 09:39:57 2016 +0000
Revision:
3:ed77f5925399
Parent:
2:c4eb242c1b43
Child:
4:3fdf1cba912c
Satt inn oppgave 1 i case.

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