Simple library for reading distance from SRF02 Ultrasonic Sensor in I2C mode.

Dependents:   Project_A el13jarDistanceSensorProject UltrasonicDistanceSensor-el13jb Distance_Sensor_SRF02 ... more

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?

UserRevisionLine numberNew 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