Library for controlling ultrasonic ranging module HCSR04 Ported by hiawoood from arduino library orgininally created by ITead studio.
Dependents: mbed-os-example-FinalReal mbed-os-example-FinalReal
Diff: HCSR04.cpp
- Revision:
- 1:b3401c36a10b
- Parent:
- 0:0bda99bb39a4
diff -r 0bda99bb39a4 -r b3401c36a10b HCSR04.cpp --- a/HCSR04.cpp Tue Oct 18 14:32:12 2011 +0000 +++ b/HCSR04.cpp Sun Jun 16 04:37:08 2019 +0000 @@ -1,19 +1,12 @@ #include "HCSR04.h" #include "mbed.h" - -HCSR04::HCSR04(PinName t, PinName e) : trig(t), echo(e) {} +Ultrasonic::Ultrasonic(PinName t, PinName e) : trig(t), echo(e) { + trig=0; +} -// Trigger Echo -// _______ _____________,,,,,,,,, -// ____| 10us |_________| 150us-25ms, or 38ms if no obstacle -// - -//return echo duration in us (refer to digram above) -long HCSR04::echo_duration() { +int Ultrasonic::echo_duration() { timer.reset(); - trig = 0; - wait_us(2); trig = 1; wait_us(10); trig = 0; @@ -24,18 +17,8 @@ return timer.read_us(); } -//return distance to nearest obstacle or returns -1 -//if no obstacle within range -//set sys to cm or inch accordingly -long HCSR04::distance(int sys){ +int Ultrasonic::distance(){ duration = echo_duration(); - if(duration > 30000) - return -1; - distacne_cm = duration /29 / 2 ; - distance_inc = duration / 74 / 2; - if (sys) - return distacne_cm; - else - return distance_inc; -} - + _distance= duration /58 / 2 ; + return _distance; +} \ No newline at end of file