SRF10

SRF10
Ultrasonic sensors

SRF10 connector description

This module used I2C as a protocol to communication with MCU. This module support to use with more than one module in system up to 16 module. We can set ID address for each module before integrated to the system, About how to change ID address click here.
For distance to measure this module can measure from 6 cm to 6 m.

Sample code:
#include <Wire.h>

//For Ultrasonic
//ADDRESS
#define Front_Left 112
#define Front_Right 114
#define CMD 0x00
#define Read_inch 0x50
#define Read_cen 0x51
#define Read_micro_sec 0x52
#define Read_pointer 0x02

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Wire.begin();
}

void loop() {
  // put your main code here, to run repeatedly:
  //Correct Data
  Serial.println("----");
  read_distance_ultrasonic(Front_Left);
  delay(75);
  read_distance_ultrasonic(Front_Right);
  delay(75);
}

int read_distance_ultrasonic(int addr){
  int reading = 0;
  // step 1: instruct sensor to read echoes
  Wire.beginTransmission(addr); // transmit to device addr
  Wire.write(CMD);      // sets register pointer to the command register (0x00)
  Wire.write(Read_cen);      // command sensor to measure in "inches" (0x50)
  // use 0x51 for centimeters
  // use 0x52 for ping microseconds
  Wire.endTransmission();      // stop transmitting

  // step 2: wait for readings to happen
  delay(70);                   // datasheet suggests at least 65 milliseconds

  // step 3: instruct sensor to return a particular echo reading
  Wire.beginTransmission(addr); // transmit to device
  Wire.write(Read_pointer);      // sets register pointer to echo #1 register (0x02)
  Wire.endTransmission();      // stop transmitting

  // step 4: request reading from sensor
  Wire.requestFrom(addr, 2);    // request 2 bytes from slave device

  // step 5: receive reading from sensor
  if (2 <= Wire.available()) { // if two bytes were received
    reading = Wire.read();  // receive high byte (overwrites previous reading)
    reading = reading << 8;    // shift high byte to be high 8 bits
    reading |= Wire.read(); // receive low byte as lower 8 bits
  }
  Serial.println(reading);   // print the reading
  return reading;
}


So in this code, We will read a distance from 2 SRF10 sensors and print output to a serial port.

Comments

Popular posts from this blog

Sharp 2Y0A21 F 03

CMPS03 Compass Module

Change I2C Address SRF10