Library for Ultrasonic Range,
Dependents: burobo_reciverV2 Nucleo_Ultrasonic-HCSR4 Test_UltraSonic Ultrasonic2 ... more
Revision 0:86b2086be101, committed 2014-04-14
- Comitter:
- antoniolinux
- Date:
- Mon Apr 14 08:23:09 2014 +0000
- Commit message:
- Second version for ULTRASONIC RANGE, i try it , all work fine, i use an HC-SR04,
Changed in this revision
hcsr04.cpp | Show annotated file Show diff for this revision Revisions of this file |
hcsr04.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r 86b2086be101 hcsr04.cpp --- /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
diff -r 000000000000 -r 86b2086be101 hcsr04.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hcsr04.h Mon Apr 14 08:23:09 2014 +0000 @@ -0,0 +1,50 @@ +/* File: HCSR04.h + * Author: Antonio Buonanno + *Board: STM NUCLEO F401RE, + *Hardware: Ultrasonic Range HC-SR04, + * + *This work derived from Arduino library, + * + * Desc: driver for HCSR04 Ultrasonic Range Finder. The returned range + * is in units of meters. + * + * + * +*/ + +/* EXAMPLE +#include "mbed.h" +#include "hcsr04.h" + +//D12 TRIGGER D11 ECHO + HCSR04 sensor(D12, D11); +int main() { + while(1) { + + long distance = sensor.distance(); + printf("distanza %d \n",distance); + wait(1.0); // 1 sec + + } +} +*/ +#ifndef hcsr04_H +#define hcsr04_H +#include "mbed.h" + + + +class HCSR04 { + public: + HCSR04(PinName t, PinName e); + long echo_duration(); + long distance(); + + private: + DigitalOut trig; + DigitalIn echo; + Timer timer; + long duration,distance_cm; +}; + +#endif \ No newline at end of file