// Define pins for ultrasonic sensor
const int trigPin = 9;
const int echoPin = 10;
// Define LED pins
const int led1 = 2;
const int led2 = 3;
const int led3 = 4;
const int led4 = 5;
const int led5 = 6;
// Variable to store the distance
long distance;
void setup() {
// Initialize the serial communication
Serial.begin(9600);
// Set ultrasonic pins
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);
}
void loop() {
// Get the distance measured by the ultrasonic sensor
distance = getDistance();
// Determine which LEDs to light up based on distance
if (distance >= 100 && distance <= 124) {
turnOnLEDs(5); // All 5 LEDs on
} else if (distance >= 125 && distance <= 149) {
turnOnLEDs(4); // 4 LEDs on
} else if (distance >= 150 && distance <= 174) {
turnOnLEDs(3); // 3 LEDs on
} else if (distance >= 175 && distance <= 199) {
turnOnLEDs(2); // 2 LEDs on
} else if (distance >= 200 && distance <= 254) {
turnOnLEDs(1); // 1 LED on
} else if (distance == 255) {
turnOnLEDs(0); // No LEDs on
} else {
turnOnLEDs(0); // No LEDs on for 0-99 cm
}
// Print distance for debugging
Serial.print("Distance: ");
Serial.println(distance);
// Small delay to stabilize readings
delay(100);
}
// Function to measure distance
long getDistance() {
// Clear the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Set the trigPin on HIGH state for 10 microseconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the echoPin and calculate distance
long duration = pulseIn(echoPin, HIGH);
long distance = duration * 0.034 / 2; // Distance in cm
return distance;
}
// Function to control the LEDs
void turnOnLEDs(int numLEDs) {
// Turn off all LEDs initially
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
// Turn on the required number of LEDs
if (numLEDs >= 1) digitalWrite(led1, HIGH);
if (numLEDs >= 2) digitalWrite(led2, HIGH);
if (numLEDs >= 3) digitalWrite(led3, HIGH);
if (numLEDs >= 4) digitalWrite(led4, HIGH);
if (numLEDs >= 5) digitalWrite(led5, HIGH);
}