Development and testing of ultrasonic distance measurement library for device HC-SR04.
Dependencies: TextLCD_improved mbed Distance_HC_SR04
Diff: Distance_HC_SR04.h
- Branch:
- CLASS_IMPLEMENTATION
- Revision:
- 7:cdde5cc8b2b3
- Parent:
- 6:1cec3aef9d86
--- a/Distance_HC_SR04.h Mon Dec 21 20:56:52 2015 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-#ifndef MBED_DISTANCE_HC_SR04_H
-#define MBED_DISTANCE_HC_SR04_H
-
-#include "mbed.h"
-
-#define TIMEOUT_DELAY_US (25000)
-#define CALC_COEFF (340.0f/(2.0f*1000.0f))
-#define TICKS_RANGE_MAX (15000)
-#define TICKS_RANGE_MIN (150)
-#define TRIG_PULSE_US (50)
-
-typedef enum { IDLE, STARTED, COMPLETED, TIMEOUT, OUT_OF_RANGE_MIN, OUT_OF_RANGE_MAX, ERROR_SIG } Distance_HC_SR04_state;
-
-/** Distance_HC_SR04 class.
- *
- * Library for interfacing ultrasonic distance measurement device HC-SR04.
- * Functionality includes detection of error in echo signal, detection of timeout and limits of reliable measurement.
- *
- */
-class Distance_HC_SR04 {
-
-public:
- Distance_HC_SR04(PinName trig, PinName echo, uint32_t tout_us = TIMEOUT_DELAY_US, float coeff = CALC_COEFF,
- uint32_t tmin_us = TICKS_RANGE_MIN, uint32_t tmax_us = TICKS_RANGE_MAX);
- void trigger(void);
- Distance_HC_SR04_state getState(void);
- void reset(void);
- uint32_t getTicks(void);
- float getDistance(void);
- float getCoeff(void);
- void setCoeff(float coeff);
- float measureDistance(void);
- uint32_t measureTicks(void);
-
- void _tout(void);
- void _rising(void);
- void _falling(void);
-
-private:
- DigitalOut _trig;
- InterruptIn _echo;
- uint32_t _tout_us;
- float _coeff;
- uint32_t _tmin_us;
- uint32_t _tmax_us;
-
- Timer _timer;
- Timeout _timeout;
-
- volatile Distance_HC_SR04_state _state;
- uint32_t _ticks_us;
-};
-
-#endif
\ No newline at end of file