Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:e49880825aec, 2016-03-16 (annotated)
- Committer:
- Bjorken
- Date:
- Wed Mar 16 11:04:52 2016 +0000
- Revision:
- 0:e49880825aec
Ultralyd
Who changed what in which revision?
User | Revision | Line number | New 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 | } |