Arduino Nano - Ultrasonic Sensor - LED

This tutorial instructs you how to use Arduino Nano and ultrasonic sensor to control LED. In detail:

Hardware Preparation

1×Arduino Nano
1×USB A to Mini-B USB cable
1×Ultrasonic Sensor
1×220 ohm resistor
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino Nano
1×(Recommended) Screw Terminal Adapter for Arduino Nano

Or you can buy the following sensor kit:

1×DIYables Sensor Kit 30 types, 69 units
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. We appreciate your support.

Overview of LED and Ultrasonic Sensor

If you are unfamiliar with LED and ultrasonic sensor, including pinout, how they work, and how to program them, the following tutorials can help:

Wiring Diagram

The wiring diagram between Arduino Nano and Ultrasonic Sensor LED

This image is created using Fritzing. Click to enlarge image

Arduino Nano Code

/* * This Arduino Nano code was developed by * * This Arduino Nano code is made available for public use without any restriction * * For comprehensive instructions and wiring diagrams, please visit: * */ #define TRIG_PIN 3 // The Arduino Nano pin connected to TRIG pin of ultrasonic sensor #define ECHO_PIN 2 // The Arduino Nano pin connected to ECHO pin of ultrasonic sensor #define LED_PIN 10 // The Arduino Nano pin connected to LED #define DISTANCE_THRESHOLD 50 // in centimeters float duration_us, distance_cm; void setup() { Serial.begin (9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(TRIG_PIN, OUTPUT); // set arduino pin to output mode pinMode(ECHO_PIN, INPUT); // set arduino pin to input mode pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode } 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; if (distance_cm < DISTANCE_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED // print the value to Serial Monitor Serial.print("distance: "); Serial.print(distance_cm); Serial.println(" cm"); delay(500); }

Detailed Instructions

  • Plug the USB cable into the Arduino Nano and PC.
  • Launch the Arduino IDE and select the appropriate board and port.
  • Copy the code and open it in the Arduino IDE.
  • Click the Upload button on the Arduino IDE to compile and upload the code to the Arduino Nano.
Arduino IDE Upload Code
  • Move your hand in the vicinity of the sensor,
  • Check out the alteration in the LED's state.

Code Explanation

Check out the line-by-line explanation contained in the comments of the source code!


The code above is for educational purposes. The ultrasonic sensor is very sensitive to noise. If you want to use it in a practical setting, you should filter out the noise for the ultrasonic sensor. For more information on how to do this, please refer to how to filter noise for ultrasonic sensor.

Video Tutorial