Home Raspberry Pi Sensors Sonar HC-SR04 ultrasonic ranger for a Raspberry PI & Arduino

Sonar HC-SR04 ultrasonic ranger for a Raspberry PI & Arduino

Connect HC-SR04 to Raspberry Pi and get readings with Python

What does it do?

Sonar HC-SR04 sensor issues an ultrasonic pulse to determine a distance from the board itself. Sensors placement limits the min range to 2cm, and it is possible to detect objects as far as 400cm away (4m). The output is generated to the GPIO21 using the code linked below and the command to check for the distance is issued on GPIO2.

Tech details:

  • Working Voltage DC 5 V
  • Working Current 15mA
  • Working Frequency 40Hz
  • Max Range 4m
  • Min Range 2cm
  • Measuring Angle 15 degree
  • Trigger Input Signal 10uS TTL pulse
  • Echo Output Signal Input TTL level signal and the range in proportion
  • Dimension 45*20*15mm


4 pin connector, pins as follows:

  • VCC: 5V Supply
  • TRIG: Trigger Pulse Input
  • ECHO: Echo Pulse Output (5v)
  • GND: 0V Ground

Echo Pulse Output requires Voltage to be stepped down to 3.3V to work with Raspberry and prevent damage.

How to use it?

Apart from power (5V Vcc and GND) you will need 2 GPIO pins to use the HC-SR04 ultrasonic sensor with a Raspberry Pi. Triggering pin (TRIG) sends a signal to the module to measure the distance which is returned back via ECHO pin.

Project Download

Download project files here. Bear in mind that Patreon supporters have early access to project files and videos.


Nothing says "Thank you" better than keeping my coffee jar topped up!


Support me on Patreon and get an early access to tutorial files and videos.


Bitcoin (BTC)

Use this QR to keep me caffeinated in style with crypto-currency


Add an SSD to Raspberry Pi 4 and turn it into a super-cooled NAS drive.

More HATs

Argon One

Enclose Raspberry Pi 4 inside this great case with custom I/O, cooling and GPIO

More cases on

Best Raspberry Pi Projects

How to use Raspberry PI as WOL (wake on lan) server

While you could wake up your PC from a mobile directly, having a dedicated server capable of doing so is the best solution. The reason is simple. You can hook up as many devices as you wish with a single endpoint. This is why Raspberry Pi is perfect for this.

Free wireless doorbell (Amazon Dash button hack)

The most terrifying situation I can imagine* is missing a parcel

Raspberry Pi NAS: (NAS-pi) Modding like a boss #part2

Plex and RAID1 NAS drive build log

MagPi – auto-downloader

Grab each edition of Mag Pi as soon as possible!


How to boot Raspberry Pi 4 from USB

How to set up and boot Raspberry Pi 4 from USB drive - headless guide.

Raspberry Pi Zero, Raspberry Pi 3A+ WiFi without keyboard or cables

Getting Raspberry Pi boards connected in seconds

Everything you need to start using JSON

It's JSON not Jason, just saying!

How to use Join App in NodeRED

The day finally comes where Join app is almost everywhere!

Driving LCD with Arduino and Raspberry Pi

Displaying things on an LCD screen is as easy as going through a cup of jellybeans while writing this tutorial!