Simple library for reading distance from SRF02 Ultrasonic Sensor in I2C mode.
Dependents: Project_A el13jarDistanceSensorProject UltrasonicDistanceSensor-el13jb Distance_Sensor_SRF02 ... more
SRF02.h
- Committer:
- eencae
- Date:
- 2016-06-22
- Revision:
- 2:cb489f486ece
- Parent:
- 1:8e6587d88773
File content as of revision 2:cb489f486ece:
/** @file SRF02.h @brief Header file containing member functions and variables */ #ifndef SRF02_H #define SRF02_H // 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.1 @author Craig A. Evans @date June 2016 * * Example: * @code #include "mbed.h" #include "SRF02.h" SRF02 sensor(p28,p27,0xE0); // SDA, SCL, address 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 * @param addr - write address of the SRF02 sensor * */ SRF02(PinName sdaPin, PinName sclPin, char addr); /** Read distance in centimetres * * @returns distance in centimetres (int) * */ int getDistanceCm(); /** Change I2C address of SRF02 sensor * * @param address - @see https://www.robot-electronics.co.uk/htm/srf02techI2C.htm for valid addresses * */ void changeAddress(char addr); private: /** Hangs in infinite loop flashing 'blue lights of death' * */ void error(); private: // private variables I2C* i2c; BusOut* leds; char w_addr_; // write address of sensor char r_addr_; // read address (= write address + 1) }; #endif