project
Dependencies: MbedJSONValue DISCO_L475VG_IOT01A_wifi mbed-http
US100.cpp@0:8bcd728684c5, 2019-01-07 (annotated)
- Committer:
- Eason0505
- Date:
- Mon Jan 07 11:19:49 2019 +0000
- Revision:
- 0:8bcd728684c5
IoT Project code
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Eason0505 | 0:8bcd728684c5 | 1 | #include "US100.h" |
Eason0505 | 0:8bcd728684c5 | 2 | #include "mbed.h" |
Eason0505 | 0:8bcd728684c5 | 3 | US100::US100(PinName t, PinName e) : trig(t), echo(e) {} |
Eason0505 | 0:8bcd728684c5 | 4 | // Trigger Echo |
Eason0505 | 0:8bcd728684c5 | 5 | // ______ _____________,,,,,,,,, |
Eason0505 | 0:8bcd728684c5 | 6 | // ____| 10us |_________| 150us-25ms, or 38ms if no obstacle |
Eason0505 | 0:8bcd728684c5 | 7 | // |
Eason0505 | 0:8bcd728684c5 | 8 | //return echo duration in us (refer to digram above) |
Eason0505 | 0:8bcd728684c5 | 9 | int US100::echo_duration() |
Eason0505 | 0:8bcd728684c5 | 10 | { |
Eason0505 | 0:8bcd728684c5 | 11 | timer.reset(); |
Eason0505 | 0:8bcd728684c5 | 12 | trig = 0; |
Eason0505 | 0:8bcd728684c5 | 13 | wait_us(10); |
Eason0505 | 0:8bcd728684c5 | 14 | trig = 1; |
Eason0505 | 0:8bcd728684c5 | 15 | wait_us(10); |
Eason0505 | 0:8bcd728684c5 | 16 | trig = 0; |
Eason0505 | 0:8bcd728684c5 | 17 | while(echo == 0); |
Eason0505 | 0:8bcd728684c5 | 18 | timer.start(); |
Eason0505 | 0:8bcd728684c5 | 19 | while(echo == 1); |
Eason0505 | 0:8bcd728684c5 | 20 | timer.stop(); |
Eason0505 | 0:8bcd728684c5 | 21 | return timer.read_us(); |
Eason0505 | 0:8bcd728684c5 | 22 | } |
Eason0505 | 0:8bcd728684c5 | 23 | |
Eason0505 | 0:8bcd728684c5 | 24 | int US100::distance() |
Eason0505 | 0:8bcd728684c5 | 25 | { |
Eason0505 | 0:8bcd728684c5 | 26 | int duration = echo_duration(); |
Eason0505 | 0:8bcd728684c5 | 27 | int distacne_mm = duration*0.34/2/10; |
Eason0505 | 0:8bcd728684c5 | 28 | return distacne_mm; |
Eason0505 | 0:8bcd728684c5 | 29 | } |