This Instructable demonstrates a method of increasing the measuring range of the popular HC-SR04 ultrasonic distance sensor.

The enhancement in range is based on reducing the 'field of view' (FOV) of the basic sensor by using it as a feed element for a parabolic dish.

No changes have been made in the electronics of the basic HC-SR04 sensor. However, a blanking circuit has been added externally so as to ignore the first reflection/distance from the feed element to the parabolic dish.

The HC-SR04 is connected to an Arduino uno which displays the measured distance on a standard PC1602 16X2 LCD display. The distance is also sent on the serial link through the USB connector.

For outdoor experiments the system was powered through the USB connector using mobile power bank.

A maximum distance of 9.24 meters was achieved in the experimentation as compared to the 4 meters specified for the basic sensor.

I wish to acknowledge useful inputs from Emil's Project Blog where he has provided an excellent tear-down of the HC-SR04 ultrasonic distance sensor:


Step 1: The Parabolic Reflector

The specifications of the HC-SR04 ultrasonic sensor indicate a measuring angle of 15 deg. When used as feed element for a parabolic dish, so that the dish is fully illuminated it needs to be placed at a sufficient distance from the dish. A shallow dish is required so that the focal length matches this requirement.

An old frying pan with a diameter of 250 mm and a depth of 16 mm is chosen as the parabolic dish. Standard calculations for sound in air at 40 kHz indicate a focal length of 24.4 cm and a FOV/ beam width of 2.31 deg.

The reduction in measurement angle/FOV from 15 deg to ~ 2.3 deg will be used to provide the increased measurement range.

The pan handle-arrangement is modified and a aluminum tube suitably bent is taped to the handle bracket to form the feed support beam. The HC-SR04 sensor is fixed along the center line of the parabolic dish at a distance of ~ 24 cm.

Step 2: Need for the Blanking Circuit

The HC-SR04 sensor outputs a positive going Echo pulse when triggered by a narrow positive going Trig pulse. In normal operation the width of the Echo pulse is proportional to the time required for the 40 kHz pulse train for the to-and-fro distance to the reflected object.

At a nominal sound velocity in air of 330 met/sec a 1 milli-sec pulse width would correspond to a range of 16.5 cm and a two-way travel of 33 cm.

Therefore with the feed distance of ~24 cm the distance would correspond to 1.45 milli-sec or 1450 micro-sec. Without providing a blanking circuit to ignore this shorter distance the longer distance from the parabolic dish to the reflective object cannot be determined.

Th blanking circuit shown is a simple mono-stable multi-vibrator circuit built using three . Schmidt- inverter gates. The output of the blanking circuit pulls the detection threshold low corresponding to high signal requirement for ~ 2.5 milli-seconds so that distances of ~ 40 cm are ignored.

This value should be larger than 24 mm but less than 48 cm so that the minimum distance from the front of the feed point can be measured.

Without the blanking circuit the distance is read as 23 cm.

Step 3: Modification on HC-SR04 for Blanking

After studying the circuit of the Hc-SR04 it is observed that the Threshold signal from Pin 9 of the OTP controller goes to Pin 2 of LM324 U2A through a 75 k Ohm resistor.

However, when we compare this with the actual HC-SR04 hardware we see that the LM324 is marked as U1.

Th blanking output of the additional blanking circuit is connected to Pin 2 of U2A as per the circuit diagram and Pin 2 of U1 as per the hardware.

There are normally 4 connections to the HC-SR04:: Vcc, Trig, Echo and Gnd. An additional wire marked Blank is now added as the 5th connection.

Step 4: Arduino Based Bread-Board and Schematic

The Fritzing diagrams show the Bread-Board and Schematic for the overall system

The connection to the Ultrasonic sensor and LCD are standard and well documented.

The prototype circuitry was wired on a perforated circuit board which forma shield for the Arduino uno.

The LCD was connected to the top of the board.

For outdoor experiments the system was powered through the USB connector using a mobile power bank.

The Fritzing project file including the Arduino code is attached.

The sketch as text file is also attached

<p>Thank you for unveiling how to blanking the HC-SR04!<br>I thinking of doing it for another project with a false echo.<br>I don't have any Schmidt-inverter gates in stock.<br>Is it possible to connect the blanking pin direct to a output pin on the arduino, and do the timing with software?<br>What do you suggest for component in between? Is a diode enough?</p>
<p>A negative going blanking pulse with the diode and 6.8 k Ohm worked for me. You may need to experiment on the resistor value for the particular build of the HC-SR04. Yes you could synchronize the blanking with the trigger using the arduino and software based on an ISR. I found it easy with the Schmidt gates.</p>
<p>The pan you used does not look like one you can get easily around here (I guess it's used to make chapati or the like?). Would an old Sat receiver dish work too? I guess so.</p>
<p>nice work !!!</p>
<p>Great mod to a popular item. I love the frying pan!</p>
<p>Very cool instructable! I learned a lot from this. Thanks for posting!</p>
<p>your designs are always simple and effective. This is another addition to awesome designs, Thank you for sharing, sir!</p>
<p>Can't you simply ignore the first echo instead of making an hardware filter ? Or do I miss something ?</p>
<p>The way the HC-SR04 operates is that the Echo goes High shortly after the trigger and then comes Low for the first reflection/return which crosses the detection threshold. When using the reflector the first return would normally be from the reflector itself. The blanking signal moves the detection threshold to a large value for ~2.5 msec/ 40 cm and then restores the threshold back to the old value so that the sensitivity is maintained. The High-to-Low would then be from an object in front of the dish. The Arduino Sketch measures the Low-High-Low time of the echo signal and works out the distance based on this.</p>
That looks awesome! How accurate is it at distance?<br><br>Have a great day! :-)
<p>I was basically checking out the scheme. Need to work on the accuracy.</p>
<p>This project is ideal to use my unused 90cm satellite dish with the HC-SR04. Some day I will try too this experiment, thanks!</p>

About This Instructable




Bio: I am a retired Electronic Systems Engineer now pursuing my hobbies full time. I share what I do especially with the world wide student community.
More by ajoyraman:Extend Defective Fluorescent Tube-Light Life COMMUTATOR BASED DIRECTION INDICATOR Z Fold Display Board Standee 
Add instructable to: