Library for interfacing the SRF08 ultrasonic range sensor. Most functions of the SRF08 are covered, including interrupt-based waiting for the ranging process to finish
Dependents: DISCO-F746NG_LCDTS_demo Srf08Test
You are viewing an older revision! See the latest version
Homepage
Tips¶
Don't forget to add the pullup resistors from 5v to SDA and SCL! Information on the SRF08 can be found here: http://www.robot-electronics.co.uk/htm/srf08tech.shtml
Example program¶
#include "mbed.h" #include "SRF08.h" Serial PC(USBTX, USBRX); //Debug port to PC SRF08 rangeMod1(p28, p27, 0xE4); //SRF08 ranging module 1 SRF08 rangeMod2(p28, p27, 0xE2); //SRF08 ranging module 2 int main() { PC.printf("Start ranging test \n"); rangeMod1.setAddress(0xE4); //Factory default is 0xE0 while(1) { rangeMod1.startRanging(); while (!rangeMod1.rangingFinished() ) wait(0.01); int range1 = rangeMod1.getRange(); int light1 = rangeMod1.getLightIntensity(); rangeMod2.startRanging(); while (!rangeMod2.rangingFinished() ) wait(0.01); int range2 = rangeMod2.getRange(); PC.printf(" Range_1: %i", range1); PC.printf(" Range_2: %i", range2); PC.printf(" Light_1: %i", light1); PC.printf("\n"); } }
Library¶
Import library
Public Member Functions |
|
SRF08 (PinName SDA, PinName SCL, int i2cAddress) | |
Create a
SRF08
object connected to the specified I2C pins and address.
|
|
void | startRanging () |
Send the "Start ranging in cm" command via I2C.
|
|
bool | rangingFinished () |
Checks if the module has finished ranging.
|
|
int | getRange () |
Gets the measured range from the module.
|
|
int | getLightIntensity () |
Gets the measured light intensity from the module.
|
|
void | setRangeRegister (unsigned char rangeVal) |
Sets the range register of the
SRF08
for faster ranging.
|
|
void | setMaxGainRegister (unsigned char gainVal) |
Sets the max gain register of the
SRF08
.
|
|
void | setAddress (int i2cAddress) |
Changes the I2C address of the
SRF08
.
|