Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino UNO and HC-SR04 Ultrasonic Sensor Distance Measurement System

View and Edit Project In Cirkit DesignerImage of Arduino UNO and HC-SR04 Ultrasonic Sensor Distance Measurement System

Circuit Documentation

Summary

This circuit interfaces an HC-SR04 Ultrasonic Sensor with an Arduino UNO to measure distance. The sensor's VCC and GND are connected to the Arduino's 5V and GND pins, respectively. The TRIG pin is connected to D3, and the ECHO pin is connected to D2. The measured distance is printed to the Serial Monitor.

Component List

  1. Arduino UNO

    • Description: A microcontroller board based on the ATmega328P.
    • Pins: UNUSED, IOREF, Reset, 3.3V, 5V, GND, Vin, A0, A1, A2, A3, A4, A5, SCL, SDA, AREF, D13, D12, D11, D10, D9, D8, D7, D6, D5, D4, D3, D2, D1, D0
  2. HC-SR04 Ultrasonic Sensor

    • Description: An ultrasonic sensor used for distance measurement.
    • Pins: VCC, TRIG, ECHO, GND

Wiring Details

Arduino UNO

HC-SR04 Ultrasonic Sensor

Code Documentation

/*
 * This Arduino Sketch interfaces with an HC-SR04 Ultrasonic Sensor to measure
 * distance. The sensor's VCC and GND are connected to the Arduino's 5V and GND
 * pins, respectively. The TRIG pin is connected to D3, and the ECHO pin is
 * connected to D2. The measured distance is printed to the Serial Monitor.
 */

const int trigPin = 3; // TRIG pin connected to D3
const int echoPin = 2; // ECHO pin connected to D2

void setup() {
  Serial.begin(9600); // Initialize serial communication at 9600 baud
  pinMode(trigPin, OUTPUT); // Set TRIG pin as output
  pinMode(echoPin, INPUT);  // Set ECHO pin as input
}

void loop() {
  noInterrupts();
  long duration;
  float distance;
  digitalWrite(trigPin, LOW); // Ensure TRIG pin is low
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH); // Send a 10us high pulse to TRIG pin
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH); // Read the ECHO pin
  distance = duration * 0.0343 / 2; // Calculate distance in cm
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");
  Serial.print("Pulse duration: ");
  Serial.println(duration);
  interrupts();
  delay(1000); // Wait for 1 second before next measurement
}

This code initializes the necessary pins and sets up the serial communication. In the loop function, it sends a pulse to the TRIG pin, reads the duration of the pulse from the ECHO pin, calculates the distance, and prints the distance and pulse duration to the Serial Monitor.