A distance measurement class using ultrasonic sensor HC-SR04.

Dependents:   Esercitazione4_4 HC-SR04 Group10_slave Oled_Gus ... more

The purpose of this library is to encourage students to develope their own classes. Instructions how to follow the development of this library for ultrasonic distance measurement are given here.

Revision:
0:8871082486ac
Child:
1:9989fcb7f189
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HCSR04.h	Sat Dec 05 09:02:35 2015 +0000
@@ -0,0 +1,57 @@
+#ifndef HCSR04_H_TVZMT
+#define HCSR04_H_TVZMT
+
+/** A distance measurement class using ultrasonic sensor HC-SR04.
+ *  
+ * Example of use:
+ * <<code>>
+ * #include "mbed.h"
+ * #include "HCSR04.h"
+ *
+ * Serial pc(USBTX, USBRX);    // communication with terminal
+ * 
+ * int main() {
+ *     HCSR04 sensor(p5, p7);     // instantiate the sensor object
+ *     while(1) {
+ *         pc.printf("Distance: %5.1f cm\r", sensor.getDistance_cm());
+ *         wait_ms(975); // print the result every 1 second
+ *     }
+ * }
+ * <</code>>
+ */
+class HCSR04 {
+    
+    public:
+    
+    /** Receives two PinName variables.
+     * @param echoPin mbed pin to which the echo signal is connected to
+     * @param triggerPin mbed pin to which the trigger signal is connected to
+     */
+    HCSR04(PinName echoPin, PinName triggerPin);
+    
+    /** Calculates the distance in cm, with the calculation time of 25 ms.
+     * @returns distance of the measuring object in cm.
+     */
+    float getDistance_cm();
+    
+    private:
+    
+    InterruptIn echo;       // echo pin
+    DigitalOut trigger;     // trigger pin
+    Timer timer;            // echo pulsewidth measurement
+    float distance;         // store the distance in cm
+    
+    /** Start the timer. */
+    void startTimer();
+    
+    /** Stop the timer. */
+    void stopTimer();
+    
+    /** Initialization. */
+    void init();
+    
+    /** Start the measurement. */
+    void startMeasurement();
+};
+
+#endif
\ No newline at end of file