US-100 Ultrasonic Range Finder Module

Detect obstacles and measure distance with easy to use serial interface DESCRIPTION The US-100 Ultrasonic Range Finder...
Vendor: Keszoox
$5.75
$7.75
$5.75

Shipping

The shipping fee depends on your address

Standard: 9-15 business days,fee is down to $3.99

Express: 4-7 business days,fee is down to $5.99

Support Customization

WE'RE READY TO BUILD A CUSTOM PRODUCT FOR YOU.

If you're looking for a custom product, we can help. Kindly contact us via email support@keszoox.com and send us the details for your need, then we'll let you know how we can deliver the right solution.

Built And process your order

We make into production usually Within 1 - 3 Bussiness Days.

Expect customization orders.
US-100 Ultrasonic Range Finder Module

US-100 Ultrasonic Range Finder Module

$7.75 $5.75

US-100 Ultrasonic Range Finder Module

$7.75 $5.75

Detect obstacles and measure distance with easy to use serial interface

DESCRIPTION

The US-100 Ultrasonic Range Finder Module uses sound waves to both detect the presence of and measure the distance to objects in front of it at distances of up to 15 feet.  It uses an easy to use serial interface.

PACKAGE INCLUDES:

  • US-100 Ultrasonic Range Finder Module

KEY FEATURES OF US-100 ULTRASONIC RANGE FINDER MODULE:

  • Easy to use serial interface
  • Also includes pulse-width (Ping) interface
  • 2 cm -450 cm (15 feet) detection range
  • 1mm measurement resolution
  • Built-in temperature sensor
  • 40 kHz operation
  • 15 degree field of view
  • 5V operation

The ultrasonic sound of the US-100 Ultrasonic Range Finder Module is pulsed at 40 kHz and is not audible to the human ear.

These modules are commonly used on robotic vehicles for obstacle detection and avoidance.  Because they use sound waves for detection they are not sensitive to light sources or reflective surfaces like IR sensors can be, though they can be affected somewhat by the sound absorption properties of some materials.  In addition, by using sound instead of light, it is possible to measure the time that it takes for the sound to travel out to an object and be echo’d back and therefore the distance to the object can be calculated with a fair degree of accuracy which can be quite handy.

The modules have a viewing cone of about 15 degrees, so they are sometimes mounted to a servo motor so that the sensor can ‘look-around’ at its surroundings.  The fact that the sensors look like a couple of eyes adds to the cool factor as well.

The US-100 Ultrasonic Range Finder is similar to the HC-SR04 and HY-SRF05 that we sell and it includes the same pulse-width interface as one option to interface to it.  This interface requires the microcontroller to initiate a ‘ping’ and measure the time it takes for the ping to come back.  Based on that out and back time period and the estimated speed of sound which varies with air temperature, the distance can be calculated.  Because there is tight timing required, the operation tends to be a blocking operation on the microcontroller but it overall works very well.

More interestingly, the US-100 also adds a serial interface.  When using the serial interface, the microcontroller requests that a measurement be taken and the module takes care of sending and timing the return of the received ping.  It also takes a measurement of the air temperature to determine the current speed of sound (speed of sound varies somewhat with the air temperature) and from that calculates the distance to the object and returns that measured distance in millimeters.  Using the serial interface is easier to implement, non-blocking on the microcontroller and provides a little more accuracy.

There is a header jumper on the back of the module.  If the jumper is installed, the module is in serial mode of communication.  If the jumper is removed, the module is in pulse-width mode and control and measurement is handled by the microcontroller.

The way the pulse-width interface on the module works is as follows:

  1. Jumper is removed
  2. The module is normally idle.
  3. A 10 uSec or wider pulse is sent to the TRIG pin on the module, usually by a microcontroller.  This will cause the module to start a detection cycle.
  4. The module emits eight bursts of 40KHz sound and sets it’s ECHO pin output HIGH.
  5. When the signal is reflected back from an object and is detected by the module, the ECHO pin is set back to LOW.
  6. By measuring the amount of time that the ECHO pin is held HIGH, the distance to the object can be calculated using basic formula  (Time that ECHO is held HIGH * Speed of sound / 2)  The divide by 2 is because the sound has to travel in both directions (both out and back) and we want to know just the out distance.

If an echo is not returned (no object detected), the module will still lower the ECHO pin after a fixed delay.  This delay may vary, but is about 200mSec on the modules that I have measured.  This is required to prevent the module from hanging.

