Arduino Nano 33 IoT - Ultrasonic Sensor

This guide shows you how to use the Arduino Nano 33 IoT with the HC-SR04 ultrasonic sensor to measure the distance to an object.

Arduino Nano 33 IoT ultrasonic sensor

Hardware Preparation

1×Arduino Nano 33 IoT
1×Micro USB Cable
1×Ultrasonic Sensor
1×Breadboard
1×Jumper Wires
1×Optionally, DC Power Jack
1×Recommended: Screw Terminal Expansion Board for Arduino Nano
1×Recommended: Breakout Expansion Board for Arduino Nano
1×Recommended: Power Splitter for Arduino Nano

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Disclosure: Some of the links provided in this section are Amazon affiliate links. We may receive a commission for any purchases made through these links at no additional cost to you.
Additionally, some of these links are for products from our own brand, DIYables .

Overview of Ultrasonic Sensor

The HC-SR04 sensor uses sound waves to find out how far away an object is. It sends a sound, listens for the echo, and then calculates the distance.

Ultrasonic Sensor Pinout

The HC-SR04 ultrasonic sensor has four pins:

  • VCC pin: Hook up this pin to the 5V power supply.
  • GND pin: Hook up this pin to the 0V ground.
  • TRIG pin: This pin gets a start signal from the Arduino Nano 33 IoT.
  • ECHO pin: This pin sends a signal back to the Arduino Nano 33 IoT that shows how far away an object is.
Ultrasonic Sensor Pinout
image source: diyables.io

How Ultrasonic Sensor Works

Check out how an ultrasonic sensor works

Wiring Diagram between Ultrasonic Sensor and Arduino Nano 33 IoT

  • Wiring diagram for powering the Arduino Nano 33 IoT board using a USB cable.
The wiring diagram between Arduino Nano and 33 IoT ultrasonic sensor

This image is created using Fritzing. Click to enlarge image

  • This diagram shows how to connect power to the Arduino Nano 33 IoT board using the Vin pin.
The wiring diagram between Arduino Nano and 33 IoT ultrasonic sensor external power

This image is created using Fritzing. Click to enlarge image

How To Program Ultrasonic Sensor

  • To create a 10-microsecond pulse on a pin of the Arduino Nano 33 IoT, use the digitalWrite() function followed by the delayMicroseconds() function. For example, you can use pin D2.
digitalWrite(2, HIGH); delayMicroseconds(10); digitalWrite(2, LOW);
  • It checks how long the pulse lasts (in microseconds) on a pin of the Arduino Nano 33 IoT using the pulseIn() function. For example, use it on pin D3.
duration_us = pulseIn(D3, HIGH);
  • Find distance in centimeters:
distance_cm = 0.017 * duration_us;

Arduino Nano 33 IoT Code

/* * This Arduino Nano 33 IoT code was developed by newbiely.com * * This Arduino Nano 33 IoT code is made available for public use without any restriction * * For comprehensive instructions and wiring diagrams, please visit: * https://newbiely.com/tutorials/arduino-nano-iot/arduino-nano-33-iot-ultrasonic-sensor */ #define TRIG_PIN 2 // The Arduino Nano 33 IoT pin connected to Ultrasonic Sensor's TRIG pin #define ECHO_PIN 3 // The Arduino Nano 33 IoT pin connected to Ultrasonic Sensor's ECHO pin float duration_us, distance_cm; void setup() { // begin serial port Serial.begin (9600); // Configure the trigger pin to output mode pinMode(TRIG_PIN, OUTPUT); // Configure the echo pin to input mode pinMode(ECHO_PIN, INPUT); } void loop() { // Produce a 10-microsecond pulse to the TRIG pin. digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // Measure the pulse duration from the ECHO pin duration_us = pulseIn(ECHO_PIN, HIGH); // calculate the distance distance_cm = 0.017 * duration_us; // print the value to Serial Monitor Serial.print("distance: "); Serial.print(distance_cm); Serial.println(" cm"); delay(500); }

Detailed Instructions

If you are new to the Arduino Nano 33 IoT, be sure to check out our Getting Started with Arduino Nano 33 IoT tutorial. Then, follow these steps:

  • Connect the components to the Arduino Nano 33 IoT board as depicted in the diagram.
  • Use a USB cable to connect the Arduino Nano 33 IoT board to your computer.
  • Launch the Arduino IDE on your computer.
  • Select the Arduino Nano 33 IoT board and choose its corresponding COM port.
  • Copy the code above and paste it into the Arduino IDE.
  • Click the Upload button in the Arduino IDE to compile the code and send it to the Arduino Nano 33 IoT board.
How to upload Arduino Nano 33 IoT code on Arduino IDE
  • Open the serial window in the Arduino software.
How to open serial monitor on Arduino IDE
  • Place your hand in front of the ultrasonic sensor.
  • Look at the screen to see how far your hand is from the sensor.
COM6
Send
distance: 19.4 cm distance: 17.6 cm distance: 16.9 cm distance: 27.4 cm distance: 26.9 cm distance: 24.3 cm distance: 25.6 cm distance: 23.1 cm
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Line-by-line Code Explanation

The Arduino Nano 33 IoT code shown above has a simple explanation for each line. Please read the notes in the code.

How to Filter Noise from Distance Measurements of Ultrasonic Sensor

Check out this guide on how to remove unwanted errors from the distance readings of an ultrasonic sensor

Video Tutorial

※ OUR MESSAGES

  • As freelancers, We are AVAILABLE for HIRE. See how to outsource your project to us
  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!