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.
Fork of HCSR04 by
hcsr04.h@1:0e7a98b41a75, 2016-06-17 (annotated)
- Committer:
- jguzik
- Date:
- Fri Jun 17 08:54:31 2016 +0000
- Revision:
- 1:0e7a98b41a75
- Parent:
- 0:86b2086be101
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| antoniolinux | 0:86b2086be101 | 1 | /* File: HCSR04.h |
| antoniolinux | 0:86b2086be101 | 2 | * Author: Antonio Buonanno |
| antoniolinux | 0:86b2086be101 | 3 | *Board: STM NUCLEO F401RE, |
| antoniolinux | 0:86b2086be101 | 4 | *Hardware: Ultrasonic Range HC-SR04, |
| antoniolinux | 0:86b2086be101 | 5 | * |
| antoniolinux | 0:86b2086be101 | 6 | *This work derived from Arduino library, |
| antoniolinux | 0:86b2086be101 | 7 | * |
| antoniolinux | 0:86b2086be101 | 8 | * Desc: driver for HCSR04 Ultrasonic Range Finder. The returned range |
| antoniolinux | 0:86b2086be101 | 9 | * is in units of meters. |
| antoniolinux | 0:86b2086be101 | 10 | * |
| antoniolinux | 0:86b2086be101 | 11 | * |
| antoniolinux | 0:86b2086be101 | 12 | * |
| antoniolinux | 0:86b2086be101 | 13 | */ |
| antoniolinux | 0:86b2086be101 | 14 | |
| antoniolinux | 0:86b2086be101 | 15 | /* EXAMPLE |
| antoniolinux | 0:86b2086be101 | 16 | #include "mbed.h" |
| antoniolinux | 0:86b2086be101 | 17 | #include "hcsr04.h" |
| antoniolinux | 0:86b2086be101 | 18 | |
| antoniolinux | 0:86b2086be101 | 19 | //D12 TRIGGER D11 ECHO |
| antoniolinux | 0:86b2086be101 | 20 | HCSR04 sensor(D12, D11); |
| antoniolinux | 0:86b2086be101 | 21 | int main() { |
| antoniolinux | 0:86b2086be101 | 22 | while(1) { |
| antoniolinux | 0:86b2086be101 | 23 | |
| antoniolinux | 0:86b2086be101 | 24 | long distance = sensor.distance(); |
| antoniolinux | 0:86b2086be101 | 25 | printf("distanza %d \n",distance); |
| antoniolinux | 0:86b2086be101 | 26 | wait(1.0); // 1 sec |
| antoniolinux | 0:86b2086be101 | 27 | |
| antoniolinux | 0:86b2086be101 | 28 | } |
| antoniolinux | 0:86b2086be101 | 29 | } |
| antoniolinux | 0:86b2086be101 | 30 | */ |
| antoniolinux | 0:86b2086be101 | 31 | #ifndef hcsr04_H |
| antoniolinux | 0:86b2086be101 | 32 | #define hcsr04_H |
| antoniolinux | 0:86b2086be101 | 33 | #include "mbed.h" |
| antoniolinux | 0:86b2086be101 | 34 | |
| antoniolinux | 0:86b2086be101 | 35 | |
| antoniolinux | 0:86b2086be101 | 36 | class HCSR04 { |
| antoniolinux | 0:86b2086be101 | 37 | public: |
| jguzik | 1:0e7a98b41a75 | 38 | HCSR04(PinName t, PinName e, long to); |
| antoniolinux | 0:86b2086be101 | 39 | long echo_duration(); |
| antoniolinux | 0:86b2086be101 | 40 | long distance(); |
| antoniolinux | 0:86b2086be101 | 41 | |
| antoniolinux | 0:86b2086be101 | 42 | private: |
| antoniolinux | 0:86b2086be101 | 43 | DigitalOut trig; |
| antoniolinux | 0:86b2086be101 | 44 | DigitalIn echo; |
| antoniolinux | 0:86b2086be101 | 45 | Timer timer; |
| jguzik | 1:0e7a98b41a75 | 46 | long duration,distance_cm,time_out; |
| antoniolinux | 0:86b2086be101 | 47 | }; |
| antoniolinux | 0:86b2086be101 | 48 | |
| antoniolinux | 0:86b2086be101 | 49 | #endif |
