Slightly revised version of the SRF02 library created by Craig A. Evans
Fork of SRF02 by
SRF02.h@4:5e3954a62b23, 2016-05-08 (annotated)
- Committer:
- andreykotov91
- Date:
- Sun May 08 17:37:30 2016 +0000
- Revision:
- 4:5e3954a62b23
- Parent:
- 2:d2f687283735
Library edited for use with project (reformatted to including Doxygen sytle commenting)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
eencae | 0:b729d2ce03bd | 1 | /** |
eencae | 0:b729d2ce03bd | 2 | @file SRF02.h |
eencae | 0:b729d2ce03bd | 3 | |
eencae | 0:b729d2ce03bd | 4 | @brief Header file containing member functions and variables |
eencae | 0:b729d2ce03bd | 5 | |
eencae | 0:b729d2ce03bd | 6 | */ |
eencae | 0:b729d2ce03bd | 7 | |
andreykotov91 | 4:5e3954a62b23 | 8 | //header guard |
eencae | 0:b729d2ce03bd | 9 | #ifndef SRF02_H |
eencae | 0:b729d2ce03bd | 10 | #define SRF02_H |
eencae | 0:b729d2ce03bd | 11 | |
eencae | 0:b729d2ce03bd | 12 | // addresses |
eencae | 0:b729d2ce03bd | 13 | #define SRF02_R_ADD 0xE1 |
eencae | 0:b729d2ce03bd | 14 | #define SRF02_W_ADD 0xE0 |
eencae | 0:b729d2ce03bd | 15 | |
eencae | 0:b729d2ce03bd | 16 | // registers |
eencae | 0:b729d2ce03bd | 17 | #define CMD_REG 0x00 |
eencae | 0:b729d2ce03bd | 18 | #define RANGE_H_REG 0x02 |
eencae | 0:b729d2ce03bd | 19 | #define RANGE_L_REG 0x03 |
eencae | 0:b729d2ce03bd | 20 | |
eencae | 0:b729d2ce03bd | 21 | // commands |
eencae | 0:b729d2ce03bd | 22 | #define INCH_CMD 0x50 |
eencae | 0:b729d2ce03bd | 23 | #define CM_CMD 0x51 |
eencae | 0:b729d2ce03bd | 24 | #define US_CMD 0x52 |
eencae | 0:b729d2ce03bd | 25 | |
eencae | 0:b729d2ce03bd | 26 | #include "mbed.h" |
eencae | 0:b729d2ce03bd | 27 | |
eencae | 0:b729d2ce03bd | 28 | /** |
eencae | 0:b729d2ce03bd | 29 | @brief Library for interfacing with SRF02 Ultrasonic Sensor in I2C |
eencae | 0:b729d2ce03bd | 30 | @see http://www.robot-electronics.co.uk/htm/srf02tech.htm |
eencae | 0:b729d2ce03bd | 31 | |
eencae | 0:b729d2ce03bd | 32 | @brief Revision 1.0 |
eencae | 0:b729d2ce03bd | 33 | |
eencae | 0:b729d2ce03bd | 34 | @author Craig A. Evans |
eencae | 0:b729d2ce03bd | 35 | @date March 2014 |
eencae | 0:b729d2ce03bd | 36 | * |
eencae | 0:b729d2ce03bd | 37 | * Example: |
eencae | 0:b729d2ce03bd | 38 | * @code |
eencae | 0:b729d2ce03bd | 39 | |
eencae | 0:b729d2ce03bd | 40 | #include "mbed.h" |
eencae | 0:b729d2ce03bd | 41 | #include "SRF02.h" |
eencae | 0:b729d2ce03bd | 42 | |
eencae | 0:b729d2ce03bd | 43 | int main() { |
eencae | 0:b729d2ce03bd | 44 | |
eencae | 0:b729d2ce03bd | 45 | while(1) { |
eencae | 0:b729d2ce03bd | 46 | |
eencae | 0:b729d2ce03bd | 47 | // read sensor distance in cm and print over serial port |
eencae | 0:b729d2ce03bd | 48 | int distance = sensor.getDistanceCm(); |
eencae | 0:b729d2ce03bd | 49 | serial.printf("Distance = %d cm\n",distance); |
eencae | 0:b729d2ce03bd | 50 | // short delay before next measurement |
eencae | 0:b729d2ce03bd | 51 | wait(0.5); |
eencae | 0:b729d2ce03bd | 52 | |
eencae | 0:b729d2ce03bd | 53 | } |
eencae | 0:b729d2ce03bd | 54 | } |
eencae | 0:b729d2ce03bd | 55 | * @endcode |
eencae | 0:b729d2ce03bd | 56 | */ |
eencae | 0:b729d2ce03bd | 57 | |
eencae | 0:b729d2ce03bd | 58 | class SRF02 |
eencae | 0:b729d2ce03bd | 59 | { |
eencae | 0:b729d2ce03bd | 60 | public: |
eencae | 0:b729d2ce03bd | 61 | |
eencae | 1:8e6587d88773 | 62 | /** Create a SRF02 object connected to the specified I2C pins |
eencae | 1:8e6587d88773 | 63 | * |
eencae | 1:8e6587d88773 | 64 | * @param sdaPin - mbed SDA pin |
eencae | 1:8e6587d88773 | 65 | * @param sclPin - mbed SCL pin |
eencae | 1:8e6587d88773 | 66 | * |
eencae | 1:8e6587d88773 | 67 | */ |
eencae | 0:b729d2ce03bd | 68 | SRF02(PinName sdaPin, PinName sclPin); |
eencae | 1:8e6587d88773 | 69 | /** Read distance in centimetres |
eencae | 1:8e6587d88773 | 70 | * |
eencae | 1:8e6587d88773 | 71 | * @returns distance in centimetres (int) |
eencae | 1:8e6587d88773 | 72 | * |
eencae | 1:8e6587d88773 | 73 | */ |
eencae | 0:b729d2ce03bd | 74 | int getDistanceCm(); |
eencae | 0:b729d2ce03bd | 75 | |
eencae | 0:b729d2ce03bd | 76 | private: |
andreykotov91 | 4:5e3954a62b23 | 77 | /** Called in event of error - flashes LED and hangs |
andreykotov91 | 4:5e3954a62b23 | 78 | */ |
eencae | 0:b729d2ce03bd | 79 | void error(); |
eencae | 0:b729d2ce03bd | 80 | |
eencae | 0:b729d2ce03bd | 81 | |
andreykotov91 | 4:5e3954a62b23 | 82 | private: |
andreykotov91 | 4:5e3954a62b23 | 83 | /**Class data member names often have a trailing underscore to make them easily identifiable |
andreykotov91 | 4:5e3954a62b23 | 84 | */ |
andreykotov91 | 4:5e3954a62b23 | 85 | I2C* i2c_; |
andreykotov91 | 4:5e3954a62b23 | 86 | DigitalOut* led_; |
eencae | 0:b729d2ce03bd | 87 | }; |
eencae | 0:b729d2ce03bd | 88 | |
eencae | 0:b729d2ce03bd | 89 | #endif |