How to create a DIY proximity sensor with an Arduino Uno board and an ultrasonic sensor


Thank you for being of reader. This tutorial is made for you if you are a kid or adult who want to learn more about STEM and how to make a homemade proximity sensor device with a Arduino uno board and HC-SR04.

It will be easy and fun to do at home knowing that you just need a computer and a couple of electronic components that you can buy online with the link that I have put down there for you for( less than $30)

Let's get started. ;-)

Ultrasonic sensor

An ultrasonic sensor is quite used around the world and even in objects that you used everyday. It starts with your smartphone to detect if you have your head by the phone (which turns on or off the speaker. Yeah!!! I have found it to be really helpful, lol). You can also find it on your car with the alarm when backing up. It allows you to protect your bumper and not crash your car.

The ultrasonic sensor we used is called "HC-SR04" and is really inexpensive (~$3-4 a piece and sometimes less). It has 4 pins.

1 - HC-SR04 details:

  • 4 pins : VCC, GND, Trigger, Echo

  • Resolution: 0.3 cm (1/100 of inch)

  • Range of measurement: 2cm to 450 cm

  • Voltage ( 5 volts)

2 - How the ultrasonic sensor works

The HC-SR04 will emit a sound by applying a 10 microsecond signal on the "Trig " pin and will wait for it to come back and receive it on the "Echo" pin if it finds a object on it's path.

Since the speed of the sound is 340m/s, we need to measure the time the "echo" pin will receive the signal. We will divide that time by two since it went through the path twice ( it went and came back).

3 - Formula for the sound speed

Here is the formula of the speed of the sound:

Speed = (Distance/Time)

We know the speed of the sound (340 m/s). If we know the the time, we can figure out the distance.

Distance = Speed (meter) x Time (in seconds)

With the formula above, the speed is in meter but will be translate into inches as well (It is just used for the calculus).

4 - Example of calculus

Let's say we see a lightning form a distance and that we hear the thunder 6 seconds later. Knowing the speed's sound is 340 m/s, we can deduct that the lightning was at 2000 meters (2 km, ~1.2 miles) with the formula above.

What brings us to following calculation:

Distance (meter) = Speed (meter) x Time (in seconds) = 340 x 6 = 2040 meters (~1.2 miles)

We are now done for the calculus explanation.


The buzzer is a small electronic component that transform a electronic signal into a sound. It's like a speaker but in less sophisticated. It makes sounds like the 80's video games under different frequencies. The one we use for for the schematic works 5 volts and had 2 pins ( 2 wires: 5V and GND).

Materiel to build the ultrasonic proximity sensor system with an Arduino board

Your first need to gather all the following materiel (Click on them to buy them online on Amazon):

All the links can be found if you want to buy them and make your own ultrasonic proximity system with the Arduino board.

Schematic of the watering system

Right bellow is the complete electronic schematic of the whole project.

Explanation of the wiring of the proximity sensor to the arduino

  • A 9 volts battery is connected to the pin of the Arduino Uno to furnish power. The (+) pin is connected on the "Vin" on the Arduino. And the (-) pin of the battery is connected on the "GND" on the Arduino side.

  • The buzzer need is connected on pin 5 for the positive side of the buzzer. And the negative pin of the buzzer is connected to "GND" on the Arduino.

  • The Ultrasonic sensor got 4 pins which are : GND, VCC, Echo and Trigger. "GND" is connected to GND on the Arduino board, "VCC" is connected to "+5V" on the board. "Echo" is connected to pin 8 of the Arduino and "Trig" goes to pin 9.

Code of the proximity sensor and the Arduino Uno board

#define Echo 8 // Declaration Echo pin on pin 8
#define Trig 9 //Declaration Trig pin on pin 9

// defines variables
long Time; // variable for the Time of sound wave travel
int distance; // variable for the distance measurement in centimeters
int distance_inches; // variable for the distance measurement in inches

void setup() {
  pinMode(Trig, OUTPUT); // Sets the Trig pin
  pinMode(Echo, INPUT); // Set the Echo pin
  pinMode(6,OUTPUT);  // Pin for buzzer

void loop() 
  // Prepare the Trig pin
  digitalWrite(Trig, LOW);
  digitalWrite(Trig, HIGH);
  delayMicroseconds(10); // Activate the Trig pin by sensing a 10 microsecnds: Send the wave out
  digitalWrite(Trig, LOW);
  Time = pulseIn(Echo, HIGH); // Time of reception of wave back
  // Calculating the distance
  distance = Time * 0.034 / 2; // Speed of sound wave divided by 2 (go and back)
  distance_inches = distance * 2.54;

  //Condition: if distance inferior than 15cm, turn on the buzzer

  if(distance <15)
    digitalWrite(6,HIGH); // Turn the buzzer on
    delay(1);             // Wait for 1 seconds
    digitalWrite(6,LOW);  // Turn the buzzer off

  //Distance in centimeters  
  Serial.print("Distance in centimeters: ");
  Serial.println(" cm");

  //Distance in inches 
  Serial.print("Distance in inches: ");
  Serial.println(" in");


How to test it

  • Connect all the electronic components (Proximity sensor, battery, buzzer and others) to the Arduino board like showed in the electronic schematic of the Arduino project above.

  • To test the the overall schematic, we need to upload the above code to the Arduino Uno board with the Arduino IDE.