Fredrik Bjørken / Mbed 2 deprecated Ultralydsensor_test

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 DigitalOut TriggerPin(p17);  //Sender signal
00004 DigitalOut EchoPin(p18);     //Motar signal
00005 DigitalIn  Br(p15);
00006 DigitalOut myled(LED1);
00007 
00008 Serial pc(USBTX, USBRX);
00009 
00010 Timer echo;   //Timer for avlesing av echosignal.
00011 
00012 int distance; //variable for lagring og utrening av avstand.
00013 int d;
00014 
00015 void triggerfunc();
00016 
00017 //Distance (in cm) = (elapsed time * sound velocity (340 m/s)) / 100 / 2 //formel for utregning av avstand, ved bruk av tiden.
00018 
00019 
00020 int main()
00021 {
00022     while(1) {
00023         pc.printf("Tast 1 for a starte avstandsmaling\n\r");
00024         pc.scanf("%d", &d);
00025     if(d == 1){
00026         pc.printf("Triggersignal sendt\n\r");
00027         triggerfunc();    
00028         myled = 1;                                  //sender ut et triggersignal.
00029         }
00030     while(1) {
00031         if(EchoPin == 1) { 
00032             pc.printf("Timer startet\n\r");                               //Starter en timer som er aktiv så lenge EchoPin er høy.
00033             echo.start();
00034         } else {
00035             pc.printf("Timer stoppet\n\r");
00036             echo.stop();
00037             distance = (echo.read() * 340) / 100 /2;    //340, er lydens hastighet i m/s. Deler på 100 for å få svaret i cm.
00038             pc.printf("Malt avstand er: %.2f\n\r", distance);
00039             echo.reset();   
00040             break; 
00041             }                             //we divide distance by 2 because the sensor returns the round trip time, which doubles the distance measurement.
00042         }
00043     }
00044 }
00045 
00046 
00047 /* Sender ut ett trigger signal på 10us */
00048 void triggerfunc()
00049 {
00050     TriggerPin = 1;
00051     wait(10u);
00052     TriggerPin = 0;
00053 }