Library for Ultrasonic Range,

Dependents:   burobo_reciverV2 Nucleo_Ultrasonic-HCSR4 Test_UltraSonic Ultrasonic2 ... more

Files at this revision

API Documentation at this revision

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