Used command byte to return distance in inches.
Dependents: 2ndYearProject-DistanceSensor
Fork of SRF02 by
SRF02.h@0:b729d2ce03bd, 2015-03-08 (annotated)
- Committer:
- eencae
- Date:
- Sun Mar 08 14:15:29 2015 +0000
- Revision:
- 0:b729d2ce03bd
- Child:
- 1:8e6587d88773
Initial commit of library.
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 | |
eencae | 0:b729d2ce03bd | 8 | #ifndef SRF02_H |
eencae | 0:b729d2ce03bd | 9 | #define SRF02_H |
eencae | 0:b729d2ce03bd | 10 | |
eencae | 0:b729d2ce03bd | 11 | // addresses |
eencae | 0:b729d2ce03bd | 12 | #define SRF02_R_ADD 0xE1 |
eencae | 0:b729d2ce03bd | 13 | #define SRF02_W_ADD 0xE0 |
eencae | 0:b729d2ce03bd | 14 | |
eencae | 0:b729d2ce03bd | 15 | // registers |
eencae | 0:b729d2ce03bd | 16 | #define CMD_REG 0x00 |
eencae | 0:b729d2ce03bd | 17 | #define RANGE_H_REG 0x02 |
eencae | 0:b729d2ce03bd | 18 | #define RANGE_L_REG 0x03 |
eencae | 0:b729d2ce03bd | 19 | |
eencae | 0:b729d2ce03bd | 20 | // commands |
eencae | 0:b729d2ce03bd | 21 | #define INCH_CMD 0x50 |
eencae | 0:b729d2ce03bd | 22 | #define CM_CMD 0x51 |
eencae | 0:b729d2ce03bd | 23 | #define US_CMD 0x52 |
eencae | 0:b729d2ce03bd | 24 | |
eencae | 0:b729d2ce03bd | 25 | #include "mbed.h" |
eencae | 0:b729d2ce03bd | 26 | |
eencae | 0:b729d2ce03bd | 27 | /** |
eencae | 0:b729d2ce03bd | 28 | @brief Library for interfacing with SRF02 Ultrasonic Sensor in I2C |
eencae | 0:b729d2ce03bd | 29 | @see http://www.robot-electronics.co.uk/htm/srf02tech.htm |
eencae | 0:b729d2ce03bd | 30 | |
eencae | 0:b729d2ce03bd | 31 | @brief Revision 1.0 |
eencae | 0:b729d2ce03bd | 32 | |
eencae | 0:b729d2ce03bd | 33 | @author Craig A. Evans |
eencae | 0:b729d2ce03bd | 34 | @date March 2014 |
eencae | 0:b729d2ce03bd | 35 | * |
eencae | 0:b729d2ce03bd | 36 | * Example: |
eencae | 0:b729d2ce03bd | 37 | * @code |
eencae | 0:b729d2ce03bd | 38 | |
eencae | 0:b729d2ce03bd | 39 | #include "mbed.h" |
eencae | 0:b729d2ce03bd | 40 | #include "SRF02.h" |
eencae | 0:b729d2ce03bd | 41 | |
eencae | 0:b729d2ce03bd | 42 | int main() { |
eencae | 0:b729d2ce03bd | 43 | |
eencae | 0:b729d2ce03bd | 44 | while(1) { |
eencae | 0:b729d2ce03bd | 45 | |
eencae | 0:b729d2ce03bd | 46 | // read sensor distance in cm and print over serial port |
eencae | 0:b729d2ce03bd | 47 | int distance = sensor.getDistanceCm(); |
eencae | 0:b729d2ce03bd | 48 | serial.printf("Distance = %d cm\n",distance); |
eencae | 0:b729d2ce03bd | 49 | // short delay before next measurement |
eencae | 0:b729d2ce03bd | 50 | wait(0.5); |
eencae | 0:b729d2ce03bd | 51 | |
eencae | 0:b729d2ce03bd | 52 | } |
eencae | 0:b729d2ce03bd | 53 | } |
eencae | 0:b729d2ce03bd | 54 | * @endcode |
eencae | 0:b729d2ce03bd | 55 | */ |
eencae | 0:b729d2ce03bd | 56 | |
eencae | 0:b729d2ce03bd | 57 | class SRF02 |
eencae | 0:b729d2ce03bd | 58 | { |
eencae | 0:b729d2ce03bd | 59 | public: |
eencae | 0:b729d2ce03bd | 60 | |
eencae | 0:b729d2ce03bd | 61 | SRF02(PinName sdaPin, PinName sclPin); |
eencae | 0:b729d2ce03bd | 62 | int getDistanceCm(); |
eencae | 0:b729d2ce03bd | 63 | |
eencae | 0:b729d2ce03bd | 64 | private: |
eencae | 0:b729d2ce03bd | 65 | void error(); |
eencae | 0:b729d2ce03bd | 66 | |
eencae | 0:b729d2ce03bd | 67 | |
eencae | 0:b729d2ce03bd | 68 | private: // private variables |
eencae | 0:b729d2ce03bd | 69 | I2C* i2c; |
eencae | 0:b729d2ce03bd | 70 | BusOut* leds; |
eencae | 0:b729d2ce03bd | 71 | }; |
eencae | 0:b729d2ce03bd | 72 | |
eencae | 0:b729d2ce03bd | 73 | #endif |