'

https://os.mbed.com/media/uploads/danijel28/indikatorudaljenostiobjekta.cpp

Files at this revision

API Documentation at this revision

Comitter:
antoniolinux
Date:
Mon Apr 14 08:23:09 2014 +0000
Child:
1:6f2201f12897
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
--- /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
--- /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