Arduino UNO and HC-SR04 Ultrasonic Sensor Distance Measurement System
View and Edit Project In Cirkit Designer
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
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
HC-SR04 Ultrasonic Sensor
- Description: An ultrasonic sensor used for distance measurement.
- Pins: VCC, TRIG, ECHO, GND
Wiring Details
Arduino UNO
- 5V: Connected to VCC of HC-SR04 Ultrasonic Sensor
- GND: Connected to GND of HC-SR04 Ultrasonic Sensor
- D3: Connected to TRIG of HC-SR04 Ultrasonic Sensor
- D2: Connected to ECHO of HC-SR04 Ultrasonic Sensor
HC-SR04 Ultrasonic Sensor
- VCC: Connected to 5V of Arduino UNO
- GND: Connected to GND of Arduino UNO
- TRIG: Connected to D3 of Arduino UNO
- ECHO: Connected to D2 of Arduino UNO
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.