Simple library for reading distance from SRF02 Ultrasonic Sensor in I2C mode. With the use of imperial readings too

Fork of SRF02 by Craig Evans

SRF02.h

Committer:
el15pjt
Date:
2016-04-15
Revision:
3:78c8202f8929
Parent:
2:ad1613b4145c

File content as of revision 3:78c8202f8929:

/**
@file SRF02.h

@brief Header file containing member functions and variables

*/

#ifndef SRF02_H
#define SRF02_H

// addresses
#define SRF02_R_ADD    0xE1
#define SRF02_W_ADD    0xE0

// registers
#define CMD_REG         0x00
#define RANGE_H_REG     0x02
#define RANGE_L_REG     0x03

// commands
#define INCH_CMD    0x50
#define CM_CMD      0x51
#define US_CMD      0x52

#include "mbed.h"

/**
@brief Library for interfacing with SRF02 Ultrasonic Sensor in I2C
@see http://www.robot-electronics.co.uk/htm/srf02tech.htm

@brief Revision 1.0

@author Craig A. Evans
@date   March 2014
 *
 * Example:
 * @code

 #include "mbed.h"
 #include "SRF02.h"

 int main() {

    while(1) {

        // read sensor distance in cm and print over serial port
        int distance = sensor.getDistanceCm();
        serial.printf("Distance = %d cm\n",distance);
        // short delay before next measurement
        wait(0.5);

    }
}
 * @endcode
 */

class SRF02
{
public:

    /** Create a SRF02 object connected to the specified I2C pins
    *
    * @param sdaPin - mbed SDA pin 
    * @param sclPin - mbed SCL pin
    * 
    */
   
    
    SRF02(PinName sdaPin, PinName sclPin);
    /** Read distance in centimetres
    *
    * @returns distance in centimetres (int)
    * 
    */
    int getDistanceCm();
int getDistannceInch();
private:
    /** Hangs in infinite loop flashing 'blue lights of death'
    *
    */ 
    void error();


private:  // private variables
    I2C* i2c;
    BusOut* leds;
};

#endif