Grove - Ultrasonic Ranger


This Grove - Ultrasonic sensor is a non-contact distance measurement module which works at 42KHz, suitable for projects that require middle distance measurement.

Get one now


Parameter Value/Range
Operating voltage 3.3~5V
Operating current 8mA
Ultrasonic frequency 40kHz
Measuring range 2-350cm
Resolution 1cm
Output PWM
Size L50W25H16
Weight 13g


More details about Grove modules please refer to Grove System

Get Started

Connect Serial LCD to D4/D5 pins of Grove - Base Shield and connect Ultrasonic Ranger to D7.

Download the UltrasonicRanger Library and SerialLCD Library from Github. Since the are not in origin library of Arduino library files, You need to install them to Arduino Library. If you don’t know how to install library for Arduino, please refer to the toturial How to install library

// Function: Measure the distance to obstacles in front and display the
//                         result on seeedstudio serialLcd. Make sure you installed the
//                         serialLCD, SoftwareSerial and Ultrasonic library.
//        Hardware: Grove - Ultrasonic Ranger, Grove - Serial LCD
//        Arduino IDE: Arduino-1.0
//        Author:         LG
//        Date:          Jan 17,2013
//        Version: v1.0 modified by FrankieChu
//        by

#include <SoftwareSerial.h>
#include <SerialLCD.h>
#include "Ultrasonic.h"

SerialLCD slcd(11,12);
Ultrasonic ultrasonic(7);
void setup()

void loop()
    long RangeInCentimeters;
    RangeInCentimeters = ultrasonic.MeasureInCentimeters();
    slcd.print("The distance:");
    slcd.setCursor(0,1) ;
    slcd.setCursor(5,1) ;

Also we have shot a video about it. which is more straightforward to understand You may find it in the Resources!

With TI LaunchPad

Sensing the Distance (Ultrasonic Ranger Sensor)

This example shows how to measure the distance to obstacles using the ultrasonic sensor and display the value on a 4-Digital-Display (centimeters).

 Ultrasonic-Ranger to 4-digit-display
 Measure the distance to obstacles in front and display the value on

 The circuit:
 * Ultrasonic Ranger attached to SPI plug on Grove Base BoosterPack
 * one side pin (either one) to ground
 * the other side pin to +VCC
 * LED anode (long leg) attached to RED_LED
 * LED cathode (short leg) attached to ground

 * Note:  

 This example code is in the public domain.

#include "TM1637.h"
#include "Ultrasonic.h"
/* Macro Define */
#define CLK               40                  /* 4-digital display clock pin */
#define DIO               39                 /* 4-digital display data pin */
#define BLINK_LED         RED_LED            /* blink led */
#define ULTRASONIC_PIN    38                  /* pin of the Ultrasonic Ranger */

/* Global Variables */
TM1637 tm1637(CLK, DIO);                  /* 4-digital display object */
Ultrasonic ultrasonic(ULTRASONIC_PIN);    /* Ultrasonic Ranger object */
int distance = 0;                         /* variable to store the distance to obstacles in front */
int blink_interval = 0;                   /* led delay time */
int8_t bits[4] = {0};                     /* array to store the single bits of the value */

/* the setup() method runs once, when the sketch starts */
void setup() {

    /* Initialize 4-digital display */

    /* declare the red_led pin as an OUTPUT */
    pinMode(RED_LED, OUTPUT);


/* the loop() method runs over and over again */
void loop() {   

    distance = ultrasonic.MeasureInCentimeters();   /* read the value from the sensor */   

    memset(bits, 0, 4);                             /* reset array when we use it */
    for(int i = 3; i >= 0; i--) {
        /* get single bits of the analog value */
        bits[i] = distance % 10;
        distance = distance / 10;  
        tm1637.display(i, bits[i]);                 /* display by 4-digital display */

With Raspberry Pi

Connect Ultrasonic ranger to Port D4 and Run the program below. It will print distance information on you terminal, as the figure below.

# GrovePi + Grove Ultrasonic Ranger

from grovepi import *

# Connect the Grove Ultrasonic Ranger to digital port D4

ultrasonic_ranger = 4

while True:
        # Read distance value from Ultrasonic
        print ultrasonicRead(ultrasonic_ranger)

    except TypeError:
        print "Error"
    except IOError:
        print "Error"

Run The Program

  • Find the path to the file(According to your own path)
 cd GrovePi/Software/Python/
  • Run Program
 sudo python

If you want to make some awesome projects by Grove - Ultrasonic Ranger, here’s some projects for reference.

Automatic Water Level Controller

This is an IoT demo make by Arduino and Grove

There are many ways like using a float sensor to determine the water level, or using probes to detect peak and low level in the tank. How to measure water level without using probe or contacting with water? yeah there is a way just using a Ultrasonic sensor, and it is very simple! You can even determine the water depth in the tank by setting the maximum and minimum level.

Indoor Lightning Cloud

This is an IoT demo maked by Seeeduino and Grove

Make an indoor lightning Cloud, hang it to your ceiling, to make a joke, blast whoever passing under it, have fun!

The Colour Helix

This is an IoT demo maked by Seeeduino and Grove

Our artist Shihui Wang recently showed me her another amazing work of art: the Colour Helix. Again with few simple components she presented us the beauty of the combination of art and electronics.

With a Grove - Ultrasonic Ranger she can magically control the number of illuminated LEDs inside the Helix by raising or lower her palm in the air.


Help us make it better

Thank you for choosing Seeed. A couple of months ago we initiated a project to improve our documentation system. What you are looking at now is the first edition of the new documentation system. Comparing to the old one, here is the progresses that we made:

  • Replaced the old documentation system with a new one that was developed from Mkdocs, a more widely used and cooler tool to develop documentation system.
  • Integrated the documentation system with our official website, now you can go to Bazaar and other section like Forum and Community more conveniently.
  • Reviewed and rewrote documents for hundreds of products for the system’s first edition, and will continue migrate documents from old wiki to the new one.

An easy-to-use instruction is as important as the product itself. We are expecting this new system will improve your experience when using Seeed’s products. However since this is the first edition, there are still many things need to improve, if you have any suggestions or findings, you are most welcome to submit the amended version as our contributor or give us suggestions in the survey below, Please don’t forget to leave your email address so that we can reply.

Happy hacking