Simple library for interfacing with SRF02 ultrasonic rage finder (written by C. Evans @eencae). Additions include a function for obtaining readings in inches

Fork of SRF02 by Craig Evans

Committer:
el13k3s
Date:
Mon May 11 16:35:20 2015 +0000
Revision:
2:98253d9cbccd
Parent:
1:8e6587d88773
Initial commit - radar not working; ; 11 May 2015

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 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();
el13k3s 2:98253d9cbccd 74 /** Read distance in inches
el13k3s 2:98253d9cbccd 75 *
el13k3s 2:98253d9cbccd 76 * @returns distance in inches (int)
el13k3s 2:98253d9cbccd 77 *
el13k3s 2:98253d9cbccd 78 */
el13k3s 2:98253d9cbccd 79 int getDistanceInch();
eencae 0:b729d2ce03bd 80
eencae 0:b729d2ce03bd 81 private:
eencae 1:8e6587d88773 82 /** Hangs in infinite loop flashing 'blue lights of death'
eencae 1:8e6587d88773 83 *
eencae 1:8e6587d88773 84 */
eencae 0:b729d2ce03bd 85 void error();
eencae 0:b729d2ce03bd 86
eencae 0:b729d2ce03bd 87
eencae 0:b729d2ce03bd 88 private: // private variables
eencae 0:b729d2ce03bd 89 I2C* i2c;
eencae 0:b729d2ce03bd 90 BusOut* leds;
eencae 0:b729d2ce03bd 91 };
eencae 0:b729d2ce03bd 92
eencae 0:b729d2ce03bd 93 #endif