Distance Measurement Scale | Arduino | Ultrasonic Sensor
Hello Friends,
This is a very cool project for students who are interested in doing cool stuff and robotics. This is a distance-dependent led leveler. or you can say it is a distance measurement device like a scale.
This is a very easy project. You just need some simple components to make this project.
Components:
- Arduino UNO board
- Ultrasonic Sensor Module (HC-SR04)
- Jumper Cables
- LEDs x7
Step 1
1st take a breadboard and put all LEDs in a simple order in which all (-) pins are common and all + pins are separated.
Step 2
Use jumper cables to connect all positive pins of 5 LEDs to the Arduino UNO. Connect then sequentially from pin 2 to pin 8.
Step 3
Connect a 220Ω resistor between the (-) pin and the GND pin of Arduino. And connect 2 sides of the negative pin through a jumper wire.
Step 4
Connect your Ultrasonic Sensor With Arduino UNO
- VCC -> Arduino 5V
- GND -> Arduino GND
- TRIG -> Arduino Pin 9
- ECHO -> Arduino Pin 10
Step 5
Now it`s time to upload the arduino code to your Arduino UNO
Here is the CODE-
----------------------------------------------------------------------
const int trigPin = 9; // TRIG pin of HC-SR04
const int echoPin = 10; // ECHO pin of HC-SR04
// Define LED pins
const int led1 = 2;
const int led2 = 3;
const int led3 = 4;
const int led4 = 5;
const int led5 = 6;
const int led6 = 7;
const int led7 = 8;
long duration;
int distance;
void setup() {
// Set TRIG as output and ECHO as input
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Set LED pins as output
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
Serial.begin(9600); // Initialize serial communication
}
void loop() {
// Send ultrasonic pulse
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Calculate duration of echo pulse
duration = pulseIn(echoPin, HIGH);
// Convert duration to distance (in cm)
distance = duration * 0.034 / 2;
// Print the distance for debugging
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Light up LEDs based on the distance (with 7 levels)
if (distance < 5) {
// Less than 5 cm, light up only LED 1
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
} else if (distance < 10) {
// Between 5 and 10 cm, light up LED 1 and 2
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
} else if (distance < 15) {
// Between 10 and 15 cm, light up LEDs 1, 2, and 3
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
} else if (distance < 20) {
// Between 15 and 20 cm, light up LEDs 1 to 4
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
} else if (distance < 25) {
// Between 20 and 25 cm, light up LEDs 1 to 5
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
} else if (distance < 30) {
// Between 25 and 30 cm, light up LEDs 1 to 6
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, LOW);
} else if (distance < 35) {
// Between 30 and 35 cm, light up all LEDs
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
} else {
// If distance is greater than 35 cm, turn off all LEDs
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
}
delay(500); // Wait before taking the next measurement
}
-------------------------------------------------------------------------
Now after uploading the code you can measure all the distance.
Here is the Circuit Diagram you can follow.
Thank You For Read This Article.
If you have any questions please feel free to comment down below.
0 Comments