Fredrik Bjørken / Mbed 2 deprecated Ultralydsensor_test

Dependencies:   mbed

Committer:
Bjorken
Date:
Wed Mar 16 11:04:52 2016 +0000
Revision:
0:e49880825aec
Ultralyd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Bjorken 0:e49880825aec 1 #include "mbed.h"
Bjorken 0:e49880825aec 2
Bjorken 0:e49880825aec 3 DigitalOut TriggerPin(p17); //Sender signal
Bjorken 0:e49880825aec 4 DigitalOut EchoPin(p18); //Motar signal
Bjorken 0:e49880825aec 5 DigitalIn Br(p15);
Bjorken 0:e49880825aec 6 DigitalOut myled(LED1);
Bjorken 0:e49880825aec 7
Bjorken 0:e49880825aec 8 Serial pc(USBTX, USBRX);
Bjorken 0:e49880825aec 9
Bjorken 0:e49880825aec 10 Timer echo; //Timer for avlesing av echosignal.
Bjorken 0:e49880825aec 11
Bjorken 0:e49880825aec 12 int distance; //variable for lagring og utrening av avstand.
Bjorken 0:e49880825aec 13 int d;
Bjorken 0:e49880825aec 14
Bjorken 0:e49880825aec 15 void triggerfunc();
Bjorken 0:e49880825aec 16
Bjorken 0:e49880825aec 17 //Distance (in cm) = (elapsed time * sound velocity (340 m/s)) / 100 / 2 //formel for utregning av avstand, ved bruk av tiden.
Bjorken 0:e49880825aec 18
Bjorken 0:e49880825aec 19
Bjorken 0:e49880825aec 20 int main()
Bjorken 0:e49880825aec 21 {
Bjorken 0:e49880825aec 22 while(1) {
Bjorken 0:e49880825aec 23 pc.printf("Tast 1 for a starte avstandsmaling\n\r");
Bjorken 0:e49880825aec 24 pc.scanf("%d", &d);
Bjorken 0:e49880825aec 25 if(d == 1){
Bjorken 0:e49880825aec 26 pc.printf("Triggersignal sendt\n\r");
Bjorken 0:e49880825aec 27 triggerfunc();
Bjorken 0:e49880825aec 28 myled = 1; //sender ut et triggersignal.
Bjorken 0:e49880825aec 29 }
Bjorken 0:e49880825aec 30 while(1) {
Bjorken 0:e49880825aec 31 if(EchoPin == 1) {
Bjorken 0:e49880825aec 32 pc.printf("Timer startet\n\r"); //Starter en timer som er aktiv så lenge EchoPin er høy.
Bjorken 0:e49880825aec 33 echo.start();
Bjorken 0:e49880825aec 34 } else {
Bjorken 0:e49880825aec 35 pc.printf("Timer stoppet\n\r");
Bjorken 0:e49880825aec 36 echo.stop();
Bjorken 0:e49880825aec 37 distance = (echo.read() * 340) / 100 /2; //340, er lydens hastighet i m/s. Deler på 100 for å få svaret i cm.
Bjorken 0:e49880825aec 38 pc.printf("Malt avstand er: %.2f\n\r", distance);
Bjorken 0:e49880825aec 39 echo.reset();
Bjorken 0:e49880825aec 40 break;
Bjorken 0:e49880825aec 41 } //we divide distance by 2 because the sensor returns the round trip time, which doubles the distance measurement.
Bjorken 0:e49880825aec 42 }
Bjorken 0:e49880825aec 43 }
Bjorken 0:e49880825aec 44 }
Bjorken 0:e49880825aec 45
Bjorken 0:e49880825aec 46
Bjorken 0:e49880825aec 47 /* Sender ut ett trigger signal på 10us */
Bjorken 0:e49880825aec 48 void triggerfunc()
Bjorken 0:e49880825aec 49 {
Bjorken 0:e49880825aec 50 TriggerPin = 1;
Bjorken 0:e49880825aec 51 wait(10u);
Bjorken 0:e49880825aec 52 TriggerPin = 0;
Bjorken 0:e49880825aec 53 }