The way the serial interface works is as follows:

  1. Jumper is installed.
  2. A serial command ‘0x55’ is sent to the module to initiate a reading.
  3. The serial port is checked for the returned data that comes back in 2 bytes.  An MSB and a LSB byte.
  4. The 2 bytes are added together to get the measurement in millimeters after shifting the MSB byte over by multiplying it by 256 similar to this (MSByte * 256) + LSByte
  5. If the temperature reading is desired, a serial command of ‘0x50’ is sent to initiate a temperature reading.
  6. The serial port is checked for the returned data that comes back as a single byte.
  7. A constant value of 45 is subtracted from the byte to get the temperature in degrees C.

There is a 5-pin header on the assembly.  The GND pins are connected to the system ground and the Vcc pin is connected to 5V.  The TRIG/TX pin has different functions depending on whether the jumper on the back of the module is installed or not.  If the jumper is installed, it is the serial TX pin that connects to TX pin on a microcontroller.  If the jumper is removed, it is the input Trigger pin on which a 10uSec pulse is applied to start the measurement cycle.  The ECHO/RX pin also has different functions depending on the jumper on the back of the module.  If the jumper is installed, it is the RX pin that connects to the RX pin on the microcontroller.  If the jumper is removed it is an output pin that is held HIGH for the duration of the time from when the module sends a 40KHz pulse out until it receives the echo back.

Module Connections

1 x 5 Header

  • VCC –   Connect to 5V.
  • TRIG / TX –   Connects to digital output pin.  A 10uSec or wider pulse starts a measurement cycle / Or acts as the TX pin for serial comm
  • ECHO / RX –  Connect to digital input pin.  This pin is held high for the duration of the the measurement cycle / Or acts as the RX pin for serial comm.
  • GND –   Connect to system ground.  This ground needs to be in common with the microcontroller.
  • GND –  Second ground pin is common with the other ground pin on the module and does not need to be connected.

OUR EVALUATION RESULTS:

This is a commonly used module for obstacle detection and basic range finding.  These are much more capable than the basic IR obstacle avoidance sensors that come in sensor kits and are highly recommended if you are building a motorized robotic car and want to implement a nicely capable obstacle avoidance system or just want to measure distance for some other reason.

The module has a small microprocessor which does all the heavy lifting of managing the ultrasonic and temperature sensors, doing the calculations when using serial mode and managing serial I/O.

The serial I/O is a significant improvement over using the pulse-width interface and its use is highly recommended.  Given that, the pulse-width method is also interesting to implement and experiment with and this module lets you do both.  A program that implement the pulse width interface can be found on our HY-SRF05 page and is compatible with this sensor.

As an interesting aside, it has been noticed that when using serial mode, if the 5V power is removed the module continues to work, apparently due to parasitic power being pulled off the serial comm lines.

The program below implements a serial interface with the module and displays the measured range in millimeters, centimeters and inches on the Serial Monitor.  To use the serial mode of operation, ensure that the jumper is installed on the back of the module.

Note that we use SoftSerial library to implement a software serial port.  This is mainly required when using on an UNO or other MCU with a single hardware serial port to avoid conflict between the sensor serial port and the USB serial port.  If using a Mega or some other microcontroller with  multiple hardware serial ports, you can use one of those instead if you prefer.

SoftSerial does require interrupt capability on the incoming RX line so we are using pins 10 for TX and 11 or RX since most of the Arduino series supports interrupts on both of these pins.  You will also need to connect 5V to Vcc and Ground to one of the GND pins.

US-100 Ultrasonic Range Finder Module Program

/*
 * US-100 Ultrasonic Test - Serial Interface Mode
 *
 * Exercises the ultrasonic range finder module in serial mode 
 * and prints out the current measured distance and temperature
 * This uses 'softserial' to communicate with the module to avoid any conflict 
 * with the HW serial port if using an UNO. 
 * VCC - connect to 5V
 * GND - connect to ground.  The 2 grounds are tied together on the module
 * TRIG/TX - connect to digital pin 10
 * ECHO/RX - connect to digital pin 11
 * 
 * For Serial mode of operation, ensure the jumper is installed on the back
 * of the module
 */ 
