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.
Dependencies: mbed mbed-rtos tsi_sensor SLCD
HCSR04.h@0:78b84e1ce9df, 2020-02-18 (annotated)
- Committer:
- wstapleton
- Date:
- Tue Feb 18 21:16:23 2020 +0000
- Revision:
- 0:78b84e1ce9df
Lab2 hint 2/18/2020
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| wstapleton | 0:78b84e1ce9df | 1 | #ifndef HCSR04_H |
| wstapleton | 0:78b84e1ce9df | 2 | #define HCSR04_H |
| wstapleton | 0:78b84e1ce9df | 3 | |
| wstapleton | 0:78b84e1ce9df | 4 | // The following lines MUST be added into the main() routine |
| wstapleton | 0:78b84e1ce9df | 5 | /* |
| wstapleton | 0:78b84e1ce9df | 6 | HCSR04_timer.start(); |
| wstapleton | 0:78b84e1ce9df | 7 | HCSR04_echo.rise(&echo_start); |
| wstapleton | 0:78b84e1ce9df | 8 | HCSR04_echo.fall(&echo_end); |
| wstapleton | 0:78b84e1ce9df | 9 | HCSR04_start.attach(&pulse_trigger, 100E-3); |
| wstapleton | 0:78b84e1ce9df | 10 | */ |
| wstapleton | 0:78b84e1ce9df | 11 | |
| wstapleton | 0:78b84e1ce9df | 12 | DigitalOut HCSR04_trigger(PTC13); |
| wstapleton | 0:78b84e1ce9df | 13 | InterruptIn HCSR04_echo(PTC16); |
| wstapleton | 0:78b84e1ce9df | 14 | Ticker HCSR04_start; |
| wstapleton | 0:78b84e1ce9df | 15 | Timer HCSR04_timer; |
| wstapleton | 0:78b84e1ce9df | 16 | float HCSR04_time, HCSR04_inches, HCSR04_cm; |
| wstapleton | 0:78b84e1ce9df | 17 | |
| wstapleton | 0:78b84e1ce9df | 18 | void HCSR04_pulse_trigger() |
| wstapleton | 0:78b84e1ce9df | 19 | { |
| wstapleton | 0:78b84e1ce9df | 20 | HCSR04_trigger.write(1); |
| wstapleton | 0:78b84e1ce9df | 21 | wait(10E-6); |
| wstapleton | 0:78b84e1ce9df | 22 | HCSR04_trigger.write(0); |
| wstapleton | 0:78b84e1ce9df | 23 | } |
| wstapleton | 0:78b84e1ce9df | 24 | |
| wstapleton | 0:78b84e1ce9df | 25 | void HCSR04_echo_start() |
| wstapleton | 0:78b84e1ce9df | 26 | { |
| wstapleton | 0:78b84e1ce9df | 27 | HCSR04_timer.reset(); |
| wstapleton | 0:78b84e1ce9df | 28 | } |
| wstapleton | 0:78b84e1ce9df | 29 | |
| wstapleton | 0:78b84e1ce9df | 30 | void HCSR04_echo_end() |
| wstapleton | 0:78b84e1ce9df | 31 | { |
| wstapleton | 0:78b84e1ce9df | 32 | HCSR04_time=HCSR04_timer.read(); |
| wstapleton | 0:78b84e1ce9df | 33 | if(HCSR04_time < 30E-3) // delay longer than 30 ms indicates no echo |
| wstapleton | 0:78b84e1ce9df | 34 | { |
| wstapleton | 0:78b84e1ce9df | 35 | HCSR04_inches=HCSR04_time*13503.9*0.5; // speed of sound = 13503.9 inches/second and distance to object is 1/2 path length; |
| wstapleton | 0:78b84e1ce9df | 36 | HCSR04_cm=HCSR04_time*34300.0*0.5; // speed of sound = 34300 cm/second and distance to object is 1/2 path length; |
| wstapleton | 0:78b84e1ce9df | 37 | } |
| wstapleton | 0:78b84e1ce9df | 38 | else |
| wstapleton | 0:78b84e1ce9df | 39 | { |
| wstapleton | 0:78b84e1ce9df | 40 | HCSR04_inches=-1.0; |
| wstapleton | 0:78b84e1ce9df | 41 | HCSR04_cm=-1.0; |
| wstapleton | 0:78b84e1ce9df | 42 | } |
| wstapleton | 0:78b84e1ce9df | 43 | } |
| wstapleton | 0:78b84e1ce9df | 44 | |
| wstapleton | 0:78b84e1ce9df | 45 | |
| wstapleton | 0:78b84e1ce9df | 46 | #endif //HCSR04_H |