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.
Dependents: Ultrasonic test ZMOTO42 catchCats ... more
Revision 0:0bda99bb39a4, committed 2011-10-18
- Comitter:
- aralshukaili
- Date:
- Tue Oct 18 14:32:12 2011 +0000
- Commit message:
- 1.0
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 |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/HCSR04.cpp Tue Oct 18 14:32:12 2011 +0000
@@ -0,0 +1,41 @@
+#include "HCSR04.h"
+#include "mbed.h"
+
+
+HCSR04::HCSR04(PinName t, PinName e) : trig(t), echo(e) {}
+
+// Trigger Echo
+// _______ _____________,,,,,,,,,
+// ____| 10us |_________| 150us-25ms, or 38ms if no obstacle
+//
+
+//return echo duration in us (refer to digram above)
+long HCSR04::echo_duration() {
+ timer.reset();
+ trig = 0;
+ wait_us(2);
+ trig = 1;
+ wait_us(10);
+ trig = 0;
+ while(echo == 0);
+ timer.start();
+ while(echo == 1);
+ timer.stop();
+ 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){
+ 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;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/HCSR04.h Tue Oct 18 14:32:12 2011 +0000
@@ -0,0 +1,39 @@
+//Library for controlling ultrasonic module HCSR04
+//Ported by hiawoood from arduino library orgininally created by ITead studio.
+//Instantiate object by supplying the proper pin numbers of "trigger" and "echo"
+//e.g.
+/*
+ int main() {
+ Ultrasonic sensor(p5, p6);
+ while(1){
+ long distance = sensor.distance(CM);
+ printf("Distance:%d\n");
+ wait(0.1);
+ }
+ }
+*/
+
+
+
+#ifndef HCSR04_H
+#define HCSR04_H
+
+#include "mbed.h"
+
+#define CM 1
+#define INC 0
+
+class HCSR04 {
+ public:
+ HCSR04(PinName t, PinName e);
+ long echo_duration();
+ long distance(int sys);
+
+ private:
+ DigitalOut trig;
+ DigitalIn echo;
+ Timer timer;
+ long duration,distacne_cm,distance_inc;
+};
+
+#endif
\ No newline at end of file