#include <SoftwareSerial.h>;
const int US_100_TX = 10;      // Pin for Soft Serial TX
const int US_100_RX = 11;      // Pin for Soft Serial RX
 // Create instance of soft serial port for comm with module
SoftwareSerial US_100_Port(US_100_RX, US_100_TX);
 
unsigned int MSByte = 0;  // Most Significant Byte of distance measurement
unsigned int LSByte = 0;  // Least Significant Byte of distance measurement
unsigned int mmDist = 0;      // Returned distance in millimeters
int temp = 0;                 // Returned temp measurement
//===============================================================================
//  Initialization
//=============================================================================== 
void setup() {
    Serial.begin(9600);       // Initialize the serial ports
    US_100_Port.begin(9600);
}
//===============================================================================
//  Main
//=============================================================================== 
void loop() {
 
    US_100_Port.flush();      // Clear the port buffer   
    US_100_Port.write(0x55);  // Request distance measurement
    delay(500);               // Give the sensor a little time to make the measurement
 
    if(US_100_Port.available() >= 2)      // Looking for 2 bytes to be returned
    {
        MSByte = US_100_Port.read();  // Read in the MSB (Most Significant Byte) data
        LSByte  = US_100_Port.read(); // Read in the LSB (Least Significant Byte) data
        mmDist  = MSByte * 256 + LSByte; // Calculate the distance from the two bytes
        if((mmDist > 20) && (mmDist < 4500)) // Check that reading is within a valid range.
        {
            Serial.print("Distance: "); // Printout distance in millimeters, centimeters and inches
            Serial.print(mmDist);
            Serial.print("mm   ");
            Serial.print(mmDist/10);
            Serial.print("cm   ");
            Serial.print(mmDist/25.4, 2);
            Serial.println("in");
        }
        else Serial.println("OUT OF RANGE");
    }
 
    US_100_Port.flush();      // Clear the serial port buffer
    US_100_Port.write(0x50);  // Request temperature measurement
    delay(500);
    if(US_100_Port.available() >= 1)     // Looking for 1 byte to be returned
    {
        temp = US_100_Port.read();       // Read the byte
        if((temp > 1) && (temp < 100))   // Check for valid temperature range
        {
            temp -= 45;                 // Temp data has to be offset by -45º
            Serial.print("Temperature: ");
            Serial.print(temp);
            Serial.println("C.");
            Serial.println("");
        }
    }
     delay(1000);
}

The board has a 2 small holes that can be used for mounting if desired.

BEFORE THEY ARE SHIPPED, THESE MODULES ARE:

  • Inspected
  • Basic obstacle detection and range finding operation verified
  • Packaged in a high quality resealable ESD bag for protection and easy storage.

Notes: 

  1. Active circuitry is on the back of the module, so care should be used to avoid possible electrical shorts.

TECHNICAL SPECIFICATIONS

Maximum Ratings
          Vcc 4.5 – 5.5V  (5V typical)
          IMax Maximum Current Draw <3mA
Operating Ratings
          Frequency Detector Center Frequency 40kHz
          Trigger Pulse Width >= 10uSec
          Measurement Distance 2cm – 450cm
Resolution 1mm (typical)
          Detection Angle < 15 degrees
Dimensions L x W (PCB) 45mm x 21mm (1.77 x 0.8″)
W x H (Ultrasonic Sensors) 16mm x 12mm (0.62 x 0.47″)
Country of Origin China

WE'RE READY TO BUILD A CUSTOM PRODUCT FOR YOU.

Contact us:
Support@keszoox.com
What we can help:
If you're looking for a wire or cable assembly, we can help.
What we need your help next:
Kindly contact us via email support@keszoox.com and send us the details fo your need, then we'll let you know how we can deliver the right solution.

Shipping Policy

All orders are dispatched from our warehouse. The shipments are fully tracked—from our door to yours. Please allow 3-5 business days for your order to be processed in addition to the shipping times below.

Shipping Times

Standard: 9-15 business days. Express: 4-7 business days.

Please note that shipping providers are extremely busy during this time, and some orders might experience a delay on top of usual delivery times. If your order is late, please allow 5-10 days more than indicated in standard shipping times before contacting our customer service. Thank you for your understanding.

Tracking

All orders are 100% tracked. You’ll receive an email with a tracking number and a link to track your parcel once your order leaves our warehouse. Please allow 24-48 hours for the tracking link to start showing shipping information.

Related Products

Recently Viewed Products