Distance sensor- Embedded Systems Project
Fork of SRF02 by
SRF02.h@2:1e51f3230f2f, 2016-03-07 (annotated)
- Committer:
- el14ml
- Date:
- Mon Mar 07 12:11:17 2016 +0000
- Revision:
- 2:1e51f3230f2f
- Parent:
- 1:8e6587d88773
potentiometer, led initial
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 | 1:8e6587d88773 | 61 | /** Create a SRF02 object connected to the specified I2C pins |
eencae | 1:8e6587d88773 | 62 | * |
eencae | 1:8e6587d88773 | 63 | * @param sdaPin - mbed SDA pin |
eencae | 1:8e6587d88773 | 64 | * @param sclPin - mbed SCL pin |
eencae | 1:8e6587d88773 | 65 | * |
eencae | 1:8e6587d88773 | 66 | */ |
eencae | 0:b729d2ce03bd | 67 | SRF02(PinName sdaPin, PinName sclPin); |
eencae | 1:8e6587d88773 | 68 | /** Read distance in centimetres |
eencae | 1:8e6587d88773 | 69 | * |
eencae | 1:8e6587d88773 | 70 | * @returns distance in centimetres (int) |
eencae | 1:8e6587d88773 | 71 | * |
eencae | 1:8e6587d88773 | 72 | */ |
eencae | 0:b729d2ce03bd | 73 | int getDistanceCm(); |
eencae | 0:b729d2ce03bd | 74 | |
eencae | 0:b729d2ce03bd | 75 | private: |
eencae | 1:8e6587d88773 | 76 | /** Hangs in infinite loop flashing 'blue lights of death' |
eencae | 1:8e6587d88773 | 77 | * |
eencae | 1:8e6587d88773 | 78 | */ |
eencae | 0:b729d2ce03bd | 79 | void error(); |
eencae | 0:b729d2ce03bd | 80 | |
eencae | 0:b729d2ce03bd | 81 | |
eencae | 0:b729d2ce03bd | 82 | private: // private variables |
eencae | 0:b729d2ce03bd | 83 | I2C* i2c; |
eencae | 0:b729d2ce03bd | 84 | BusOut* leds; |
eencae | 0:b729d2ce03bd | 85 | }; |
eencae | 0:b729d2ce03bd | 86 | |
eencae | 0:b729d2ce03bd | 87 | #endif |