URM06-ANALOG_Ultrasonic_SKU_SEN0152-DFRobot

Introduction

Ultrasonic sensors emit ultrasonic pulses, and by measuring the time of ultrasonic pulse reaches the object and back to the transducer, the distance of sensor from the target object is calculated. They are widely used in detecting displacement, thickness, distance, water level, material level and transparent objects.

The URM06 - Analog Ultrasonic sensor provides very short to long-range detection and ranging from 20cm ~ 10m, comes in a compact, robust PVC housing and matches 35mm electrical pipe mounting. It comes with analog interface and works at high output acoustic power. The ultrasonic sensor detects objects from 20cm to 1000cm and provides range information with 1cm resolution. The URM06 has 15 degree beam angle which has excellent receive sensitivity. And it works best when detecting soft targets. The similar sensors are widely used in professional mobile robot systems such as Pioneer robots.

The URM06 series sensors are the best ultrasonic sensor available in the market regarding its beam angle, senstivity and accuracy.

Specification

URM05_2.png

Applications

Connection Diagram

Connection Diagram

Pin Definition

Version Update

Version No. Date Description
V3.0 2021/05/10 Optimized sensitivity and stability; Up to 12M detection distance in Flat wall environment test; Changed Analog Voltage output(0.2129mV equals to 1mm)

Sample Code


#include "Arduino.h"

/*
 Trig:  Measurement trigger pin - Low level pulse over 50us triggers one distance measurement.
 Holding this pin LOW will repeats the measurement every 100ms.
 */
#define  TRIGGER   2

/*
 OUT: analog output 0.33mV equals 1mm
 */
#define  ANALOG    1

void setup()
{
  pinMode(TRIGGER, OUTPUT);
  digitalWrite(TRIGGER, HIGH);
  Serial.begin(9600);
}
void loop()
{
  // generate the pulse to trigger the sensor
  digitalWrite(TRIGGER, LOW);
  delayMicroseconds(50);
  digitalWrite(TRIGGER, HIGH);
  delayMicroseconds(50);

  unsigned int distance = analogRead(ANALOG);  //read the analog pin
  distance = (unsigned int)(((unsigned long)distance * 5000)/1024);  //change from analog value to voltage
  distance = (unsigned int)((float)distance / 0.33f); //0.33mV equals to 1mm,
  //distance = (unsigned int)((float)distance / 0.2129f); //For new version, 0.2129mV equals to 1mm. 

  Serial.print("distance:");
  Serial.print(distance);
  Serial.println("mm");
  delay(500);
}