Now working with floats instead of long ints
Fork of HCSR04 by
Diff: hcsr04.cpp
- Revision:
- 0:86b2086be101
- Child:
- 1:ca0ff158918c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hcsr04.cpp Mon Apr 14 08:23:09 2014 +0000 @@ -0,0 +1,29 @@ +#include "hcsr04.h" +#include "mbed.h" +/* +*HCSR04.cpp +*/ +HCSR04::HCSR04(PinName t, PinName e) : trig(t), echo(e) {} + long HCSR04::echo_duration() { + + timer.reset(); //reset timer + trig=0; // trigger low + wait_us(2); // wait + trig=1; // trigger high + wait_us(10); + trig=0; // trigger low + while(!echo); // start pulseIN + timer.start(); + while(echo); + timer.stop(); + return timer.read_us(); + +} + +//return distance in cm +long HCSR04::distance(){ + duration = echo_duration(); + distance_cm = (duration/2)/29.1 ; + return distance_cm; + +} \ No newline at end of file