Ultralyd

Dependencies:   mbed SRF05

Fork of Ultralydsensor by Fredrik Bjørken

Fredrik.cpp

Committer:
Bjorken
Date:
2016-04-29
Revision:
9:10a78150aa1c
Parent:
2:c4eb242c1b43

File content as of revision 9:10a78150aa1c:

/*
#include "mbed.h"

DigitalOut TriggerPin(p17);  //Sender signal
DigitalIn EchoPin(p18);     //Mottar signal
DigitalIn  Br(p15);
DigitalOut myled(LED1);
int valg;
float avstand;
void flushSerialBuffer(void);
Timer tid;

Serial pc(USBTX, USBRX);
BusOut bargraph(p21,p22,p23,p24,p25,p26,p27,p28, p29, p30);

Timer echo;   //Timer for avlesing av echosignal.
//Sender ut ett trigger signal på 10us 
void triggerfunc()
{
    TriggerPin = 1;
    wait_us(10);
    TriggerPin = 0;
}


main()
{
    pc.printf("Tast 1 for avstandsmaaling: \n ");
    pc.printf("Tast 2 for bevegelsesmaaling: \n ");
    pc.printf("Tast 3 for hastighetsmaaling: \n ");
    pc.scanf("%d",&valg);

    int meny=valg;



    switch (meny) {
        case 1:
            while(1) {
                triggerfunc();
                while(!EchoPin);
                echo.start();
                while(EchoPin);
                echo.stop();
                if(EchoPin==0) {

                    pc.printf(" tiden lyden brukte er %f s. \n",echo.read()/2);
                    avstand=(echo.read()* 340* 100) /2;
                    pc.printf(" Avstanden er %.2f \n",avstand);
                }
                pc.printf("trykk en knapp for flere maalinger \n");
                flushSerialBuffer();
                while(!pc.getc()==' ')
                    {}
                echo.reset();
            }


        case 2:

            float tiden;
            while(1) {


                triggerfunc();
                while(!EchoPin);
                echo.start();
                while(EchoPin);
                echo.stop();
                if(EchoPin==0) {

                    if(tiden==!echo.read_ms()) {
                        pc.printf("Bevegelse \n");
                    }
                    tiden=echo.read_ms();
                    echo.reset();
                    wait(0.05);

                }
            }

        case 3:


            float fart;
            float avstand;
            float avstand2;
            Timer tida;
            float strekning;
            while(1) {
                
                tida.start();
                triggerfunc();
                while(!EchoPin);
                echo.start();
                while(EchoPin);
                echo.stop();

                //Fart = avstand / tid
                
                avstand =(echo.read()* 340* 100) /2;
                float tid1=echo.read();
                echo.reset();
                
                float tida1=tida.read();
                tida.reset();
                tida.start();
                triggerfunc();
                while(!EchoPin);
                echo.start();
                while(EchoPin);
                echo.stop();
                tida.stop();
                
                
                avstand2 =(echo.read()* 340* 100) /2;
                
                strekning= avstand-avstand2;
                fart=strekning/tida.read();
                printf("farten til objektet er : %.4f \n",fart);
                echo.reset();
                wait(1);
            }
    }
}

void flushSerialBuffer(void)
{
    while (pc.readable()) {
        (void) pc.getc();
        return;
    }
}
*/